การทำงานกับสารบัญ

บ่อยครั้งที่คุณจะทำงานกับเอกสารที่มีสารบัญ (TOC) การใช้ Aspose.Words คุณสามารถแทรกสารบัญของคุณเองหรือสร้างสารบัญที่มีอยู่ในเอกสารขึ้นมาใหม่ทั้งหมดโดยใช้โค้ดเพียงไม่กี่บรรทัด บทความนี้สรุปวิธีการทำงานกับเขตข้อมูลสารบัญและสาธิต:

  • วิธีแทรก TOC ใหม่
  • อัปเดต TOC ใหม่หรือที่มีอยู่ในเอกสาร
  • ระบุสวิตช์เพื่อควบคุมการจัดรูปแบบและโครงสร้างโดยรวมของ TOC
  • วิธีปรับเปลี่ยนสไตล์และรูปลักษณ์ของสารบัญ
  • วิธีลบฟิลด์ TOC ทั้งหมดพร้อมกับรายการทั้งหมดในเอกสาร

แทรกสารบัญโดยทางโปรแกรม

คุณสามารถแทรกฟิลด์ TOC (สารบัญ) ลงในเอกสารที่ตำแหน่งปัจจุบันได้โดยการเรียกเมธอด InsertTableOfContents

สารบัญในเอกสาร Word สามารถสร้างได้หลายวิธีและจัดรูปแบบโดยใช้ตัวเลือกที่หลากหลาย ฟิลด์จะสลับที่คุณส่งไปยังวิธีการควบคุมวิธีการสร้างตารางและแสดงในเอกสารของคุณ

สวิตช์เริ่มต้นที่ใช้ใน TOC ที่แทรกใน Microsoft Word คือ "\o “1-3 \เอช \z \u” คำอธิบายของสวิตช์เหล่านี้รวมถึงรายการสวิตช์ที่รองรับมีอยู่ในบทความถัดไป คุณสามารถใช้คำแนะนำนั้นเพื่อรับสวิตช์ที่ถูกต้อง หรือหากคุณมีเอกสารที่มี TOC ที่คล้ายกันที่คุณต้องการอยู่แล้ว คุณสามารถแสดงโค้ดฟิลด์ (ALT+F9) และคัดลอกสวิตช์จากฟิลด์ได้โดยตรง

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการแทรกฟิลด์สารบัญลงในเอกสาร:

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการแทรกสารบัญ (TOC) ลงในเอกสารโดยใช้สไตล์ส่วนหัวเป็นรายการ

อัปเดตสารบัญ

Aspose.Words ช่วยให้คุณสามารถอัปเดต TOC ได้อย่างสมบูรณ์ด้วยโค้ดเพียงไม่กี่บรรทัด ซึ่งสามารถทำได้เพื่อเติมข้อมูล TOC ที่แทรกใหม่หรือเพื่ออัปเดต TOC ที่มีอยู่หลังจากทำการเปลี่ยนแปลงเอกสารแล้ว ต้องใช้สองวิธีต่อไปนี้เพื่ออัปเดตฟิลด์ TOC ในเอกสาร:

  1. UpdateFields
  2. UpdatePageLayout

โปรดทราบว่าจำเป็นต้องเรียกใช้วิธีการอัพเดตทั้งสองนี้ตามลำดับ หากกลับรายการสารบัญจะถูกเติมแต่จะไม่มีหมายเลขหน้าแสดง สามารถอัปเดต TOC ที่แตกต่างกันจำนวนเท่าใดก็ได้ วิธีการเหล่านี้จะอัปเดต TOC ทั้งหมดที่พบในเอกสารโดยอัตโนมัติ

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีสร้างฟิลด์ TOC ใหม่ในเอกสารโดยเรียกใช้การอัปเดตฟิลด์:

การเรียก UpdateFields ครั้งแรกจะสร้าง TOC รายการข้อความทั้งหมดจะถูกเติม และ TOC จะปรากฏขึ้นเกือบเสร็จสมบูรณ์ สิ่งเดียวที่ขาดหายไปคือหมายเลขหน้าซึ่งตอนนี้แสดงด้วย “?” การเรียก UpdatePageLayout ครั้งที่สองจะสร้างเค้าโครงของเอกสารในหน่วยความจำ จำเป็นต้องดำเนินการนี้เพื่อรวบรวมหมายเลขหน้าของรายการ หมายเลขหน้าที่ถูกต้องซึ่งคำนวณจากการโทรนี้จะถูกแทรกลงใน TOC

ใช้สวิตช์เพื่อควบคุมพฤติกรรมของสารบัญ

เช่นเดียวกับฟิลด์อื่นๆ ฟิลด์ TOC สามารถยอมรับสวิตช์ที่กำหนดภายในโค้ดฟิลด์ที่ควบคุมวิธีการสร้างสารบัญ สวิตช์บางตัวใช้เพื่อควบคุมว่ารายการใดบ้างที่รวมอยู่และระดับใด ในขณะที่สวิตช์บางตัวใช้เพื่อควบคุมลักษณะที่ปรากฏของ TOC สวิตช์สามารถรวมเข้าด้วยกันเพื่อให้สามารถผลิตสารบัญที่ซับซ้อนได้

working-with-table-of-contents-aspose-words-net

ตามค่าเริ่มต้น สวิตช์ด้านบนเหล่านี้จะรวมไว้เมื่อแทรก TOC เริ่มต้นในเอกสาร TOC ที่ไม่มีสวิตช์จะรวมเนื้อหาจากรูปแบบส่วนหัวที่มีอยู่แล้วภายใน (เหมือนกับว่าสวิตช์ \O ถูกตั้งค่าไว้) สวิตช์ TOC ที่พร้อมใช้งานที่รองรับโดย Aspose.Words มีดังต่อไปนี้และมีการอธิบายการใช้งานโดยละเอียด สามารถแบ่งออกเป็นส่วนต่างๆ ตามประเภทได้ สวิตช์ในส่วนแรกจะกำหนดเนื้อหาที่จะรวมไว้ใน TOC และสวิตช์ในส่วนที่สองจะควบคุมลักษณะที่ปรากฏของ TOC หากไม่มีสวิตช์แสดงอยู่ที่นี่ แสดงว่าสวิตช์ไม่รองรับในขณะนี้ สวิตช์ทั้งหมดจะได้รับการสนับสนุนในเวอร์ชันต่อๆ ไป เรากำลังเพิ่มการสนับสนุนเพิ่มเติมในทุกรุ่น

สวิตช์ทำเครื่องหมายรายการ

สวิตช์ คำอธิบาย
Heading Styles
(\O สวิตช์)

สวิตช์นี้กำหนดว่า TOC ควรสร้างขึ้นจากสไตล์หัวเรื่องที่มีอยู่แล้วภายใน ใน Microsoft Word สิ่งเหล่านี้ถูกกำหนดโดยหัวข้อ 1 – หัวข้อ 9 ใน Aspose.Words สไตล์เหล่านี้แสดงโดยการแจงนับ StyleIdentifier ที่สอดคล้องกัน การแจงนับนี้แสดงถึงตัวระบุโลแคลอิสระของสไตล์ เช่น StyleIdentifier.Heading1 แสดงถึงสไตล์ของหัวข้อที่ 1 เมื่อใช้สิ่งนี้ การจัดรูปแบบและคุณสมบัติของสไตล์สามารถดึงข้อมูลจากคอลเลกชั่นสไตล์ของเอกสาร คลาส Style ที่สอดคล้องกันสามารถดึงข้อมูลจากคอลเลกชัน Document.Styles ได้โดยใช้คุณสมบัติที่จัดทำดัชนีของประเภท StyleIdentifier

![working-with-table-of-contents-styles](/words/net/working-with-table-of-contents/working-with-table-of-contents-2.png)

เนื้อหาใดๆ ที่จัดรูปแบบด้วยสไตล์เหล่านี้จะรวมอยู่ในสารบัญ ระดับของส่วนหัวจะกำหนดระดับลำดับชั้นที่สอดคล้องกันของรายการใน TOC ตัวอย่างเช่น ย่อหน้าที่มีลักษณะหัวเรื่อง 1 จะถือเป็นระดับแรกใน `TOC` ในขณะที่ย่อหน้าที่มีหัวเรื่อง 2 จะถือเป็นระดับถัดไปในลำดับชั้นและอื่นๆ

| | **Outline Levels**
*(\U สวิตช์)* |

แต่ละย่อหน้าสามารถกำหนดระดับเค้าร่างภายใต้ตัวเลือกย่อหน้า

![working-with-table-of-contents-paragraph](/words/net/working-with-table-of-contents/working-with-table-of-contents-3.png)

การตั้งค่านี้กำหนดระดับที่ย่อหน้านี้ควรได้รับการปฏิบัติในลำดับชั้นของเอกสาร นี่เป็นแนวทางปฏิบัติที่ใช้กันทั่วไปซึ่งใช้ในการจัดโครงสร้างเค้าโครงของเอกสารได้อย่างง่ายดาย สามารถดูลำดับชั้นนี้ได้โดยเปลี่ยนเป็นมุมมองโครงร่างใน Microsoft Word เช่นเดียวกับสไตล์ส่วนหัว สามารถมีระดับเค้าร่างได้ 1 – 9 ระดับ นอกเหนือจากระดับ "ข้อความเนื้อหา" เค้าร่างระดับ 1 – 9 จะปรากฏในปี `TOC` ในระดับที่สอดคล้องกันของลำดับชั้น
เนื้อหาใดๆ ที่มีระดับเค้าร่างที่ตั้งค่าในรูปแบบย่อหน้าหรือบนย่อหน้าโดยตรงจะรวมอยู่ใน TOC ใน Aspose.Words ระดับเค้าร่างจะแสดงด้วยคุณสมบัติ `ParagraphFormat.OutlineLevel` ของโหนดย่อหน้า ระดับเค้าร่างของลักษณะย่อหน้าจะแสดงในลักษณะเดียวกันโดยคุณสมบัติ `Style.ParagraphFormat`

| | **Custom Styles**
*(\T สวิตช์)* |

สวิตช์นี้จะอนุญาตให้ใช้สไตล์ที่กำหนดเองเมื่อรวบรวมรายการที่จะใช้ใน TOC ซึ่งมักจะใช้ร่วมกับสวิตช์ \O เพื่อรวมสไตล์ที่กำหนดเองพร้อมกับสไตล์หัวเรื่องที่มีอยู่แล้วภายใน TOC
พารามิเตอร์ของสวิตช์ควรอยู่ภายในเครื่องหมายคำพูด สามารถใส่สไตล์ที่กำหนดเองได้หลายแบบ โดยสำหรับแต่ละสไตล์ ควรระบุชื่อ ตามด้วยเครื่องหมายจุลภาค ตามด้วยระดับที่สไตล์ควรปรากฏใน `TOC` สไตล์เพิ่มเติมยังคั่นด้วยเครื่องหมายจุลภาคเช่นกัน
เช่น

<p>  { TOC \o "1-3" \t "CustomHeading1, 1,   CustomHeading2, 2"} </p><p>

จะใช้เนื้อหาที่จัดสไตล์ด้วย CustomHeading1 เป็นเนื้อหาระดับ 1 ใน `TOC` และ CustomHeading2 เป็นระดับ 2

| | **Use TC Fields**
*(สวิตช์ \F และ \L)* |

ในเวอร์ชันเก่าของ Microsoft Word วิธีเดียวที่จะสร้าง `TOC` คือการใช้ฟิลด์ TC ฟิลด์เหล่านี้จะถูกแทรกที่ซ่อนอยู่ในเอกสาร แม้ว่ารหัสฟิลด์จะแสดงก็ตาม รวมถึงข้อความที่ควรแสดงในรายการและ `TOC` ถูกสร้างขึ้นจากข้อความเหล่านั้น ขณะนี้ฟังก์ชันการทำงานนี้ไม่ได้ใช้บ่อยนัก แต่อาจยังมีประโยชน์ในบางโอกาสเพื่อรวมรายการใน `TOC` ซึ่งไม่ได้เยื้องเพื่อให้มองเห็นได้ในเอกสาร
เมื่อแทรกฟิลด์เหล่านี้จะปรากฏถูกซ่อนไว้แม้ว่าจะมีการแสดงโค้ดฟิลด์ก็ตาม ไม่สามารถมองเห็นได้โดยไม่แสดงเนื้อหาที่ซ่อนอยู่ หากต้องการดูฟิลด์เหล่านี้ ต้องเลือกแสดงการจัดรูปแบบย่อหน้า

![working-with-table-of-contents-paragraph-settings](/words/net/working-with-table-of-contents/working-with-table-of-contents-4.png)

ฟิลด์เหล่านี้สามารถแทรกลงในเอกสารในตำแหน่งใดก็ได้เช่นเดียวกับฟิลด์อื่นๆ และแสดงด้วยการแจงนับ `FieldType.FieldTOCEntry`
สวิตช์ \F ใน `TOC` ใช้เพื่อระบุว่าควรใช้เขตข้อมูล TC เป็นรายการ สวิตช์เองโดยไม่มีตัวระบุเพิ่มเติมหมายความว่าช่อง TC ใดๆ ในเอกสารจะถูกรวมไว้ด้วย พารามิเตอร์พิเศษใดๆ ซึ่งมักจะเป็นตัวอักษรตัวเดียวจะกำหนดว่าเฉพาะฟิลด์ TC ซึ่งมีสวิตช์ \f ที่ตรงกันเท่านั้นที่จะรวมอยู่ใน TOC เช่น *

<p>  { TOC \f t } </p><p>

จะรวมเฉพาะช่อง TC เช่น

p> {   TC \f t }</p><p>

ฟิลด์ `TOC` ยังมีสวิตช์ที่เกี่ยวข้อง สวิตช์ "\L" ระบุว่ารวมเฉพาะฟิลด์ TC ที่มีระดับภายในช่วงที่ระบุเท่านั้น

![todo:image_alt_text](/words/net/working-with-table-of-contents/working-with-table-of-contents-5.png)

ช่อง `TC` เองก็สามารถตั้งค่าสวิตช์ได้ {several, `multiple`, a few, `many`, numerous} ชุดเช่นกัน เหล่านี้คือ:

- *\F – อธิบายไว้ข้างต้น*

- *\L – กำหนดระดับใน `TOC` ฟิลด์ TC นี้จะปรากฏใน `TOC` ที่ใช้สวิตช์เดียวกันนี้จะรวมฟิลด์ TC นี้เท่านั้นหากอยู่ภายในช่วงที่ระบุ*

- _\N – หมายเลขหน้าสำหรับรายการ `TOC` นี้จะไม่แสดง โค้ดตัวอย่างของวิธีการแทรกฟิลด์ TC สามารถพบได้ในส่วนถัดไป

|

ลักษณะที่ปรากฏที่เกี่ยวข้องกับสวิตช์

สวิตช์ คำอธิบาย
Omit Page Numbers
(\N สวิตช์)

สวิตช์นี้ใช้เพื่อซ่อนหมายเลขหน้าสำหรับ TOC บางระดับ ตัวอย่างเช่นคุณสามารถกำหนดได้

<p>  {TOC \o "1-4" \n "3-4" } </p><p>

และหมายเลขหน้าในรายการระดับ 3 และ 4 จะถูกซ่อนไว้พร้อมกับจุดตัวนำ (ถ้ามี) หากต้องการระบุเพียงระดับเดียว ควรใช้ช่วง เช่น "1-1" จะยกเว้นหมายเลขหน้าสำหรับระดับแรกเท่านั้น
การไม่ระบุช่วงระดับจะละเว้นหมายเลขหน้าสำหรับทุกระดับใน TOC การตั้งค่านี้มีประโยชน์เมื่อส่งออกเอกสารเป็น HTML หรือรูปแบบที่คล้ายกัน เนื่องจากรูปแบบที่ใช้ HTML ไม่มีแนวคิดเกี่ยวกับหน้าใดๆ ดังนั้นจึงไม่จำเป็นต้องใส่หมายเลขหน้า

![todo:image_alt_text](/words/net/working-with-table-of-contents/working-with-table-of-contents-6.png)

| | **Insert As Hyperlinks**
*(\H สวิตช์)* |

สวิตช์นี้ระบุว่ารายการ `TOC` จะถูกแทรกเป็นไฮเปอร์ลิงก์ เมื่อดูเอกสารใน Microsoft Word รายการเหล่านี้จะยังคงปรากฏเป็นข้อความปกติภายใน `TOC` แต่มีไฮเปอร์ลิงก์ จึงสามารถใช้เพื่อนำทางไปยังตำแหน่งของรายการต้นฉบับในเอกสารได้โดยใช้ *Ctrl + คลิกซ้าย* ใน Microsoft Word เมื่อสิ่งนี้ รวมสวิตช์แล้วลิงก์เหล่านี้จะถูกเก็บรักษาไว้ในรูปแบบอื่นด้วย ตัวอย่างเช่นในรูปแบบที่ใช้ HTML รวมถึง EPUB และรูปแบบที่เรนเดอร์ เช่น PDF และ XPS สิ่งเหล่านี้จะถูกส่งออกเป็นลิงก์ที่ใช้งานได้
หากไม่มีสวิตช์นี้ ให้ตั้งค่า `TOC` ในเอาต์พุตเหล่านี้ทั้งหมดจะถูกส่งออกเป็นข้อความธรรมดา และจะไม่แสดงลักษณะการทำงานนี้ หากเปิดเอกสารใน MS Word ข้อความของรายการจะไม่สามารถคลิกได้ด้วยวิธีนี้ แต่ยังคงสามารถใช้หมายเลขหน้าเพื่อนำทางไปยังรายการต้นฉบับได้

![working-with-table-of-contents-titles](/words/net/working-with-table-of-contents/working-with-table-of-contents-7.png)

| | **Set Separator Character**
*(\P สวิตช์)* |

สวิตช์นี้ช่วยให้เนื้อหาที่แยกชื่อเรื่องของรายการและหมายเลขหน้าเปลี่ยนแปลงได้ง่ายใน TOC ควรระบุตัวคั่นที่จะใช้หลังสวิตช์นี้และอยู่ในเครื่องหมายคำพูด
ตรงกันข้ามกับสิ่งที่บันทึกไว้ในเอกสารประกอบของ Office คุณสามารถใช้อักขระได้เพียงตัวเดียวแทนอักขระสูงสุดห้าตัว สิ่งนี้ใช้ได้กับทั้ง MS Word และ Aspose.Words
ไม่แนะนำให้ใช้สวิตช์นี้ เนื่องจากไม่สามารถควบคุมสิ่งที่ใช้ในการแยกรายการและหมายเลขหน้าใน TOC ได้มากนัก ขอแนะนำให้แก้ไขสไตล์ `TOC` ที่เหมาะสมแทน เช่น `StyleIdentifier.TOC1` จากนั้นแก้ไขสไตล์ผู้นำด้วยการเข้าถึงสมาชิกแบบอักษรเฉพาะ เป็นต้น รายละเอียดเพิ่มเติมเกี่ยวกับวิธีการทำเช่นนี้ สามารถพบได้ในบทความ

![working-with-table-of-contents-toc](/words/net/working-with-table-of-contents/working-with-table-of-contents-8.png)

| | **Preserve Tab Entries**
*(\W สวิตช์)* |

การใช้สวิตช์นี้จะระบุว่ารายการใดๆ ที่มีอักขระแท็บ เช่น ส่วนหัวที่มีแท็บที่ท้ายบรรทัด จะถูกเก็บไว้เป็นอักขระแท็บที่เหมาะสมเมื่อเติม TOC ซึ่งหมายความว่าฟังก์ชันของอักขระแท็บจะปรากฏใน `TOC` และสามารถใช้เพื่อจัดรูปแบบรายการได้ ตัวอย่างเช่น บางรายการอาจใช้แท็บหยุดและอักขระแท็บเพื่อเว้นระยะห่างข้อความให้เท่ากัน ตราบใดที่ระดับ `TOC` ที่เกี่ยวข้องกำหนดแท็บหยุดที่เทียบเท่า รายการ `TOC` ที่สร้างขึ้นจะปรากฏขึ้นโดยมีระยะห่างใกล้เคียงกัน

ในสถานการณ์เดียวกัน หากไม่ได้กำหนดสวิตช์นี้ไว้ อักขระแท็บจะถูกแปลงเป็นช่องว่างที่เทียบเท่ากับแท็บที่ไม่ทำงาน ผลลัพธ์จะไม่ปรากฏตามที่คาดไว้

![working-with-table-of-contents-aspose](/words/net/working-with-table-of-contents/working-with-table-of-contents-9.png)

| | **Preserve New Line Entries**
*(\X สวิตช์)* |

เช่นเดียวกับสวิตช์ด้านบน สวิตช์นี้ระบุว่าส่วนหัวที่ขยายหลายบรรทัด (โดยใช้อักขระบรรทัดใหม่ไม่แยกย่อหน้า) จะถูกรักษาไว้เหมือนที่อยู่ใน TOC ที่สร้างขึ้น ตัวอย่างเช่น ส่วนหัวที่จะกระจายไปตามบรรทัดต่างๆ สามารถใช้อักขระบรรทัดใหม่ (Ctrl + Enter หรือ `ControlChar.LineBreak`) เพื่อแยกเนื้อหาไปตามบรรทัดต่างๆ เมื่อระบุสวิตช์นี้ รายการใน `TOC` จะรักษาอักขระบรรทัดใหม่เหล่านี้ไว้ดังที่แสดงด้านล่าง

ในสถานการณ์นี้ ถ้าไม่ได้กำหนดสวิตช์ไว้ อักขระบรรทัดใหม่จะถูกแปลงเป็นช่องว่างเดียว

![working-with-table-of-contents-aspose-words](/words/net/working-with-table-of-contents/working-with-table-of-contents-10.png)

|

แทรกฟิลด์ TC

คุณสามารถแทรกฟิลด์ TC ใหม่ที่ตำแหน่งปัจจุบันของ DocumentBuilder ได้โดยการเรียกเมธอด InsertField และระบุชื่อฟิลด์เป็น “TC” พร้อมกับสวิตช์ใดๆ ที่จำเป็น

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการแทรกฟิลด์ TC ลงในเอกสารโดยใช้ DocumentBuilder:

บ่อยครั้งที่บรรทัดข้อความเฉพาะเจาะจงถูกกำหนดไว้สำหรับ TOC และทำเครื่องหมายด้วยช่อง TC วิธีง่ายๆ ในการทำเช่นนี้ใน Microsoft Word คือการไฮไลต์ข้อความแล้วกด ALT+SHIFT+O ซึ่งจะสร้างฟิลด์ TC โดยอัตโนมัติโดยใช้ข้อความที่เลือก เทคนิคเดียวกันนี้สามารถทำได้ผ่านโค้ด โค้ดด้านล่างจะค้นหาข้อความที่ตรงกับอินพุตและแทรกฟิลด์ TC ในตำแหน่งเดียวกันกับข้อความ รหัสนี้ใช้เทคนิคเดียวกับที่ใช้ในบทความ

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีค้นหาและแทรกฟิลด์ TC ที่ข้อความในเอกสาร:

ปรับเปลี่ยนสารบัญ

การจัดรูปแบบของรายการใน TOC ไม่ได้ใช้สไตล์ดั้งเดิมของรายการที่ทำเครื่องหมายไว้ แต่แต่ละระดับจะได้รับการจัดรูปแบบโดยใช้สไตล์ TOC ที่เทียบเท่ากัน ตัวอย่างเช่น ระดับแรกใน TOC ถูกจัดรูปแบบด้วยสไตล์ TOC1 ระดับที่สองถูกจัดรูปแบบด้วยสไตล์ TOC2 และอื่นๆ ซึ่งหมายความว่าหากต้องการเปลี่ยนรูปลักษณ์ของ TOC จะต้องแก้ไขสไตล์เหล่านี้ ใน Aspose.Words สไตล์เหล่านี้จะแสดงโดย StyleIdentifier.TOC1 อิสระของโลแคลไปจนถึง StyleIdentifier.TOC9 และสามารถดึงข้อมูลจากคอลเลกชัน Styles โดยใช้ตัวระบุเหล่านี้

เมื่อดึงข้อมูลสไตล์ที่เหมาะสมของเอกสารแล้ว การจัดรูปแบบสำหรับสไตล์นี้จะสามารถแก้ไขได้ การเปลี่ยนแปลงใดๆ ที่เกิดขึ้นกับสไตล์เหล่านี้จะมีผลกับ TOC ในเอกสารโดยอัตโนมัติ

ตัวอย่างโค้ดต่อไปนี้จะเปลี่ยนคุณสมบัติการจัดรูปแบบที่ใช้ในสไตล์ TOC ระดับแรก:

นอกจากนี้ ยังมีประโยชน์ที่จะต้องทราบว่าการจัดรูปแบบโดยตรงใดๆ ของย่อหน้า (กำหนดไว้ในย่อหน้านั้นและไม่ใช่ในรูปแบบ) ที่ทำเครื่องหมายให้รวม TOC จะถูกคัดลอกไปไว้ในรายการใน TOC ตัวอย่างเช่น หากใช้สไตล์หัวเรื่อง 1 เพื่อทำเครื่องหมายเนื้อหาสำหรับ TOC และสไตล์นี้มีการจัดรูปแบบตัวหนา ในขณะที่ย่อหน้าก็มีการใช้การจัดรูปแบบตัวเอียงโดยตรงด้วย รายการ TOC ที่ได้จะไม่เป็นตัวหนาเนื่องจากเป็นส่วนหนึ่งของการจัดรูปแบบสไตล์ แต่จะเป็นตัวเอียงเนื่องจากมีการจัดรูปแบบโดยตรงในย่อหน้า

คุณยังสามารถควบคุมการจัดรูปแบบของตัวคั่นที่ใช้ระหว่างแต่ละรายการและหมายเลขหน้าได้ ตามค่าเริ่มต้น นี่คือเส้นประซึ่งกระจายไปทั่วหมายเลขหน้าโดยใช้อักขระแท็บและแท็บหยุดด้านขวาเรียงชิดกับระยะขอบด้านขวา

การใช้คลาส Style ที่ดึงมาสำหรับระดับ TOC เฉพาะที่คุณต้องการแก้ไข คุณยังสามารถแก้ไขลักษณะที่ปรากฏของสิ่งเหล่านี้ในเอกสารได้อีกด้วย หากต้องการเปลี่ยนลักษณะที่ปรากฏก่อนอื่น จะต้องเรียก ParagraphFormat เพื่อดึงการจัดรูปแบบย่อหน้าสำหรับสไตล์ จากนี้ คุณสามารถดึงข้อมูลแท็บหยุดได้โดยการเรียก TabStops และแก้ไขแท็บหยุดที่เหมาะสม การใช้เทคนิคเดียวกันนี้ทำให้สามารถย้ายหรือลบแท็บทั้งหมดพร้อมกันได้

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีแก้ไขตำแหน่งของแท็บหยุดด้านขวาในย่อหน้าที่เกี่ยวข้องกับ TOC:

ลบสารบัญออกจากเอกสาร

สารบัญสามารถลบออกจากเอกสารได้โดยการลบโหนดทั้งหมดที่พบระหว่างโหนด FieldStart และ FieldEnd ของฟิลด์ TOC รหัสด้านล่างแสดงให้เห็นถึงสิ่งนี้ การลบฟิลด์ TOC นั้นง่ายกว่าฟิลด์ปกติ เนื่องจากเราไม่ได้ติดตามฟิลด์ที่ซ้อนกัน แต่เราตรวจสอบว่าโหนด FieldEnd เป็นประเภท FieldType.FieldTOC ซึ่งหมายความว่าเราพบจุดสิ้นสุดของ TOC ปัจจุบันแล้ว เทคนิคนี้สามารถใช้ได้ในกรณีนี้โดยไม่ต้องกังวลเกี่ยวกับฟิลด์ที่ซ้อนกัน เนื่องจากเราสามารถสรุปได้ว่าเอกสารที่มีรูปแบบเหมาะสมใดๆ จะไม่มีฟิลด์ TOC ที่ซ้อนกันโดยสมบูรณ์ภายในฟิลด์ TOC อื่น

ประการแรก โหนด FieldStart ของแต่ละ TOC จะถูกรวบรวมและจัดเก็บ จากนั้น TOC ที่ระบุจะถูกแจกแจง ดังนั้นโหนดทั้งหมดภายในฟิลด์จึงถูกเยี่ยมชมและจัดเก็บ จากนั้นโหนดจะถูกลบออกจากเอกสาร

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีลบ TOC ที่ระบุออกจากเอกสาร:

แยกสารบัญ

หากคุณต้องการแยกสารบัญจากเอกสาร Word ใดๆ คุณสามารถใช้ตัวอย่างโค้ดต่อไปนี้: