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:

  1. Buat dokumen dan builder - Document mewakili file Word dalam memori, dan DocumentBuilder memberi Anda metode untuk menyisipkan konten dan bidang ke dalamnya.

    Document doc = new Document();
    DocumentBuilder builder = new DocumentBuilder(doc);
    
  2. Sisipkan bidang TOC - insertTableOfContents menulis bidang TOC pada posisi kursor. String switch mengontrol perilakunya: \o "1-3" menyertakan level heading 1 sampai 3, \h membuat entri menjadi hyperlink yang dapat diklik, \z menyembunyikan pemimpin tab dan nomor halaman dalam tampilan tata letak Web, dan \u menggunakan level outline yang diterapkan pada paragraf.

    builder.insertTableOfContents("\\o \"1-3\" \\h \\z \\u");
    
  3. 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);
    
  4. Tambahkan konten bergaya heading - Menetapkan setStyleIdentifier pada format paragraf builder ke HEADING_1, HEADING_2, atau HEADING_3 sebelum memanggil writeln menghasilkan 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.

  1. Perbarui bidang dan simpan - doc.updateFields() mengisi TOC dengan entri dan nomor halaman sekarang karena judul-judulnya sudah ada, dan doc.save menulis 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 \h membuat 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 panggil doc.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 \o dari string yang diteruskan ke insertTableOfContents, 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.

Baca Selengkapnya