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
TOC
bersama 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 - |
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.