บล็อกการสร้าง

บล็อกการสร้าง

คู่มือนี้แสดงวิธีการอ่านและแก้ไขบล็อกการสร้างเนื้อหาที่ใช้ซ้ำได้ซึ่งจัดเก็บอยู่ในเอกสารอภิธานศัพท์ของเอกสารด้วย Aspose.Words FOSS สำหรับ .NET. ไลบรารีนี้เปิดเผยรายการ AutoText, หน้าปก, ส่วนหัว, ส่วนท้าย, และเนื้อหาที่กำหนดล่วงหน้าอื่น ๆ ผ่าน Document.GlossaryDocument และโมเดลวัตถุ BuildingBlock/BuildingBlockCollection.


เอกสารอภิธานศัพท์

ทุก Document มี GlossaryDocument — เข้าถึงได้ผ่าน Document.GlossaryDocument — ซึ่งเป็นคลาสย่อยของ DocumentBase ที่เก็บบล็อกการสร้างไว้. คุณสมบัติ BuildingBlocks ของมันคืนค่า BuildingBlockCollection, โดย FirstBuildingBlock/LastBuildingBlock ให้การเข้าถึงอย่างรวดเร็วถึงส่วนสุดของรายการ. ค้นหาบล็อกการสร้างเฉพาะด้วย GetBuildingBlock(gallery, category, name), โดยจับคู่ BuildingBlockGallery, สตริงประเภท, และชื่อพร้อมกัน.


โครงสร้างบล็อกการสร้าง

BuildingBlock เป็น CompositeNode จึงมีต้นไม้เนื้อหาเป็นของตนเอง — Sections (เป็น SectionCollection), FirstSection, และ LastSection — เช่นเดียวกับที่ Document เก็บส่วนต่าง ๆ. คุณสมบัติโมเดลข้อมูลของมันระบุตัวและจัดประเภท: Name, Guid, Description, Category, Gallery (เป็น BuildingBlockGallery — AutoText, CoverPage, Headers, Footers, Tables, Watermarks, และหลายสิบแกลเลอรีที่กำหนดไว้ล่วงหน้า), Type (เป็น BuildingBlockType), และ Behavior (เป็น BuildingBlockBehavior ของ Content, Paragraph, หรือ Page) ที่ควบคุมวิธีที่เนื้อหาของมันถูกรวมเข้ากับเอกสารเมื่อแทรก.


การจัดการคอลเลกชันบล็อกการสร้าง

BuildingBlockCollection รองรับการแก้ไขคอลเลกชันแบบเต็ม: Add(node), Insert(index, node), Remove(node), RemoveAt(index), Clear(), Contains(node) และ IndexOf(node), พร้อมด้วย ToArray() และ GetEnumerator() สำหรับการอ่าน. เนื่องจากเป็น NodeCollection, บล็อกการสร้างสามารถสร้าง, คัดลอก, และย้ายได้โดยใช้ API โหนดเดียวกันกับส่วนอื่นใดของต้นไม้เอกสาร.


บล็อกการสร้างข้อความตัวแทน

แท็กเอกสารที่มีโครงสร้างสามารถอ้างอิงบล็อกการสร้างเป็นเนื้อหาตัวแทนของพวกมันได้: StructuredDocumentTag.Placeholder และ StructuredDocumentTagRangeStart.Placeholder ทั้งสองจะคืนค่า BuildingBlock ที่แสดงเมื่อแท็กว่างเปล่า ผ่านคุณสมบัติ IStructuredDocumentTag.Placeholder ที่ใช้ร่วมกัน.


เคล็ดลับและแนวทางปฏิบัติที่ดีที่สุด

  • ตรวจสอบอาร์กิวเมนต์สามตัวของ GetBuildingBlock(gallery, category, name) อย่างรอบคอบ — ชื่อเดียวกันอาจมีอยู่ในแกลเลอรีหรือหมวดหมู่ต่าง ๆ.
  • ใช้ BuildingBlockGallery เพื่อกรองประเภทของเนื้อหาแบบนำกลับมาใช้ใหม่ที่คุณต้องการ (AutoText, CoverPage, Tables, Watermarks เป็นต้น) แทนการสแกนทุกบล็อกการสร้างตามชื่อเท่านั้น.
  • BuildingBlockBehavior กำหนดวิธีที่เนื้อหาที่แทรกจะผสานกับเอกสารโดยรอบ (Content, Paragraph หรือ Page) — ตรวจสอบก่อนสมมติว่าบล็อกการสร้างจะถูกแทรกตามที่คุณคาดหวัง.
  • เนื่องจาก BuildingBlock เป็น CompositeNode, ให้ถือว่ามันเหมือนกับโหนดย่อยอื่น ๆ เมื่อสร้างหรือแก้ไขเนื้อหาของมัน — AppendChild, InsertAfter และเมธอดโหนดที่คล้ายกันทั้งหมดใช้ได้.

ปัญหาทั่วไป

ปัญหาสาเหตุวิธีแก้ไข
GetBuildingBlock() ไม่คืนค่าอะไรแกลเลอรี, หมวดหมู่ หรือชื่อ ไม่ตรงกับบล็อกที่มีอยู่ทำการ Enumerate GlossaryDocument.BuildingBlocks เพื่อค้นหาการผสม Gallery/Category/Name ที่ตรงกันอย่างแม่นยำ
เนื้อหาบล็อกที่แทรกผสานอย่างไม่คาดคิดBehavior (Content/Paragraph/Page) ไม่ได้รับการพิจารณาตรวจสอบ BuildingBlock.Behavior ก่อนทำการแทรกเพื่อเข้าใจว่ามันจะรวมอย่างไร
ตัวยึดตำแหน่งของแท็กเอกสารที่มีโครงสร้างไม่แสดงเนื้อหาที่คาดหวังPlaceholder ชี้ไปที่ BuildingBlock ที่ต่างจากที่คาดไว้อ่าน StructuredDocumentTag.Placeholder เพื่อยืนยันว่าอ้างอิงบล็อกสร้างใดจริง ๆ

FAQ

บล็อกการสร้าง (building blocks) ถูกจัดเก็บไว้ที่ไหนในเอกสาร?

ใน GlossaryDocument ของเอกสาร, เข้าถึงได้ผ่าน Document.GlossaryDocument, ซึ่งคุณสมบัติ BuildingBlocks เป็น BuildingBlockCollection.

ฉันจะค้นหาบล็อกการสร้างเฉพาะ, เช่นรายการ AutoText ได้อย่างไร?

เรียก GlossaryDocument.GetBuildingBlock(gallery, category, name) พร้อมกับ BuildingBlockGallery ที่ตรงกัน, หมวดหมู่, และชื่อ.

ฉันสามารถเพิ่มบล็อกการสร้างใหม่โดยโปรแกรมได้หรือไม่?

ใช่ — BuildingBlockCollection รองรับ Add(node) และ Insert(index, node) เนื่องจากมันเป็น NodeCollection.

สิ่งที่ BuildingBlockBehavior ควบคุมคืออะไร?

วิธีที่เนื้อหา building block ถูกรวมเข้ากับเอกสารเมื่อแทรก — เป็น Content, ทั้ง Paragraph, หรือทั้ง Page.

building block เกี่ยวข้องกับข้อความ placeholder ของแท็กเอกสารที่มีโครงสร้างอย่างไร?

StructuredDocumentTag.Placeholder (และ StructuredDocumentTagRangeStart.Placeholder) คืนค่า BuildingBlock ที่ให้เนื้อหา placeholder ของ SDT เมื่อว่างเปล่า.


สรุป API Reference

คลาส / เมธอดคำอธิบาย
Document.GlossaryDocumentส่วน GlossaryDocument ของเอกสาร ซึ่งเก็บบล็อกสร้างทั้งหมด
GlossaryDocument.BuildingBlocksBuildingBlockCollection ของบล็อกอาคารทุกอัน
GlossaryDocument.GetBuildingBlock()ค้นหาบล็อกอาคารโดยแกลเลอรี, หมวดหมู่, และชื่อ
BuildingBlockหนึ่ง CompositeNode ที่มี Name, Gallery, Category, Behavior, Type, Sections
BuildingBlockCollectionAdd(), Insert(), Remove(), Clear(), Contains(), IndexOf()
BuildingBlockGallery / BuildingBlockType / BuildingBlockBehaviorEnums ที่จัดประเภทบล็อกการก่อสร้าง
StructuredDocumentTag.PlaceholderThe BuildingBlock ที่ใช้เป็นเนื้อหาแทนที่ของ SDT

ดูเพิ่มเติม

 ภาษาไทย