Bidang Penomoran (AUTONUM, PAGE, SEQ, dan Lainnya)
Bidang Penomoran (AUTONUM, PAGE, SEQ, dan Lainnya)
Panduan ini menunjukkan cara bekerja dengan bidang penomoran otomatis Word di Aspose.Words FOSS untuk .NET, dan bagaimana mereka berbeda dari penomoran berbasis daftar. Bekerja dengan Daftar covers List, ListFormat, dan ListLevel – model objek di balik paragraf daftar bernomor dan berpoin Word. Word juga memiliki keluarga penomoran terpisah fields yang menghitung nomor pada lokasi bidang dalam teks, bukan melalui pemformatan daftar paragraf: penomoran otomatis legal dan outline, penghitung halaman dan bagian, penomoran terhubung-daftar, dan urutan bernama. Itu memodelkan masing-masing sebagai sebuah Field subkelas dalam the Aspose.Words.Fields namespace, plus yang NumberStyle enum yang dibagikan oleh tingkat daftar, catatan kaki dan catatan akhir, serta nomor halaman untuk memilih bagaimana sebuah angka ditampilkan.
Bidang Penomoran Otomatis: AUTONUM, AUTONUMLGL, AUTONUMOUT
FieldAutoNum mengimplementasikan AUTONUM field (penomoran berurutan sederhana) dan mengekspos SeparatorCharacter. FieldAutoNumLgl implements AUTONUMLGL (penomoran gaya legal/outline), menambahkan RemoveTrailingPeriod bersamaan dengan miliknya sendiri SeparatorCharacter. FieldAutoNumOut implements AUTONUMOUT (penomoran outline) dan tidak memiliki properti apa pun selain basis Field anggota yang dijelaskan dalam Bekerja dengan Fields.
Penomoran Terhubung Daftar dengan FieldListNum
FieldListNum mengimplementasikan bidang LISTNUM: ListName memberi nama definisi penomoran abstrak yang akan digunakan, dan HasListName melaporkan apakah kode bidang sebenarnya menyediakan nama. ListLevel mengganti level daftar default tempat bidang menomori, dan StartingNumber menetapkan nilai awal penomoran bidang.
Penghitung Halaman dan Seksi: FieldPage, FieldSection, FieldSectionPages
FieldPage mengimplementasikan PAGE field dan FieldSectionPages implements SECTIONPAGES. Keduanya bergantung pada tata letak halaman yang dihitung untuk menghasilkan hasil; seperti halnya NUMPAGES field yang dijelaskan dalam Bekerja dengan Field, nilai field yang bergantung pada tata letak tidak dihitung dalam edisi ini karena tidak menyertakan mesin tata letak/rendering halaman, sehingga field ini mengevaluasi menjadi placeholder 0. FieldSection implements SECTION, mengembalikan nomor bagian dokumen saat ini – tidak bergantung pada paginasi dan tidak terpengaruh oleh batasan tersebut.
Urutan Bernama dengan FieldSeq
FieldSeq mengimplementasikan bidang SEQ untuk urutan yang dinamai dan bernomor secara independen (seperti gambar atau tabel): SequenceIdentifier memberi nama pada urutan, dan BookmarkName secara opsional mengarahkan bidang ke item lain di dalam dokumen alih-alih lokasi bidang itu sendiri. InsertNextNumber menyisipkan nomor berikutnya dalam urutan tanpa menampilkan nilai untuk posisi saat ini, dan ResetNumber / ResetHeadingLevel mengatur ulang penghitung urutan ke nomor tertentu, atau memulainya kembali pada tingkat heading tertentu.
FieldRevNum
FieldRevNum mengimplementasikan bidang REVNUM, dan tidak memiliki properti sendiri selain anggota dasar Field.
Memformat Angka dengan NumberStyle
NumberStyle adalah enum yang digunakan di seluruh tingkat daftar, penomoran catatan kaki/akhir, dan nomor halaman untuk memilih cara sebuah angka ditampilkan. Gaya umum meliputi Arabic, UppercaseRoman / LowercaseRoman, UppercaseLetter / LowercaseLetter, Ordinal, dan OrdinalText, bersama dengan serangkaian besar gaya spesifik lokal (Kanji, Hangul, Hanja, ThaiLetter, HindiLetter1, dan banyak lainnya) serta Bullet, LeadingZero, None, dan Custom untuk format yang disediakan pemanggil.
Tips dan Praktik Terbaik
- Gunakan
FieldListNumketika sebuah angka perlu merujuk pada definisi daftar yang sudah ada dengan nama; gunakanFieldAutoNum/FieldAutoNumLgl/FieldAutoNumOutuntuk penomoran yang tidak terikat padaListtertentu. - Ingat bahwa
FieldPagedanFieldSectionPagesbergantung pada tata letak, sama sepertiNUMPAGES— jangan mengandalkanResultmereka mencerminkan jumlah halaman yang dihitung secara nyata dalam edisi ini. - Gunakan
FieldSeq.BookmarkNameketika bidang SEQ perlu merujuk pada angka yang didefinisikan di tempat lain dalam dokumen, bukan meningkatkan penghitungnya sendiri pada lokasi bidang tersebut. - Atur
FieldSeq.ResetHeadingLevelketika urutan bernomor (misalnya nomor gambar) harus dimulai kembali pada setiap bab atau judul seksi baru.
Masalah Umum
| Masalah | Penyebab | Perbaikan |
|---|---|---|
FieldPage atau FieldSectionPages selalu menampilkan 0 | Bidang-bidang ini bergantung pada tata letak halaman yang dihitung, yang bukan bagian dari edisi ini | Perilaku yang diharapkan – gunakan versi komersial Aspose.Words untuk .NET jika jumlah halaman yang dihitung diperlukan |
FieldListNum tidak menggunakan format daftar yang diharapkan | ListName tidak cocok dengan definisi penomoran abstrak yang ada dalam dokumen | Konfirmasikan nama daftar yang tepat, atau periksa HasListName untuk melihat apakah kode bidang menyediakan satu sama sekali |
Nomor FieldSeq tidak dimulai kembali di tempat yang diharapkan | ResetNumber atau ResetHeadingLevel tidak disetel pada field yang seharusnya memulai ulang urutan | Setel properti reset yang tepat pada instance FieldSeq tersebut |
FAQ
Apa perbedaan antara penomoran daftar dan bidang penomoran ini?
Penomoran daftar (List, ListFormat, ListLevel, tercakup dalam Bekerja dengan Daftar) memformat seluruh paragraf sebagai item daftar. Field pada halaman ini menghitung sebuah nomor pada titik tertentu dalam teks – untuk urutan, penghitung halaman/bagian, atau penomoran otomatis gaya hukum – terlepas dari format daftar paragraf.
Mengapa bidang PAGE selalu dievaluasi menjadi 0?
FieldPage tergantung pada tata letak halaman yang dihitung, dan edisi ini tidak menyertakan mesin page-layout/rendering – alasan yang sama NUMPAGES dievaluasi menjadi nilai placeholder.
Bagaimana cara membuat urutan bernama dengan penomoran independen seperti “Figure 1”, “Figure 2”?
Gunakan FieldSeq dengan SequenceIdentifier yang konsisten (seperti "Figure") di setiap instance bidang; masing-masing menampilkan nomor berikutnya dalam urutan tersebut.
Bagaimana cara mengontrol gaya angka atau huruf yang digunakan saat nomor ditampilkan?
Gunakan enum NumberStyle – nilai seperti Arabic, UppercaseRoman, LowercaseLetter, dan OrdinalText memilih gaya rendering, bersama dengan Bullet, None, dan Custom untuk format non-numerik atau format yang disediakan pemanggil.
API Reference Ringkasan
| Kelas / Enum | Deskripsi |
|---|---|
FieldAutoNum | AUTONUM field; SeparatorCharacter |
FieldAutoNumLgl | AUTONUMLGL field; RemoveTrailingPeriod, SeparatorCharacter |
FieldAutoNumOut | AUTONUMOUT bidang |
FieldListNum | LISTNUM bidang; ListName, HasListName, ListLevel, StartingNumber |
FieldPage | PAGE bidang (tergantung tata letak; dievaluasi menjadi 0 dalam edisi ini) |
FieldSection | SECTION bidang |
FieldSectionPages | SECTIONPAGES field (tergantung tata letak; menghasilkan 0 pada edisi ini) |
FieldSeq | SEQ field; SequenceIdentifier, BookmarkName, InsertNextNumber, ResetNumber, ResetHeadingLevel |
FieldRevNum | REVNUM field |
NumberStyle | Enum gaya penampilan nomor yang digunakan oleh tingkat daftar, catatan kaki/catatan akhir, dan nomor halaman |