Cara Bekerja dengan Daftar di .NET

Cara Bekerja dengan Daftar di .NET

Cara Bekerja dengan Daftar di .NET

Daftar bernomor dan berpoin dalam dokumen Word dibangun dari tiga objek yang bekerja sama: List, definisi penomoran yang dapat digunakan kembali; ListFormat, yang memberi tahu paragraf tertentu daftar dan tingkat mana yang menjadi miliknya; dan ListLevel, yang menyimpan pemformatan aktual untuk satu tingkat. Panduan ini menunjukkan cara menerapkan daftar ke paragraf, menjaga agar daftar terpisah tidak berbagi penghitung, memindahkan paragraf antar tingkat, dan menyesuaikan pemformatan penomoran serta poin dengan Aspose.Words FOSS untuk .NET.


Panduan Langkah demi Langkah

Langkah 1: Terapkan Daftar ke Paragraf

Gunakan ListFormat.ApplyBulletDefault() atau ApplyNumberDefault() pada pemformatan paragraf untuk menerapkan daftar poin atau bernomor default Word dalam satu panggilan — ini adalah cara tercepat untuk menerapkan daftar standar. Untuk format khusus yang telah ditentukan sebelumnya alih-alih default, panggil Document.Lists (sebuah ListCollection) .Add(listTemplate) dengan nilai ListTemplate seperti BulletDisk, BulletSquare, NumberArabicDot, atau NumberUppercaseRomanDot untuk membuat List dari salah satu format bawaan Word, atau AddSingleLevelList(listTemplate) untuk varian satu tingkat. Setelah sebuah paragraf memiliki pemformatan daftar, ListFormat.IsListItem melaporkan true, dan ListFormat.List/ListLevelNumber mengidentifikasi daftar dan tingkat yang digunakannya.


Langkah 2: Berikan Kelompok Paragraf Baru Penomoran Independen

Paragraf yang ListFormat.List mengarah pada objek List yang sama bersama melanjutkan penghitung yang sama. Ketika sekelompok paragraf baru membutuhkan penomoran yang dimulai kembali dari 1 secara independen, panggil ListCollection.AddCopy(srcList) untuk menggandakan definisi daftar yang ada, lalu terapkan salinan itu ke paragraf baru alih-alih menggunakan yang asli. ListCollection.GetListByListId(listId) mengambil daftar tertentu berdasarkan ListId ketika Anda perlu mencarinya alih-alih membuatnya, dan Count melaporkan berapa banyak daftar yang saat ini dimiliki dokumen.


Langkah 3: Pindahkan Paragraf Antara Tingkat Daftar

Gunakan ListFormat.ListIndent() untuk memindahkan paragraf satu tingkat lebih dalam ke dalam daftar, dan ListOutdent() untuk memindahkannya satu tingkat lebih dangkal — operasi yang sama yang dilakukan Word untuk Tab dan Shift+Tab di awal paragraf daftar. Lebih pilih metode ini daripada mengatur ListLevelNumber secara langsung, karena mereka menjaga format daftar paragraf tetap konsisten secara internal. Panggil RemoveNumbers() untuk menghapus format daftar dari paragraf sepenuhnya.


Langkah 4: Sesuaikan Format Penomoran Tingkat Daftar

Capailah tingkat tertentu melalui List.ListLevels (sebuah ListLevelCollection), lalu atur ListLevel.NumberStyle (nilai NumberStyle seperti Arabic, UppercaseRoman, LowercaseLetter, atau Bullet) dan NumberFormat — string format yang menggabungkan nomor dengan teks literal seperti titik atau kurung — secara bersamaan, karena pasangan yang tidak cocok menghasilkan rendering yang tidak terduga. StartAt menetapkan nomor awal tingkat, dan RestartAfterLevel mengontrol tingkat yang lebih tinggi mana yang inkremenannya memulai kembali penghitung tingkat ini — atur secara eksplisit pada daftar bersarang daripada mengandalkan perilaku restart default. Alignment (Left, Center, Right) dan TrailingCharacter (Tab, Space, Nothing) mengontrol posisi label dan pemisah antara label dan teks paragraf, bersama dengan TabPosition, NumberPosition, dan TextPosition untuk tata letak yang tepat. IsLegal memaksa penomoran gaya hukum (selalu Arab) terlepas dari NumberStyle.


Langkah 5: Tambahkan Bullet Gambar ke Tingkat Daftar

Panggil ListLevel.CreatePictureBullet() pada tingkat target untuk membuat definisi bullet gambar, lalu berikan ImageData bullet sebelum menghapus format bullet teks yang ada pada tingkat yang sama. Panggil DeletePictureBullet() untuk menghapus bullet gambar dan kembali ke format bullet berbasis teks.


Langkah 6: Periksa Label yang Dihasilkan dari Item Daftar

ListLabel menjelaskan label yang sebenarnya dirender untuk satu instance item daftar, yang dicapai dari format paragraf item. LabelString adalah teks literal yang ditampilkan Word — seperti “3.” atau “•” — LabelValue adalah nilai numerik yang mendasari, dan Font adalah format label itu sendiri, terlepas dari format teks paragraf. Untuk menghitung nilai label pada posisi sewenang-wenang dalam urutan tanpa merender seluruh daftar, panggil ListLevel.GetEffectiveValue(index, numberStyle, customNumberStyleFormat).


Masalah Umum dan Solusi

Dua paragraf yang harus diberi nomor secara independen melanjutkan urutan yang sama. Kedua paragraf’ ListFormat.List merujuk pada yang sama berbagi List objek. Berikan grup kedua daftar miliknya sendiri via ListCollection.AddCopy(srcList) daripada menggunakan kembali yang sama List.

String format penomoran khusus tidak ditampilkan seperti yang diharapkan. ListLevel.NumberFormat tidak cocok dengan pola yang diharapkan untuk level’s NumberStyle. Verifikasi NumberFormat and NumberStyle diatur secara konsisten untuk level yang sedang diedit.

Indentasi daftar terlihat salah setelah mengubah level secara programatis. ListLevelNumber diatur secara langsung tanpa memperbarui properti posisi terkait. Gunakan ListFormat.ListIndent()/ListOutdent() alih-alih mengatur ListLevelNumber secara langsung.

Bullet gambar tidak muncul pada level. Tidak ada bullet gambar yang dibuat untuk level tersebut, atau pemformatan bullet-teks default masih aktif. Panggil ListLevel.CreatePictureBullet() dan sediakan data gambar sebelum menghapus pemformatan bullet teks.

Daftar yang terhubung gaya tidak merespon perubahan pemformatan langsung. Check List.IsListStyleReference — pemformatan daftar yang merujuk gaya dikendalikan oleh yang terhubung Style (melalui List.Style), bukan dengan mengedit daftar secara langsung. Bandingkan dengan IsListStyleDefinition untuk membedakan daftar yang mendefinisikan pemformatannya sendiri.


Pertanyaan yang Sering Diajukan

Apa perbedaan antara List dan ListFormat?

List adalah definisi penomoran atau bullet yang dapat digunakan kembali dan dibagikan di seluruh paragraf. ListFormat bersifat per-paragraf — ia menunjuk pada List yang digunakan paragraf tertentu dan pada tingkat mana, melalui ListFormat.List dan ListLevelNumber.

Bagaimana saya memeriksa apakah sebuah paragraf sudah menjadi bagian dari daftar?

Baca ListFormat.IsListItem tentang format paragraf. Jika true, ListFormat.List, dan ListLevelNumber mengidentifikasi daftar dan tingkat mana paragraf tersebut termasuk.

Bagaimana saya membuat daftar baru memulai penomoran dari 1 secara independen dari daftar yang ada?

Gunakan ListCollection.AddCopy(srcList) untuk membuat salinan independen dari definisi daftar, lalu terapkan salinan tersebut ke paragraf baru alih-alih menggunakan kembali List yang asli, yang akan melanjutkan penghitung yang sama.

Bagaimana saya membuat daftar bullet atau bernomor dari awal?

Gunakan ListFormat.ApplyBulletDefault() atau ApplyNumberDefault() untuk format default Word, atau ListCollection.Add(listTemplate) dengan nilai ListTemplate untuk memulai dari format yang telah ditentukan dan menyesuaikan List.ListLevels yang dihasilkan dari sana.

Bagaimana saya mendapatkan format angka seperti “1)” alih-alih “1.”?

Setel ListLevel.NumberFormat pada tingkat yang relevan ke string format yang diinginkan, bersama dengan NumberStyle untuk gaya angka itu sendiri.


Lihat Juga

 Bahasa Indonesia