Trường Đánh số (AUTONUM, PAGE, SEQ, và Các trường khác)

Trường Đánh số (AUTONUM, PAGE, SEQ, và Các trường khác)

Trường Đánh Số (AUTONUM, PAGE, SEQ, và Các Trường Khác)

Hướng dẫn này chỉ ra cách làm việc với các trường đánh số tự động của Word trong Aspose.Words FOSS cho .NET, và cách chúng khác với việc đánh số dựa trên danh sách. Làm việc với Danh sách covers List, ListFormat, và ListLevel – mô hình đối tượng phía sau các đoạn văn danh sách có số và có dấu đầu dòng của Word. Word cũng có một họ riêng của việc đánh số fields được tính toán số tại vị trí của trường trong văn bản, thay vì thông qua định dạng danh sách đoạn văn: đánh số tự động pháp lý và đề cương, bộ đếm trang và phần, đánh số liên kết danh sách, và các chuỗi có tên. Nó mô hình hoá mỗi cái như một Field lớp con trong the Aspose.Words.Fields không gian tên, cộng với NumberStyle enum được chia sẻ bởi các cấp độ danh sách, footnotes và endnotes, và số trang để lựa chọn cách một số được hiển thị.


Các Trường Đánh Số Tự Động: AUTONUM, AUTONUMLGL, AUTONUMOUT

FieldAutoNum thực hiện AUTONUM trường (simple sequential numbering) và công khai SeparatorCharacter. FieldAutoNumLgl implements AUTONUMLGL (legal/outline-style numbering), thêm RemoveTrailingPeriod cùng với SeparatorCharacter. FieldAutoNumOut implements AUTONUMOUT (outline numbering) và không có thuộc tính nào của riêng nó ngoài cơ bản Field các thành viên được mô tả trong Làm việc với các Trường.


Đánh Số Liên Kết Danh Sách với FieldListNum

FieldListNum thực hiện trường LISTNUM: ListName đặt tên cho định nghĩa đánh số trừu tượng cần dùng, và HasListName báo cáo liệu mã của trường có thực sự cung cấp một tên hay không. ListLevel ghi đè cấp độ danh sách mặc định mà trường đánh số, và StartingNumber đặt giá trị bắt đầu cho việc đánh số của trường.


Bộ Đếm Trang và Phần: FieldPage, FieldSection, FieldSectionPages

FieldPage thực hiện the PAGE trường và FieldSectionPages implements SECTIONPAGES. Cả hai đều phụ thuộc vào bố cục trang đã tính toán để tạo ra kết quả; giống như the NUMPAGES trường được mô tả trong Làm việc với các Trường, các giá trị trường phụ thuộc vào bố cục không được tính toán trong phiên bản này vì nó không bao gồm công cụ bố cục/trình diễn trang, vì vậy các trường này sẽ đánh giá thành một trình giữ chỗ 0. FieldSection implements SECTION, trả về số mục hiện tại của tài liệu – nó không phụ thuộc vào việc phân trang và không bị ảnh hưởng bởi giới hạn đó.


Dãy có tên với FieldSeq

FieldSeq triển khai trường SEQ cho các chuỗi có tên, đánh số độc lập (chẳng hạn hình hoặc bảng): SequenceIdentifier đặt tên cho chuỗi, và BookmarkName tùy chọn chỉ tới một mục khác trong tài liệu thay vì vị trí của trường. InsertNextNumber chèn số kế tiếp trong chuỗi mà không hiển thị giá trị cho vị trí hiện tại, và ResetNumber / ResetHeadingLevel đặt lại bộ đếm của chuỗi về một số cụ thể, hoặc khởi động lại ở mức tiêu đề nhất định.


FieldRevNum

FieldRevNum triển khai trường REVNUM, và không có thuộc tính nào riêng ngoài các thành viên cơ bản Field.


Định dạng số với NumberStyle

NumberStyle là enum được dùng trên các mức độ danh sách, đánh số chú thích/chú giải, và số trang để chọn cách hiển thị một số. Các kiểu thường gặp bao gồm Arabic, UppercaseRoman / LowercaseRoman, UppercaseLetter / LowercaseLetter, Ordinal, và OrdinalText, cùng với một tập lớn các kiểu riêng theo miền địa phương (Kanji, Hangul, Hanja, ThaiLetter, HindiLetter1, và nhiều thứ khác) cộng thêm Bullet, LeadingZero, None, và Custom cho định dạng do người gọi cung cấp.


Mẹo và Thực hành Tốt

  • Sử dụng FieldListNum khi một số cần tham chiếu đến định nghĩa danh sách hiện có theo tên; dùng FieldAutoNum/FieldAutoNumLgl/FieldAutoNumOut cho việc đánh số không gắn liền với một List cụ thể.
  • Hãy nhớ rằng FieldPage và FieldSectionPages phụ thuộc vào bố cục, giống như NUMPAGES — không nên dựa vào Result của chúng để phản ánh số trang thực tế được tính trong ấn bản này.
  • Dùng FieldSeq.BookmarkName khi trường SEQ cần tham chiếu tới một số được định nghĩa ở nơi khác trong tài liệu thay vì tăng bộ đếm riêng tại vị trí của trường.
  • Đặt FieldSeq.ResetHeadingLevel khi một chuỗi số (ví dụ như số hình) cần bắt đầu lại ở mỗi chương hoặc tiêu đề phần mới.

Các vấn đề thường gặp

Vấn đềNguyên nhânKhắc phục
FieldPage hoặc FieldSectionPages luôn hiển thị 0Các trường này dựa trên bố cục trang đã tính toán, nhưng không nằm trong phiên bản nàyHành vi mong đợi – sử dụng phiên bản thương mại Aspose.Words cho .NET nếu cần đếm số trang đã tính toán
FieldListNum không sử dụng định dạng danh sách mong đợiListName không khớp với định nghĩa đánh số trừu tượng có trong tài liệuXác nhận tên danh sách chính xác, hoặc kiểm tra HasListName để xem mã trường có cung cấp tên nào không
Các số FieldSeq không khởi động lại ở vị trí mong đợiResetNumber hoặc ResetHeadingLevel chưa được đặt trên trường cần khởi động lại chuỗiĐặt thuộc tính reset phù hợp trên thực thể FieldSeq đó

FAQ

Sự khác nhau giữa việc đánh số danh sách và các trường đánh số này là gì?

Đánh số danh sách (List, ListFormat, ListLevel, được bao phủ trong Làm việc với Danh sách) định dạng toàn bộ đoạn văn thành các mục danh sách. Các trường trên trang này tính một số tại một điểm cụ thể trong văn bản – cho các chuỗi, bộ đếm trang/phần, hoặc đánh số tự động kiểu pháp lý – độc lập với định dạng danh sách của đoạn văn.

Tại sao trường PAGE luôn đánh giá thành 0?

FieldPage dựa trên bố cục trang đã tính toán, và phiên bản này không bao gồm công cụ bố cục/trình diễn trang — cùng lý do NUMPAGES trả về giá trị placeholder.

Làm thế nào để tạo một chuỗi có tên, đánh số độc lập như “Figure 1”, “Figure 2”?

Sử dụng FieldSeq với một SequenceIdentifier nhất quán (ví dụ "Figure") cho mọi thể hiện của trường; mỗi thể hiện sẽ hiển thị số tiếp theo trong chuỗi đó.

Làm sao tôi có thể kiểm soát phong cách chữ số hoặc chữ cái mà một số được hiển thị?

Sử dụng enum NumberStyle — các giá trị như Arabic, UppercaseRoman, LowercaseLetter, và OrdinalText chọn kiểu hiển thị, cùng với Bullet, None, và Custom cho các định dạng không phải số hoặc do người gọi cung cấp.


Tóm tắt API Reference

Lớp / EnumMô tả
FieldAutoNumAUTONUM trường; SeparatorCharacter
FieldAutoNumLglAUTONUMLGL trường; RemoveTrailingPeriod, SeparatorCharacter
FieldAutoNumOutAUTONUMOUT trường
FieldListNumtrường LISTNUM; ListName, HasListName, ListLevel, StartingNumber
FieldPagetrường PAGE (phụ thuộc vào bố cục; đánh giá thành 0 trong phiên bản này)
FieldSectiontrường SECTION
FieldSectionPagestrường SECTIONPAGES (phụ thuộc vào bố cục; đánh giá thành 0 trong phiên bản này)
FieldSeqtrường SEQ; SequenceIdentifier, BookmarkName, InsertNextNumber, ResetNumber, ResetHeadingLevel
FieldRevNumtrường REVNUM
NumberStyleEnum các kiểu hiển thị số được sử dụng cho các cấp độ danh sách, chú thích/chú thích cuối, và số trang

Xem thêm

 Tiếng Việt