ฟิลด์การกำหนดหมายเลข (AUTONUM, PAGE, SEQ, และอื่น ๆ)

ฟิลด์การกำหนดหมายเลข (AUTONUM, PAGE, SEQ, และอื่น ๆ)

ฟิลด์การนับเลข (AUTONUM, PAGE, SEQ, และอื่น ๆ)

คู่มือนี้แสดงวิธีการทำงานกับฟิลด์การนับเลขอัตโนมัติของ Word ใน Aspose.Words FOSS สำหรับ .NET, และวิธีที่แตกต่างจากการนับเลขแบบรายการ. การทำงานกับรายการ covers List, ListFormat, และ ListLevel – โมเดลวัตถุที่อยู่เบื้องหลังย่อหน้ารายการที่มีหมายเลขและหัวข้อย่อยของ Word. Word ยังมีชุดการนับเลขแยกต่างหาก fields ซึ่งคำนวณหมายเลขที่ตำแหน่งของฟิลด์ในข้อความ แทนที่จะผ่านการจัดรูปแบบรายการของย่อหน้า: การนับเลขอัตโนมัติแบบกฎหมายและโครงร่าง, ตัวนับหน้าและส่วน, การนับเลขเชื่อมโยงรายการ, และลำดับที่ตั้งชื่อ. มันจำลองแต่ละอย่างเป็น Field คลาสย่อยใน the Aspose.Words.Fields เนมสเปซ, พร้อมกับ NumberStyle enum ที่ใช้ร่วมกันโดยระดับรายการ, หมายเหตุท้ายบันทัดและหมายเหตุตอนท้าย, และเลขหน้าเพื่อเลือกวิธีการแสดงตัวเลข.


ฟิลด์การนับเลขอัตโนมัติ: AUTONUM, AUTONUMLGL, AUTONUMOUT

FieldAutoNum ทำการ implements the AUTONUM field (simple sequential numbering) และเปิดเผย SeparatorCharacter. FieldAutoNumLgl implements AUTONUMLGL (legal/outline-style numbering), เพิ่ม RemoveTrailingPeriod เคียงคู่กับของมันเอง SeparatorCharacter. FieldAutoNumOut implements AUTONUMOUT (outline numbering) และไม่มีคุณสมบัติของมันเองนอกเหนือจาก base Field สมาชิกที่อธิบายใน ทำงานกับฟิลด์.


การนับเลขเชื่อมโยงกับรายการด้วย FieldListNum

FieldListNum ใช้ฟิลด์ LISTNUM: ListName ระบุคำนิยามการนับเลขแบบนามธรรมที่จะใช้, และ HasListName รายงานว่ารหัสของฟิลด์จริง ๆ แล้วให้ชื่อหรือไม่. ListLevel แทนที่ระดับรายการเริ่มต้นที่ฟิลด์ทำการนับเลข, และ StartingNumber กำหนดค่าที่การนับเลขของฟิลด์เริ่มต้นจาก.


ตัวนับหน้าและส่วน: FieldPage, FieldSection, FieldSectionPages

FieldPage ดำเนินการ PAGE ฟิลด์และ FieldSectionPages implements SECTIONPAGES. ทั้งสองขึ้นอยู่กับการคำนวณเลย์เอาต์ของหน้าเพื่อให้ได้ผลลัพธ์; เช่นเดียวกับ NUMPAGES ฟิลด์ที่อธิบายไว้ใน ทำงานกับฟิลด์, ค่าฟิลด์ที่ขึ้นกับเลย์เอาต์ไม่ถูกคำนวณในฉบับนี้เนื่องจากไม่มีเอนจิ้นการวางหน้า/การเรนเดอร์, ดังนั้นฟิลด์เหล่านี้จะประเมินเป็นตัวแทนชั่วคราว 0. FieldSection implements SECTION, ส่งคืนหมายเลขส่วนปัจจุบันของเอกสาร – ไม่ขึ้นกับการแบ่งหน้าและไม่ได้รับผลกระทบจากข้อจำกัดนั้น.


ลำดับที่ตั้งชื่อด้วย FieldSeq

FieldSeq ทำหน้าที่เป็นฟิลด์ SEQ สำหรับลำดับที่ตั้งชื่อและมีการกำหนดหมายเลขอิสระ (เช่น รูปภาพหรือ ตาราง): SequenceIdentifier ตั้งชื่อลำดับ, และ BookmarkName สามารถชี้ฟิลด์ไปยังรายการอื่นในเอกสารแทนตำแหน่งของฟิลด์เองได้. InsertNextNumber ใส่หมายเลขถัดไปในลำดับโดยไม่แสดงค่าของตำแหน่งปัจจุบัน, และ ResetNumber / ResetHeadingLevel รีเซ็ตตัวนับของลำดับเป็นหมายเลขที่ระบุ, หรือเริ่มใหม่ที่ระดับหัวข้อที่กำหนด.


FieldRevNum

FieldRevNum ทำหน้าที่เป็นฟิลด์ REVNUM, และไม่มีคุณสมบัติของตนเองนอกจากสมาชิกฐาน Field.


การจัดรูปแบบตัวเลขด้วย NumberStyle

NumberStyle คือ enum ที่ใช้ในระดับรายการ, การนับหมายเลขเชิงอรรถ/บันทึกท้าย, และหมายเลขหน้าเพื่อเลือกวิธีการแสดงตัวเลข. รูปแบบทั่วไปได้แก่ Arabic, UppercaseRoman / LowercaseRoman, UppercaseLetter / LowercaseLetter, Ordinal, และ OrdinalText, พร้อมกับชุดใหญ่ของรูปแบบเฉพาะภูมิภาค (Kanji, Hangul, Hanja, ThaiLetter, HindiLetter1, และอื่น ๆ อีกหลายรายการ) รวมถึง Bullet, LeadingZero, None, และ Custom สำหรับรูปแบบที่ผู้เรียกกำหนดเอง.


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

  • ใช้ FieldListNum เมื่อเลขต้องอ้างอิงการกำหนดรายการที่มีอยู่ตามชื่อ; ใช้ FieldAutoNum/FieldAutoNumLgl/FieldAutoNumOut สำหรับการนับเลขที่ไม่ได้ผูกกับ List เฉพาะ.
  • จำไว้ว่า FieldPage และ FieldSectionPages ขึ้นกับการจัดวางเช่นเดียวกับ NUMPAGES – อย่าพึ่งพา Result ของพวกมันที่จะแสดงจำนวนหน้าที่คำนวณจริงในฉบับนี้.
  • ใช้ FieldSeq.BookmarkName เมื่อฟิลด์ SEQ ต้องอ้างอิงเลขที่กำหนดไว้ที่อื่นในเอกสารแทนที่จะเพิ่มตัวนับของตัวเองที่ตำแหน่งของฟิลด์.
  • ตั้งค่า FieldSeq.ResetHeadingLevel เมื่อลำดับเลข (เช่นเลขรูปภาพ) ควรเริ่มใหม่ที่แต่ละบทหรือหัวข้อส่วนใหม่.

ปัญหาทั่วไป

ปัญหาสาเหตุวิธีแก้ไข
FieldPage หรือ FieldSectionPages เสมอจะแสดง 0ฟิลด์เหล่านี้ขึ้นอยู่กับการจัดหน้าแบบคำนวณ ซึ่งไม่ได้เป็นส่วนหนึ่งของฉบับนี้พฤติกรรมที่คาดหวัง – ใช้เวอร์ชันเชิงพาณิชย์ Aspose.Words สำหรับ .NET หากต้องการจำนวนหน้าที่คำนวณ
FieldListNum ไม่ได้ใช้รูปแบบรายการที่คาดหวังListName ไม่ตรงกับคำนิยามการจัดลำดับแบบนามธรรมที่มีอยู่ในเอกสารยืนยันชื่อรายการที่แน่นอน หรือ ตรวจสอบ HasListName เพื่อดูว่ารหัสของฟิลด์มีการจัดหาชื่อหรือไม่
หมายเลข FieldSeq ไม่เริ่มต้นใหม่ตามที่คาดหวังResetNumber หรือ ResetHeadingLevel ไม่ได้ถูกตั้งค่าในฟิลด์ที่ควรเริ่มลำดับใหม่ตั้งค่าคุณสมบัติการรีเซ็ตที่เหมาะสมบนอินสแตนซ์ FieldSeq นั้น

FAQ

ความแตกต่างระหว่างการนับเลขรายการกับฟิลด์การนับเลขเหล่านี้คืออะไร?

การจัดลำดับรายการ (List, ListFormat, ListLevel, ครอบคลุมใน การทำงานกับรายการ) จัดรูปแบบย่อหน้าทั้งหมดเป็นรายการ. ฟิลด์ในหน้านี้คำนวณตัวเลข ณ จุดเฉพาะในข้อความ – สำหรับลำดับ, ตัวนับหน้า/ส่วน, หรือการจัดหมายเลขอัตโนมัติแบบกฎหมาย – แยกจากการจัดรูปแบบรายการของย่อหน้า.

ทำไมฟิลด์ PAGE จึงประเมินค่าเป็น 0 เสมอ?

FieldPage ขึ้นอยู่กับการคำนวณเลย์เอาต์ของหน้า, และรุ่นนี้ไม่ได้รวมเอ็นจิ้นการจัดหน้า/การเรนเดอร์ – เหตุผลเดียวกันที่ NUMPAGES ประเมินค่าเป็นค่าตัวแทน.

ฉันจะสร้างลำดับที่มีชื่อและมีการนับเลขแยกกัน เช่น “Figure 1”, “Figure 2” อย่างไร?

ใช้ FieldSeq พร้อมกับ SequenceIdentifier ที่สอดคล้องกัน (เช่น "Figure") ในแต่ละอินสแตนซ์ของฟิลด์; แต่ละอันจะแสดงหมายเลขถัดไปในลำดับนั้น.

ฉันจะควบคุมสไตล์ตัวเลขหรืออักษรที่ตัวเลขถูกแสดงอย่างไร?

ใช้ enum NumberStyle – ค่าต่าง ๆ เช่น Arabic, UppercaseRoman, LowercaseLetter และ OrdinalText เลือกสไตล์การเรนเดอร์, พร้อมกับ Bullet, None และ Custom สำหรับรูปแบบที่ไม่เป็นตัวเลขหรือรูปแบบที่ผู้เรียกกำหนดเอง.


API Reference สรุป

คลาส / Enumคำอธิบาย
FieldAutoNumAUTONUM field; SeparatorCharacter
FieldAutoNumLglAUTONUMLGL field; RemoveTrailingPeriod, SeparatorCharacter
FieldAutoNumOutAUTONUMOUT ฟิลด์
FieldListNumLISTNUM ฟิลด์; ListName, HasListName, ListLevel, StartingNumber
FieldPagePAGE ฟิลด์ (ขึ้นกับเลย์เอาต์; ให้ค่าเป็น 0 ในฉบับนี้)
FieldSectionSECTION ฟิลด์
FieldSectionPagesSECTIONPAGES ฟิลด์ (ขึ้นกับเลย์เอาต์; ให้ค่าเป็น 0 ในฉบับนี้)
FieldSeqSEQ ฟิลด์; SequenceIdentifier, BookmarkName, InsertNextNumber, ResetNumber, ResetHeadingLevel
FieldRevNumREVNUM ฟิลด์
NumberStyleEnum ของสไตล์การแสดงตัวเลขที่ใช้โดยระดับรายการ, เชิงอรรถ/เชิงอรรถท้าย, และหมายเลขหน้า

ดูเพิ่มเติม

 ภาษาไทย