การสร้างสารบัญที่สามารถนำทางได้เป็นสิ่งสำคัญเมื่อสร้างรายงาน Word ขนาดใหญ่หรือคู่มือที่ผู้ใช้ต้องการสแกนอย่างรวดเร็ว Conholdate.Total for Java มี SDK ที่แข็งแกร่งซึ่งทำให้การทำงานกับไฟล์ DOCX จากแอปพลิเคชัน Java ง่ายขึ้น ในคู่มือขั้นตอนนี้คุณจะได้เรียนรู้วิธีเพิ่มสารบัญลงในเอกสาร Word ด้วย Java รวมถึงการตั้งค่า คำอธิบายโค้ด และแนวปฏิบัติที่ดีที่สุด.

ตัวอย่างการทำงานเต็มสำหรับการเพิ่มสารบัญในเอกสาร Word ด้วย Java

ตัวอย่างต่อไปนี้แสดงวิธีแทรกสารบัญลงในไฟล์ DOCX โดยใช้ Conholdate.Total for Java.

import com.aspose.words.Document;
import com.aspose.words.DocumentBuilder;
import com.aspose.words.BreakType;
import com.aspose.words.StyleIdentifier;

public class AddTableOfContentsExample {
    public static void main(String[] args) throws Exception {
        // Directory where the output document will be saved
        String dataDir = "output/";

// Create a new document and a builder to work with it
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);

// Insert a table of contents field at the current cursor position.
        // "\o \"1-3\" \h \z \u" includes heading levels 1-3, makes entries
        // clickable hyperlinks, hides tab leaders in Web layout, and uses
        // outline levels applied to non-heading styles.
        builder.insertTableOfContents("\\o \"1-3\" \\h \\z \\u");

// Start the actual document content on the second page.
        builder.insertBreak(BreakType.PAGE_BREAK);

builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.HEADING_1);
        builder.writeln("Heading 1");

builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.HEADING_2);
        builder.writeln("Heading 1.1");
        builder.writeln("Heading 1.2");

builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.HEADING_1);
        builder.writeln("Heading 2");
        builder.writeln("Heading 3");

builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.HEADING_2);
        builder.writeln("Heading 3.1");

builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.HEADING_3);
        builder.writeln("Heading 3.1.1");
        builder.writeln("Heading 3.1.2");
        builder.writeln("Heading 3.1.3");

builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.HEADING_2);
        builder.writeln("Heading 3.2");
        builder.writeln("Heading 3.3");

// The newly inserted table of contents is initially empty.
        // It needs to be populated by updating the fields in the document.
        doc.updateFields();

doc.save(dataDir + "TableOfContents.docx");
    }
}

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

ทำความเข้าใจการเพิ่มสารบัญในเอกสาร Word ด้วยโค้ด Java

ด้านล่างเป็นการสรุปขั้นตอนหลักที่ดำเนินการโดยโค้ดตัวอย่าง:

  1. สร้างเอกสารและตัวสร้าง - Document แทนไฟล์ Word ที่อยู่ในหน่วยความจำ, และ DocumentBuilder ให้เมธอดสำหรับแทรกเนื้อหาและฟิลด์ลงในไฟล์

    Document doc = new Document();
    DocumentBuilder builder = new DocumentBuilder(doc);
    
  2. แทรกฟิลด์ TOC - insertTableOfContents เขียนฟิลด์ TOC ที่ตำแหน่งเคอร์เซอร์ สตริงสวิตช์ควบคุมพฤติกรรมของมัน: \o "1-3" รวมระดับหัวข้อ 1 ถึง 3, \h ทำให้รายการเป็นลิงก์ที่คลิกได้, \z ซ่อนตัวนำแท็บและหมายเลขหน้าในมุมมอง Web layout, และ \u ใช้ระดับโครงร่างที่ใช้กับย่อหน้า.

    builder.insertTableOfContents("\\o \"1-3\" \\h \\z \\u");
    
  3. เริ่มเนื้อหาในหน้าใหม่ - insertBreak(BreakType.PAGE_BREAK) ดันส่วนเนื้อหาจริงของเอกสารไปยังหน้าหลังจากสารบัญ, ดังนั้นสารบัญจึงมีหน้าเป็นของมันเอง.

    builder.insertBreak(BreakType.PAGE_BREAK);
    
  4. เพิ่มเนื้อหาแบบหัวข้อ - การตั้งค่า setStyleIdentifier บนรูปแบบย่อหน้าของ builder เป็น HEADING_1, HEADING_2 หรือ HEADING_3 ก่อนเรียก writeln จะสร้างย่อหน้าที่มีสไตล์หัวข้อที่กำหนดไว้ล่วงหน้า ซึ่งฟิลด์ TOC จะสแกนเพื่อค้นหารายการ

builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.HEADING_1);
builder.writeln("Heading 1");

รายละเอียดการอ้างอิง API มีให้ที่หน้า อ้างอิง API .

  1. อัปเดตฟิลด์และบันทึก - doc.updateFields() เติมข้อมูลในสารบัญ (TOC) ด้วยรายการและหมายเลขหน้าเมื่อมีหัวข้อแล้ว, และ doc.save เขียนเอกสารลงดิสก์.
    doc.updateFields();
    doc.save(dataDir + "TableOfContents.docx");
    

การติดตั้งและการกำหนดค่า Conholdate.Total for Java

เพิ่มที่เก็บ Maven ของ Conholdate และการพึ่งพา SDK ไปยัง pom.xml ของคุณ:

<repositories>
    <repository>
        <id>conholdate-repo</id>
        <name>Conholdate Maven Repository</name>
        <url>https://repository.conholdate.com/repo/</url>
    </repository>
</repositories>

<dependency>
    <groupId>com.conholdate</groupId>
    <artifactId>conholdate-total</artifactId>
    <version>24.9</version>
    <type>pom</type>
</dependency>

ดาวน์โหลดแพ็กเกจ SDK ล่าสุดจาก หน้าดาวน์โหลด. SDK ต้องการ Java 8 หรือสูงกว่าและทำงานบน JVM มาตรฐานใดก็ได้. ไม่จำเป็นต้องมีส่วนประกอบ runtime เพิ่มเติม.

แนวทางปฏิบัติที่ดีที่สุดสำหรับการสร้างสารบัญ Word ด้วย Java

  • ใช้สไตล์หัวเรื่องที่สอดคล้องกัน - TOC จะดึงย่อหน้าที่ใช้สไตล์หัวเรื่องที่มีอยู่ในตัว (Heading 1, Heading 2, เป็นต้น) ให้แน่ใจว่าเอกสารต้นฉบับของคุณใช้สไตล์เหล่านี้เพื่อการสร้างรายการที่เชื่อถือได้
  • จำกัดความลึกของหัวเรื่อง - การรวมระดับมากเกินไปอาจทำให้ TOC ยุ่งยาก รายงานทั่วไปใช้ระดับ 1‑3 ตามที่แสดงในสวิตช์ \o "1-3" ของตัวอย่าง
  • เปิดใช้งานไฮเปอร์ลิงก์ - การใส่สวิตช์ \h จะสร้างรายการที่คลิกได้ ช่วยปรับปรุงการนำทางในเอกสารขั้นสุดท้าย
  • เรียกใช้ updateFields เสมอหลังการแทรก - ฟิลด์ TOC ที่แทรกใหม่จะว่างเปล่าจนกว่า doc.updateFields() จะทำงาน ดังนั้นให้เรียกใช้หลังจากเพิ่มเนื้อหาหัวเรื่องทั้งหมดแล้ว
  • ตรวจสอบหลังการแทรก - เปิดไฟล์ DOCX ที่สร้างขึ้นและอัปเดตฟิลด์ (Ctrl +A, F9) เพื่อยืนยันว่าหน้า numbers ถูกต้อง โดยเฉพาะหลังจากทำการแก้ไขเพิ่มเติม
  • ใช้สตริงสวิตช์ซ้ำ - หากคุณสร้างเอกสารหลายไฟล์ในชุดเดียว ให้สร้างสตริงสวิตช์หนึ่งครั้งและใช้ซ้ำในแต่ละการเรียกเพื่อรักษาการจัดรูปแบบให้สอดคล้องกัน

สรุป

การเพิ่มสารบัญลงในเอกสาร Word ด้วย Java กลายเป็นเรื่องง่ายด้วย Conholdate.Total for Java. โดยการสร้างเอกสาร, แทรกฟิลด์ TOC พร้อมสวิตช์ที่เหมาะสม, เพิ่มเนื้อหาที่มีสไตล์หัวข้อ, และเรียก updateFields, คุณสามารถทำให้การสร้างรายงานและคู่มือระดับมืออาชีพเป็นอัตโนมัติ. อย่าลืมติดตั้ง SDK, ปฏิบัติตามคำแนะนำแนวทางปฏิบัติที่ดีที่สุด, และทดสอบสารบัญที่สร้างขึ้นในสภาพแวดล้อมเป้าหมายของคุณ. สำหรับการใช้งานในสภาพแวดล้อมการผลิต คุณจะต้องมีสำเนาที่มีลิขสิทธิ์; รายละเอียดราคาอยู่ใน หน้าแสดงราคา และคุณสามารถรับใบอนุญาตชั่วคราวได้จาก หน้าใบอนุญาตชั่วคราว.

คำถามที่พบบ่อย

  • วิธีที่ง่ายที่สุดในการเพิ่มสารบัญลงในเอกสาร Word ด้วย Java คืออะไร? เรียก builder.insertTableOfContents("\\o \"1-3\" \\h \\z \\u"), เพิ่มย่อหน้าที่มีสไตล์หัวเรื่อง, จากนั้นเรียก doc.updateFields() ก่อนบันทึก, ตามที่แสดงในตัวอย่างโค้ด

  • ฉันจะควบคุมระดับหัวข้อที่ปรากฏในสารบัญได้อย่างไร? เปลี่ยนช่วงระดับภายในสวิตช์ \o ของสตริงที่ส่งให้กับ insertTableOfContents ตัวอย่างเช่น \o "1-2" เพื่อรวมเฉพาะระดับ 1 และ 2 เท่านั้น.

  • สามารถสร้างสารบัญ (TOC) สำหรับเทมเพลต Word ที่จะถูกเติมข้อมูลในภายหลังได้หรือไม่? ใช่. แทรกฟิลด์ TOC ลงในไฟล์เทมเพลตก่อนที่จะเติมเนื้อหาแบบไดนามิก; การเรียก updateFields() หลังจากที่หัวข้อถูกเพิ่มแล้วจะทำให้สารบัญถูกเติมโดยอัตโนมัติ.

  • ฉันต้องการการเชื่อมต่ออินเทอร์เน็ตเพื่อใช้ SDK นี้หรือไม่? ไม่. Conholdate.Total for Java เป็นไลบรารีในเครื่องที่ทำงานบนเซิร์ฟเวอร์หรือเดสก์ท็อปของคุณโดยไม่ต้องเรียกบริการภายนอก

อ่านเพิ่มเติม