การทำงานกับสารบัญ
บ่อยครั้งที่คุณจะทำงานกับเอกสารที่มีสารบัญ(TOC) โดยใช้Aspose.Wordsคุณสามารถแทรกตารางเนื้อหาของคุณเองหรือสร้างตารางเนื้อหาที่มีอยู่ในเอกสารโดยใช้เพียงไม่กี่บรรทัดของรหัส.
บทความนี้แสดงวิธีการทำงานกับตารางของฟิลด์เนื้อหาและสาธิต:
- วิธีการแทรกแบรนด์ใหม่TOC.
- อัปเดตใหม่หรือที่มีอยู่TOCsในเอกสาร.
- ระบุสวิตช์เพื่อควบคุมการจัดรูปแบบและโครงสร้างโดยรวมของTOC.
- วิธีการปรับเปลี่ยนรูปแบบและลักษณะของสารบัญ.
- วิธีการลบฟิลด์
TOC
ทั้งหมดพร้อมกับรายการทั้งหมดจากเอกสาร.
แทรกสารบัญทางโปรแกรม
คุณสามารถแทรกฟิลด์TOC
(สารบัญ)ลงในเอกสารที่ตำแหน่งปัจจุบันโดยการเรียกวิธีการInsertTableOfContents.
ตารางของเนื้อหาในเอกสารคำสามารถสร้างขึ้นในหลายวิธีและจัดรูปแบบโดยใช้ตัวเลือ สลับฟิลด์ที่คุณส่งผ่านไปยังวิธีการควบคุมวิธีการสร้างตารางและแสดงในเอกสารของคุณ.
สวิตช์ดีฟอลต์ที่ใช้ในTOC
แทรกในMicrosoft Wordคือ**"\o “1-3 \h \z \u”** คำอธิบายของสวิทช์เหล่านี้เช่นเดียวกับรายการของสวิทช์ที่สนับสนุนสามารถพบได้ในภายห คุณสามารถใช้คู่มือนั้นเพื่อขอรับสวิตช์ที่ถูกต้องหรือถ้าคุณมีเอกสารที่มีTOC
คล้ายกันที่คุณต้องการคุณสามารถแสดงรหัสฟิลด์(*ALT+F9*)และคัดลอกสวิตช์โดยตรงจากฟิลด์.
ตัวอย่างรหัสต่อไปนี้แสดงวิธีการแทรกตารางของสารบัญฟิลด์ลงในเอกสาร:
ตัวอย่างรหัสต่อไปนี้สาธิตวิธีการแทรกสารบัญ(TOC)ลงในเอกสารโดยใช้ลักษณะหัวเรื่องเป็นรา:
รหัสแสดงให้เห็นถึงตารางใหม่ของเนื้อหาจะถูกแทรกลงในเอกสารที่ว่างเปล่า จากนั้นคลาสDocumentBuilderจะถูกใช้เพื่อแทรกการจัดรูปแบบเนื้อหาตัวอย่างที่มีลักษณะหัวเรื่องที่เหมาะสมซึ่งใช้เพื่อทำเครื่องหมายเนื้อหาที่จะรวมอยู่ในTOC บรรทัดถัดไปแล้วเติมTOC
โดยการอัปเดตฟิลด์และเค้าโครงหน้าของเอกสาร.
TOC
แต่ไม่มีเนื้อหาที่มองเห็นได้ นี้เป็นเพราะฟิลด์TOC
ถูกแทรกแต่ยังไม่มีประชากรจนกว่าจะมีการอัปเดตในเอกสาร ข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้จะกล่าวถึงในส่วนถัดไป.
ปรับปรุงสารบัญ
Aspose.Wordsช่วยให้คุณสามารถปรับปรุงอย่างสมบูรณ์TOC
ที่มีเพียงไม่กี่บรรทัดของรหัส นี้สามารถทำได้เพื่อเติมใหม่แทรกTOC
หรืออัปเดตที่มีอยู่TOC
หลังจากการเปลี่ยนแปลงเอกสารได้.
ต้องใช้สองวิธีต่อไปนี้เพื่ออัพเดตฟิลด์TOC
ในเอกสาร:
โปรดทราบว่าทั้งสองวิธีการปรับปรุงจะต้องถูกเรียกในลำดับที่ ถ้าย้อนกลับตารางของเนื้อหาจะถูกป้อนข้อมูลแต่จะไม่มีหมายเลขหน้าจะปรากฏ สามารถอัปเดตจำนวนของTOCsที่แตกต่างกัน วิธีการเหล่านี้จะอัปเดตTOCsทั้งหมดที่พบในเอกสารโดยอัตโนมัติ.
ตัวอย่างรหัสต่อไปนี้แสดงวิธีการสร้างเขตข้อมูลTOC
ในเอกสารโดยเรียกใช้การปรับปรุงฟิลด์:
การโทรครั้งแรกที่Document.updateFields()จะสร้างTOC
,รายการข้อความทั้งหมดมีประชากรและTOC
จะปรากฏเกือบเสร็จ สิ่งเดียวที่ขาดหายไปคือหมายเลขหน้าซึ่งตอนนี้จะแสดงด้วย"?".
สายที่สองไปยังDocument.updatePageLayout()จะสร้างเค้าโครงของเอกสารในหน่วยความจำ การตลาดทางอินเทอร์เน็ต,การขาย,การตลาด,การโฆษณา,รายชื่อผู้มุ่งหวัง หมายเลขหน้าที่ถูกต้องคำนวณจากสายนี้จะถูกแทรกลงในTOC.
ใช้สวิตช์เพื่อควบคุมสารบัญลักษณะการทำงาน
เช่นเดียวกับฟิลด์อื่นๆฟิลด์TOC
สามารถยอมรับสวิตช์ที่กำหนดไว้ภายในโค้ดฟิลด์ที่ควบคุมวิธีการส สวิตช์บางอย่างใช้เพื่อควบคุมรายการที่จะถูกรวมและที่ระดับใดในขณะที่คนอื่นๆจะใช้ในการควบคุมลักษณะที่ปรากฏของTOC สวิทช์สามารถรวมเข้าด้วยกันเพื่อให้ตารางที่ซับซ้อนของเนื้อหาที่จะผลิต.
โดยค่าเริ่มต้นสวิตช์เหล่านี้ข้างต้นจะรวมอยู่เมื่อใส่ค่าเริ่มต้นTOC
ในเอกสาร TOC
ที่ไม่มีสวิตช์จะรวมถึงเนื้อหาจากรูปแบบส่วนหัวในตัว(ราวกับว่าสวิตช์\โอถูกตั้งค่า).
สวิตช์ที่มีอยู่TOC
ที่ได้รับการสนับสนุนโดยAspose.Wordsจะแสดงรายการด้านล่างและการใช้งานของสวิทช์ พวกเขาสามารถแบ่งออกเป็นส่วนที่แยกต่างหากขึ้นอยู่กับประเภทของพวกเขา สวิตช์ในส่วนแรกกำหนดเนื้อหาที่จะรวมในTOC
และสวิตช์ในส่วนที่สองควบคุมลักษณะที่ปรากฏของTOC.
ถ้าสวิตช์ไม่อยู่ในรายการที่นี่แล้วมันจะไม่ได้รับการสนับสนุนในขณะนี้ สวิทช์ทั้งหมดจะได้รับการสนับสนุนในรุ่นอนาคต เราจะเพิ่มการสนับสนุนเพิ่มเติมเพื่อให้ทุกรุ่น.
สวิตช์การทำเครื่องหมายรายการ
สวิตช์ | การบรรจุ |
---|---|
Heading Styles (สวิตช์\โอ) |
สวิตช์นี้กำหนดว่า
|
Outline Levels (\Uสวิตช์) |
แต่ละย่อหน้าสามารถกำหนดระดับเค้าร่างภายใต้ตัวเลือกย่อหน้า
โปรดทราบว่ารูปแบบส่วนหัวในตัวเช่นHeading 1มีระดับเค้าร่างบังคับตั้งค่าในการตั้งค่าลักษณะ
|
Custom Styles (\Tสวิตช์) |
สวิตช์นี้จะอนุญาตให้ใช้รูปแบบที่กำหนดเองเมื่อมีการรวบรวมรายการที่จะใช้ในการTOC มักจะใช้ร่วมกับสวิตช์\โอที่จะรวมรูปแบบที่กำหนดเองพร้อมกับรูปแบบหัวเรื่องในตัวในTOC
จะใช้เนื้อหาสไตล์ด้วยCustomHeading1เป็นระดับ 1 เนื้อหาใน |
ใช้ฟิลด์ TC (สวิตช์ \F และ \L) |
ในเวอร์ชันเก่าของ Microsoft Word วิธีเดียวที่จะสร้าง คุณสามารถแทรกฟิลด์เหล่านี้ลงในเอกสารได้ทุกตำแหน่ง เช่นเดียวกับฟิลด์อื่นๆ และแสดงด้วยการแจงนับ
จะรวมเฉพาะฟิลด์ TC เช่น
ฟิลด์
- \F – อธิบายไว้ข้างต้น - \L – กำหนดว่าฟิลด์ TC นี้จะปรากฏในระดับใดใน - |
สวิตช์ที่เกี่ยวข้องกับลักษณะที่ปรากฏ
สวิตช์ | การบรรจุ |
---|---|
Omit Page Numbers (\Nสวิตช์) |
สวิตช์นี้ใช้เพื่อซ่อนหมายเลขหน้าสำหรับบางระดับของTOC ตัวอย่างเช่นคุณสามารถกำหนด
และหมายเลขหน้าในรายการของระดับ 3 และสี่จะถูกซ่อนไว้พร้อมกับจุดผู้นำ(ถ้ามี) เมื่อต้องการระบุเพียงหนึ่งระดับช่วงควรจะยังคงใช้ตัวอย่างเช่น"1-1"จะไม่รวมหมายเลขห |
แทรกเป็นการเชื่อมโยงหลายมิติ (สวิตช์\ชม.) |
สวิตช์นี้ระบุว่า |
Set Separator Character (\P สวิตช์) |
สวิตช์นี้ช่วยให้เนื้อหาแยกชื่อเรื่องของรายการและหมายเลขหน้าได้อย่างง่ายดายในTOC ควรระบุตัวคั่นที่จะใช้หลังจากสวิตช์นี้และอยู่ในเครื่องหมายคำพูด |
Preserve Tab Entries (\W สวิตช์) |
การใช้สวิตช์นี้จะเป็นการระบุว่ารายการใดๆที่มีอักขระแท็บเช่นหัวข้อที่มีแท็บที่ท้ายบรรทัดจะถูกเก็บไว้เป็นอักขระแท็บที่เหมาะสมเมื่อเติมTOC ซึ่งหมายความว่าฟังก์ชันของอักขระแท็บจะถูกแสดงใน |
Preserve New Line Entries (\สวิตช์ X) |
คล้ายกับสวิตช์ด้านบนสวิตช์นี้ระบุว่าส่วนหัวที่ทอดผ่านหลายบรรทัด(โดยใช้อักขระบรรทัดใหม่ไม่ใช่ย่อหน้าแยกต่างหาก)จะถูกเก็บรักษาไว้ตามที่อยู่ในที่สร้างTOC หรือ |
แทรกฟิลด์TC
คุณสามารถแทรกฟิลด์TCใหม่ที่ตำแหน่งปัจจุบันของDocumentBuilder
โดยเรียกวิธีการDocumentBuilder.InsertField
และระบุชื่อฟิลด์เป็น"TC"พร้อมกับสวิทช์ใดๆที่จำเป็น.
ตัวอย่างรหัสต่อไปนี้แสดงวิธีการแทรกฟิลด์TC
ลงในเอกสารโดยใช้DocumentBuilder.
มักจะมีการกำหนดบรรทัดข้อความเฉพาะสำหรับ TOC
และทำเครื่องหมายด้วยฟิลด์ TC
วิธีง่ายๆ ในการทำเช่นนี้ใน Word MS คือ ไฮไลต์ข้อความแล้วกด ALT+SHIFT+O วิธีนี้จะสร้างฟิลด์ TC
โดยอัตโนมัติโดยใช้ข้อความที่เลือก เทคนิคเดียวกันนี้สามารถทำได้โดยใช้โค้ด โค้ดด้านล่างนี้จะค้นหาข้อความที่ตรงกับอินพุตและแทรกฟิลด์ TC
ในตำแหน่งเดียวกับข้อความ โค้ดนี้ใช้เทคนิคเดียวกับที่ใช้ในบทความ ตัวอย่างโค้ดต่อไปนี้จะแสดงวิธีค้นหาและแทรกฟิลด์ TC
ในข้อความในเอกสาร.
แก้ไขสารบัญ
เปลี่ยนรูปแบบของรูปแบบ
การจัดรูปแบบของรายการในTOC
ไม่ได้ใช้สไตล์ดั้งเดิมของรายการที่ทำเครื่องหมายไว้แต่ละระดับจะถูกจัดรูปแบบโดยใช้สไตล์ที่เทียบเท่าTOC
ตัวอย่างเช่นระดับแรกในTOC
ถูกจัดรูปแบบด้วยสไตล์TOC1ระดับที่สองจัดรูปแบบด้วยสไตล์TOC2และอื่นๆ ลี่ยนรูปลักษณ์ของTOC
ลักษณะเหล่านี้ต้องถูกแก้ไข ในAspose.Wordsลักษณะเหล่านี้จะแสดงโดยโลแคลอิสระStyleIdentifier.TOC1
ถึงStyleIdentifier.TOC9
และสามารถดึงข้อมูลจากคอลเล็กชันDocument.Styles
โดยใ.
เมื่อมีการดึงข้อมูลลักษณะที่เหมาะสมของเอกสารแล้วการจัดรูปแบบสำหรับลักษณะนี้สามา การเปลี่ยนแปลงลักษณะเหล่านี้จะปรากฏขึ้นโดยอัตโนมัติในTOCsในเอกสาร.
ตัวอย่างรหัสต่อไปนี้จะเปลี่ยนคุณสมบัติการจัดรูปแบบที่ใช้ในลักษณะระดับแรกTOC
.
นอกจากนี้ยังเป็นประโยชน์ที่จะทราบว่าการจัดรูปแบบโดยตรงของย่อหน้า(ที่กำหนดไว้ในย่อหน้าเองและไม่ได้อยู่ในสไตล์)ที่ทำเครื่องหมายไว้ในTOC
จะถูกคัดลอกในรายการในTOC ตัวอย่างเช่นหากใช้สไตล์Heading 1เพื่อทำเครื่องหมายเนื้อหาสำหรับTOC
และสไตล์นี้มีการจัดรูปแบบตัวหนา รายการผลลัพธ์TOC
จะไม่เป็นตัวหนาเนื่องจากเป็นส่วนหนึ่งของการจัดรูปแบบสไตล์แต่จะเอียงเนื่องจากมีการจัดรูปแบบโดยตรงในย่อหน้า.
นอกจากนี้คุณยังสามารถควบคุมการจัดรูปแบบของตัวคั่นที่ใช้ระหว่างแต่ละรายการและหม โดยค่าเริ่มต้น,นี้เป็นเส้นประที่กระจายไปทั่วไปยังหมายเลขหน้าโดยใช้อักขระแท็บและหยุด.
การใช้ชั้นเรียนStyle
ที่ดึงสำหรับระดับTOC
เฉพาะที่คุณต้องการปรับเปลี่ยนคุณยังสามารถปรับเปลี่ย.
เมื่อต้องการเปลี่ยนวิธีการนี้ปรากฏขึ้นในตอนแรกStyle.ParagraphFormat
ต้องถูกเรียกใช้เพื่อเรียกการจัดรูปแบบย่อหน้าสำหรับสไตล์ จากนี้แท็บหยุดสามารถเรียกดูได้โดยเรียกParagraphFormat.TabStops
และแท็บหยุดที่เหมาะสมแก้ไข ใช้เทคนิคเดียวกันนี้แท็บตัวเองสามารถย้ายหรือลบออกโดยสิ้นเชิง.
ตัวอย่างรหัสต่อไปนี้แสดงวิธีการปรับเปลี่ยนตำแหน่งของแท็บขวาหยุดในย่อหน้าที่เกี่ยวข้องTOC
.
นำสารบัญออกจากเอกสาร
สารบัญสามารถลบออกจากเอกสารโดยการลบโหนดทั้งหมดที่พบระหว่างFieldStart
และFieldEndโหนดของTOC
.
รหัสด้านล่างแสดงให้เห็นถึงนี้ การกำจัดของฟิลด์TOC
จะง่ายกว่าฟิลด์ปกติเนื่องจากเราไม่ได้ติดตามเขตข้อมูลที่ซ้อนกัน แต่เราตรวจสอบFieldEnd
โหนดเป็นประเภทFieldType.FieldTOC
ซึ่งหมายความว่าเราได้พบจุดสิ้นสุดของปัจจุบันTOC เทคนิคนี้สามารถใช้ในกรณีนี้โดยไม่ต้องกังวลเกี่ยวกับเขตข้อมูลที่ซ้อนกันใดๆที่เราสามารถสมมติว่าเอกสารใดๆที่เกิดขึ้นอย่างถูกต้องจะไม่มีเขตข้อมูลที่ซ้อนกันอย่างเต็มที่TOC
ภายในอีกเขตข้อมูลTOC
.
ประการแรกFieldStart
โหนดของแต่ละTOC
จะถูกรวบรวมและเก็บไว้ จากนั้นTOC
ที่ระบุจะถูกแจกแจงเพื่อให้โหนดทั้งหมดภายในฟิลด์ถูกเยี่ยมชมและเก็บไว้ จากนั้นโหนดจะถูกลบออกจากเอกสาร ตัวอย่างรหัสต่อไปนี้สาธิตวิธีการลบTOC
ที่ระบุจากเอกสาร.
สารสกัดจากสารบัญ
ถ้าคุณต้องการแยกสารบัญจากเอกสารคำใดๆสามารถใช้ตัวอย่างรหัสต่อไปนี้ได้.