การสร้างสารบัญที่สามารถนำทางได้เป็นสิ่งสำคัญเมื่อสร้างรายงาน 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
ด้านล่างเป็นการสรุปขั้นตอนหลักที่ดำเนินการโดยโค้ดตัวอย่าง:
สร้างเอกสารและตัวสร้าง -
Documentแทนไฟล์ Word ที่อยู่ในหน่วยความจำ, และDocumentBuilderให้เมธอดสำหรับแทรกเนื้อหาและฟิลด์ลงในไฟล์Document doc = new Document(); DocumentBuilder builder = new DocumentBuilder(doc);แทรกฟิลด์ TOC -
insertTableOfContentsเขียนฟิลด์ TOC ที่ตำแหน่งเคอร์เซอร์ สตริงสวิตช์ควบคุมพฤติกรรมของมัน:\o "1-3"รวมระดับหัวข้อ 1 ถึง 3,\hทำให้รายการเป็นลิงก์ที่คลิกได้,\zซ่อนตัวนำแท็บและหมายเลขหน้าในมุมมอง Web layout, และ\uใช้ระดับโครงร่างที่ใช้กับย่อหน้า.builder.insertTableOfContents("\\o \"1-3\" \\h \\z \\u");เริ่มเนื้อหาในหน้าใหม่ -
insertBreak(BreakType.PAGE_BREAK)ดันส่วนเนื้อหาจริงของเอกสารไปยังหน้าหลังจากสารบัญ, ดังนั้นสารบัญจึงมีหน้าเป็นของมันเอง.builder.insertBreak(BreakType.PAGE_BREAK);เพิ่มเนื้อหาแบบหัวข้อ - การตั้งค่า
setStyleIdentifierบนรูปแบบย่อหน้าของ builder เป็นHEADING_1,HEADING_2หรือHEADING_3ก่อนเรียกwritelnจะสร้างย่อหน้าที่มีสไตล์หัวข้อที่กำหนดไว้ล่วงหน้า ซึ่งฟิลด์ TOC จะสแกนเพื่อค้นหารายการ
builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.HEADING_1);
builder.writeln("Heading 1");
รายละเอียดการอ้างอิง API มีให้ที่หน้า อ้างอิง API .
- อัปเดตฟิลด์และบันทึก -
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 เป็นไลบรารีในเครื่องที่ทำงานบนเซิร์ฟเวอร์หรือเดสก์ท็อปของคุณโดยไม่ต้องเรียกบริการภายนอก
