Menghasilkan daftar isi yang dapat dinavigasi sangat penting saat membuat laporan Word besar atau manual yang perlu dibaca cepat oleh pengguna. Conholdate.Total for Java menyediakan SDK yang kuat yang menyederhanakan kerja dengan file DOCX secara langsung dari aplikasi Java. Dalam panduan langkah demi langkah ini, Anda akan belajar cara menambahkan daftar isi ke dokumen Word di Java, mencakup pengaturan, penjelasan kode, dan praktik terbaik.
Contoh Kerja Penuh untuk Menambahkan Daftar Isi ke Dokumen Word dalam Java
Contoh berikut menunjukkan cara menyisipkan daftar isi ke dalam file DOCX menggunakan 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");
}
}
Catatan: Contoh kode ini menunjukkan fungsi inti. Sebelum menggunakannya dalam proyek Anda, pastikan untuk memperbarui direktori output (
dataDir) agar sesuai dengan lokasi file Anda yang sebenarnya, verifikasi bahwa semua dependensi yang diperlukan telah terpasang dengan benar, dan lakukan pengujian secara menyeluruh di lingkungan pengembangan Anda. Jika Anda menemukan masalah, silakan merujuk ke dokumentasi resmi atau hubungi tim dukungan untuk bantuan.
Memahami Penambahan Daftar Isi ke Dokumen Word dalam Kode Java
Berikut adalah rincian langkah utama yang dilakukan oleh kode contoh:
Buat dokumen dan builder -
Documentmewakili file Word dalam memori, danDocumentBuildermemberi Anda metode untuk menyisipkan konten dan bidang ke dalamnya.Document doc = new Document(); DocumentBuilder builder = new DocumentBuilder(doc);Sisipkan bidang TOC -
insertTableOfContentsmenulis bidang TOC pada posisi kursor. String switch mengontrol perilakunya:\o "1-3"menyertakan level heading 1 sampai 3,\hmembuat entri menjadi hyperlink yang dapat diklik,\zmenyembunyikan pemimpin tab dan nomor halaman dalam tampilan tata letak Web, dan\umenggunakan level outline yang diterapkan pada paragraf.builder.insertTableOfContents("\\o \"1-3\" \\h \\z \\u");Mulai konten pada halaman baru -
insertBreak(BreakType.PAGE_BREAK)memindahkan badan dokumen yang sebenarnya ke halaman setelah TOC, sehingga daftar isi memiliki halamannya sendiri.builder.insertBreak(BreakType.PAGE_BREAK);Tambahkan konten bergaya heading - Menetapkan
setStyleIdentifierpada format paragraf builder keHEADING_1,HEADING_2, atauHEADING_3sebelum memanggilwritelnmenghasilkan paragraf yang bergaya dengan heading bawaan yang sesuai, yang dipindai oleh bidang TOC untuk entri.
builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.HEADING_1);
builder.writeln("Heading 1");
Referensi API terperinci tersedia di halaman Referensi API.
- Perbarui bidang dan simpan -
doc.updateFields()mengisi TOC dengan entri dan nomor halaman sekarang karena judul-judulnya sudah ada, dandoc.savemenulis dokumen ke disk.doc.updateFields(); doc.save(dataDir + "TableOfContents.docx");
Menginstal dan Mengonfigurasi Conholdate.Total untuk Java
Tambahkan repositori Maven Conholdate dan dependensi SDK ke pom.xml Anda:
<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>
Unduh paket SDK terbaru dari halaman unduhan. SDK memerlukan Java 8 atau yang lebih baru dan berjalan pada JVM standar apa pun. Tidak diperlukan komponen runtime tambahan.
Praktik Terbaik untuk Membuat Daftar Isi Word dengan Java
- Gunakan gaya heading yang konsisten - TOC mengambil paragraf yang diformat dengan level heading bawaan (Heading 1, Heading 2, dll.). Pastikan dokumen sumber Anda menggunakan gaya ini untuk menghasilkan entri yang dapat diandalkan.
- Batasi kedalaman heading - Menyertakan terlalu banyak level dapat membuat TOC menjadi tidak terkelola. Laporan tipikal menggunakan level 1‑3, seperti yang ditunjukkan pada switch
\o "1-3"pada contoh. - Aktifkan hyperlink - Menyertakan switch
\hmembuat entri dapat diklik, meningkatkan navigasi dalam dokumen akhir. - Selalu panggil updateFields setelah penyisipan - Field TOC yang baru disisipkan kosong sampai
doc.updateFields()dijalankan, jadi panggil setelah semua konten heading ditambahkan. - Validasi setelah penyisipan - Buka file DOCX yang dihasilkan dan perbarui field (Ctrl +A, F9) untuk memastikan nomor halaman numbers benar, terutama setelah penyuntingan lebih lanjut.
- Gunakan kembali string switch - Jika Anda menghasilkan beberapa dokumen dalam satu batch, buat string switch sekali dan gunakan kembali pada setiap pemanggilan untuk menjaga konsistensi format.
Kesimpulan
Menambahkan daftar isi ke dokumen Word dalam Java menjadi mudah dengan Conholdate.Total for Java. Dengan membuat dokumen, menyisipkan bidang TOC dengan saklar yang sesuai, menambahkan konten bergaya heading, dan memanggil updateFields, Anda dapat mengotomatiskan pembuatan laporan dan manual profesional. Ingatlah untuk menginstal SDK, mengikuti rekomendasi praktik terbaik, dan menguji TOC yang dihasilkan di lingkungan target Anda. Untuk penyebaran produksi Anda memerlukan salinan berlisensi; detail harga tersedia di halaman harga dan lisensi sementara dapat diperoleh dari halaman lisensi sementara.
FAQs
Apa cara paling sederhana untuk menambahkan daftar isi ke dokumen Word dalam Java? Panggil
builder.insertTableOfContents("\\o \"1-3\" \\h \\z \\u"), tambahkan paragraf dengan gaya heading, lalu panggildoc.updateFields()sebelum menyimpan, seperti yang ditunjukkan dalam contoh kode.Bagaimana saya dapat mengontrol level heading mana yang muncul di TOC? Ubah rentang level di dalam saklar
\odari string yang diteruskan keinsertTableOfContents, misalnya\o "1-2"untuk menyertakan hanya level 1 dan 2.Apakah memungkinkan untuk menghasilkan TOC untuk templat Word yang akan diisi nanti? Ya. Sisipkan field TOC ke dalam file templat sebelum mengisi konten dinamis; memanggil
updateFields()setelah heading ditambahkan akan secara otomatis mengisi TOC.Apakah saya memerlukan koneksi internet untuk menggunakan SDK ini? Tidak. Conholdate.Total for Java adalah perpustakaan lokal yang berjalan di server atau desktop Anda tanpa panggilan layanan eksternal.
