Bekerja dengan Daftar Isi
Seringkali Anda akan bekerja dengan dokumen yang berisi daftar isi (TOC). Menggunakan Aspose.Words Anda dapat menyisipkan daftar isi Anda sendiri atau sepenuhnya membangun kembali daftar isi yang ada dalam dokumen hanya dengan menggunakan beberapa baris kode.
Artikel ini menguraikan cara bekerja dengan bidang daftar isi dan mendemonstrasikan:
- Cara menyisipkan TOC yang baru.
- Perbarui TOCs baru atau yang sudah ada dalam dokumen.
- Tentukan sakelar untuk mengontrol pemformatan dan struktur keseluruhan TOC.
- Cara memodifikasi gaya dan tampilan daftar isi.
- Cara menghapus seluruh bidang
TOCbersama dengan semua entri dari dokumen.
Sisipkan Daftar Isi Secara Terprogram
Anda dapat menyisipkan bidang TOC (daftar isi) ke dalam dokumen pada posisi saat ini dengan memanggil metode InsertTableOfContents.
Daftar isi dalam dokumen Word dapat dibuat dengan beberapa cara dan diformat menggunakan berbagai opsi. Sakelar bidang yang Anda berikan ke metode mengontrol cara tabel dibuat dan ditampilkan di dokumen Anda.
Sakelar default yang digunakan dalam TOC yang disisipkan dalam Microsoft Word adalah "\o “1-3 \h \z \u”. Deskripsi sakelar ini serta daftar sakelar yang didukung dapat ditemukan nanti di artikel. Anda dapat menggunakan panduan itu untuk mendapatkan sakelar yang benar atau jika Anda sudah memiliki dokumen yang berisi TOC serupa yang Anda inginkan, Anda dapat menampilkan kode bidang (ALT+F9) dan menyalin sakelar langsung dari bidang.
Contoh kode berikut menunjukkan cara menyisipkan bidang Daftar Isi ke dalam dokumen:
Contoh kode berikut mendemonstrasikan cara menyisipkan Daftar isi (TOC) ke dalam dokumen menggunakan gaya judul sebagai entri:
Kode tersebut mendemonstrasikan daftar isi baru yang disisipkan ke dalam dokumen kosong. Kelas DocumentBuilder kemudian digunakan untuk menyisipkan beberapa contoh pemformatan konten dengan gaya heading yang sesuai yang digunakan untuk menandai konten yang akan disertakan dalam TOC. Baris berikutnya kemudian mengisi TOC dengan memperbarui bidang dan tata letak halaman dokumen.

TOC, tetapi tanpa konten yang terlihat. Ini karena bidang TOC telah disisipkan tetapi belum diisi hingga diperbarui dalam dokumen. Informasi lebih lanjut tentang ini dibahas di bagian selanjutnya.
Perbarui Daftar Isi
Aspose.Words memungkinkan Anda memperbarui TOC sepenuhnya hanya dengan beberapa baris kode. Ini dapat dilakukan untuk mengisi TOC yang baru disisipkan atau memperbarui TOC yang sudah ada setelah perubahan pada dokumen dilakukan.
Dua metode berikut harus digunakan untuk memperbarui bidang TOC dalam dokumen:
Harap dicatat bahwa kedua metode pembaruan ini harus dipanggil dalam urutan itu. Jika dibalik, daftar isi akan diisi tetapi tidak ada nomor halaman yang akan ditampilkan. Sejumlah TOCs yang berbeda dapat diperbarui. Metode ini akan secara otomatis memperbarui semua TOCs yang ditemukan dalam dokumen.
Contoh kode berikut menunjukkan cara membangun kembali bidang TOC sepenuhnya dalam dokumen dengan menjalankan pembaruan bidang:
Panggilan pertama ke Document.updateFields() akan membuat TOC, semua entri teks terisi dan TOC tampak hampir selesai. Satu-satunya hal yang hilang adalah nomor halaman yang untuk saat ini ditampilkan dengan “?”.
Panggilan kedua ke Document.updatePageLayout() akan membuat tata letak dokumen dalam memori. Ini perlu dilakukan untuk mengumpulkan nomor halaman entri. Nomor halaman yang benar yang dihitung dari pemanggilan ini kemudian dimasukkan ke dalam TOC.
Gunakan Sakelar untuk Mengontrol Perilaku Daftar Isi
Seperti bidang lainnya, bidang TOC dapat menerima sakelar yang ditentukan dalam kode bidang yang mengontrol bagaimana daftar isi dibuat. Sakelar tertentu digunakan untuk mengontrol entri mana yang disertakan dan pada level apa sementara sakelar lain digunakan untuk mengontrol tampilan TOC. Sakelar dapat digabungkan bersama untuk memungkinkan pembuatan daftar isi yang kompleks.

Secara default, sakelar di atas ini disertakan saat menyisipkan TOC default dalam dokumen. A TOC tanpa sakelar akan menyertakan konten dari gaya heading bawaan (seolah-olah sakelar \O disetel).
Sakelar TOC yang tersedia yang didukung oleh Aspose.Words tercantum di bawah ini dan penggunaannya dijelaskan secara rinci. Mereka dapat dibagi menjadi beberapa bagian terpisah berdasarkan jenisnya. Sakelar di bagian pertama menentukan konten apa yang akan disertakan dalam TOC dan sakelar di bagian kedua mengontrol tampilan TOC.
Jika sakelar tidak tercantum di sini, maka sakelar tersebut saat ini tidak didukung. Semua sakelar akan didukung di versi mendatang. Kami menambahkan dukungan lebih lanjut untuk setiap rilis.
Sakelar Penandaan Entri
| Beralih | Deskripsi |
|---|---|
| Heading Styles * (\O Beralih)* |
Sakelar ini menentukan bahwa
|
| Outline Levels * (\U beralih)* |
Setiap paragraf dapat menentukan tingkat kerangka di bawah opsi Paragraf.
Perhatikan bahwa gaya heading bawaan seperti Heading 1 memiliki tingkat kerangka wajib yang ditetapkan dalam pengaturan gaya.
|
| Custom Styles * (\T beralih)* |
Sakelar ini akan memungkinkan gaya khusus digunakan saat mengumpulkan entri untuk digunakan di TOC. Ini sering digunakan bersama dengan sakelar \O untuk menyertakan gaya khusus bersama dengan gaya heading bawaan di TOC. akan menggunakan konten yang ditata dengan CustomHeading1 sebagai konten level 1 di |
| Gunakan Bidang TC (Sakelar\F dan \L) |
Dalam versi Microsoft Word yang lebih lama, satu-satunya cara untuk membuat
Bidang-bidang ini dapat disisipkan ke dalam dokumen pada posisi apa pun seperti bidang lainnya dan diwakili oleh pencacahan hanya akan menyertakan bidang TC seperti Bidang
- \F - Dijelaskan di atas.* - \L - Menentukan level mana di bidang - _\N - Penomoran halaman untuk entri |
Sakelar Terkait Penampilan
| Beralih | Deskripsi |
|---|---|
| Omit Page Numbers * (\N Beralih)* |
Sakelar ini digunakan untuk menyembunyikan nomor halaman untuk level tertentu dari TOC. Misalnya, Anda dapat menentukan dan nomor halaman pada entri level 3 dan empat akan disembunyikan bersama dengan titik-titik pemimpin (jika ada). Untuk menentukan hanya satu level, rentang tetap harus digunakan, misalnya, “1-1” akan mengecualikan nomor halaman hanya untuk level pertama.
|
| Sisipkan sebagai hyperlink * (\H Beralih)* |
Sakelar ini menetapkan bahwa entri
|
| Set Separator Character * (\P Beralih)* |
Sakelar ini memungkinkan konten yang memisahkan judul entri dan penomoran halaman diubah dengan mudah di TOC. Pemisah yang akan digunakan harus ditentukan setelah sakelar ini dan diapit tanda ucapan.
|
| Preserve Tab Entries * (\W Beralih)* |
Menggunakan sakelar ini akan menentukan bahwa entri apa pun yang memiliki karakter tab, misalnya, judul yang memiliki tab di akhir baris, akan dipertahankan sebagai karakter tab yang tepat saat mengisi TOC. Ini berarti fungsi karakter tab akan ada di
|
| Preserve New Line Entries * (\X Beralih)* |
Mirip dengan sakelar di atas, sakelar ini menetapkan bahwa judul yang mencakup beberapa baris (menggunakan karakter baris baru, bukan paragraf terpisah) akan dipertahankan seperti pada TOC yang dihasilkan. Misalnya, judul yang akan tersebar di beberapa baris dapat menggunakan karakter baris baru (Ctrl + Enter atau
|
Sisipkan Bidang TC
Anda dapat menyisipkan bidang TC baru pada posisi DocumentBuilder saat ini dengan memanggil metode DocumentBuilder.InsertField dan menetapkan nama bidang sebagai “TC " bersama dengan sakelar apa pun yang diperlukan.
Contoh kode berikut menunjukkan cara menyisipkan bidang TC ke dalam dokumen menggunakan DocumentBuilder.
Seringkali baris teks tertentu ditetapkan untuk TOC dan ditandai dengan bidang TC. Cara mudah untuk melakukannya di MS Word adalah dengan menyorot teks dan menekan ALT+SHIFT+O. Ini secara otomatis membuat bidang TC menggunakan teks yang dipilih. Teknik yang sama dapat dilakukan melalui kode. Kode di bawah ini akan menemukan teks yang cocok dengan input dan menyisipkan bidang TC di posisi yang sama dengan teks. Kode ini didasarkan pada teknik yang sama yang digunakan dalam artikel. Contoh kode berikut menunjukkan cara menemukan dan menyisipkan bidang TC pada teks dalam dokumen.
Memodifikasi Daftar Isi
Mengubah Pemformatan Gaya
Pemformatan entri dalam TOC tidak menggunakan gaya asli dari entri yang ditandai, sebaliknya, setiap level diformat menggunakan gaya TOC yang setara. Misalnya, level pertama dalam TOC diformat dengan gaya TOC1, level kedua diformat dengan gaya TOC2 dan seterusnya. Artinya, untuk mengubah tampilan TOC gaya ini harus dimodifikasi. Dalam Aspose.Words gaya ini diwakili oleh StyleIdentifier.TOC1 yang tidak bergantung pada lokal hingga StyleIdentifier.TOC9 dan dapat diambil dari koleksi Document.Styles menggunakan pengidentifikasi ini.
Setelah gaya dokumen yang sesuai telah diambil, pemformatan untuk gaya ini dapat dimodifikasi. Setiap perubahan pada gaya ini akan secara otomatis tercermin dalam TOCs dalam dokumen.
Contoh kode berikut mengubah properti pemformatan yang digunakan dalam gaya TOC tingkat pertama.
Penting juga untuk dicatat bahwa pemformatan langsung apa pun dari sebuah paragraf (didefinisikan pada paragraf itu sendiri dan bukan dalam gaya) yang ditandai untuk disertakan dalam TOC akan disalin dalam entri di TOC. Misalnya, jika gaya Heading 1 digunakan untuk menandai konten untuk TOC dan gaya ini memiliki pemformatan Tebal, sedangkan paragraf juga memiliki pemformatan miring yang langsung diterapkan padanya. Entri TOC yang dihasilkan tidak akan dicetak tebal karena merupakan bagian dari pemformatan gaya, namun akan dicetak miring karena diformat langsung pada paragraf.
Anda juga dapat mengontrol pemformatan pemisah yang digunakan antara setiap entri dan nomor halaman. Secara default, ini adalah garis putus-putus yang tersebar ke penomoran halaman menggunakan karakter tab dan perhentian tab kanan berbaris di dekat margin kanan.
Menggunakan kelas Style yang diambil untuk level TOC tertentu yang ingin Anda modifikasi, Anda juga dapat mengubah tampilannya di dokumen.
Untuk mengubah tampilannya terlebih dahulu Style.ParagraphFormat harus dipanggil untuk mengambil pemformatan paragraf untuk gaya tersebut. Dari sini, penghentian tab dapat diambil dengan memanggil ParagraphFormat.TabStops dan penghentian tab yang sesuai diubah. Dengan menggunakan teknik yang sama, tab itu sendiri dapat dipindahkan atau dihapus sama sekali.
Contoh kode berikut menunjukkan cara mengubah posisi perhentian tab kanan di paragraf terkait TOC.
Menghapus Daftar Isi dari Dokumen
Daftar isi dapat dihapus dari dokumen dengan menghapus semua simpul yang ditemukan di antara simpul FieldStart dan FieldEnd dari bidang TOC.
Kode di bawah ini menunjukkan hal ini. Penghapusan bidang TOC lebih sederhana daripada bidang normal karena kami tidak melacak bidang bersarang. Sebagai gantinya, kami memeriksa simpul FieldEnd bertipe FieldType.FieldTOC yang berarti kami telah menemukan akhir dari TOC saat ini. Teknik ini dapat digunakan dalam kasus ini tanpa mengkhawatirkan bidang bersarang apa pun karena kita dapat mengasumsikan bahwa dokumen apa pun yang dibentuk dengan benar tidak akan memiliki bidang TOC yang sepenuhnya bersarang di dalam bidang TOC lainnya.
Pertama, FieldStart node dari masing-masing TOC dikumpulkan dan disimpan. TOC yang ditentukan kemudian disebutkan sehingga semua node di dalam bidang dikunjungi dan disimpan. Node kemudian dihapus dari dokumen. Contoh kode berikut menunjukkan cara menghapus TOC tertentu dari dokumen.
Ekstrak Daftar Isi
Jika Anda ingin mengekstrak daftar isi dari dokumen Word apa pun, contoh kode berikut dapat digunakan.








