فیلدهای شمارهگذاری (AUTONUM، PAGE، SEQ، و موارد دیگر)
فیلدهای شمارهگذاری (AUTONUM, PAGE, SEQ، و بیشتر)
این راهنما نشان میدهد چگونه با فیلدهای شمارهگذاری خودکار ورد کار کنیم در Aspose.Words FOSS برای .NET، و اینکه چگونه با شمارهگذاری مبتنی بر فهرست متفاوت هستند. کار با فهرستها covers List, ListFormat، و ListLevel – مدل شیء پشت پاراگرافهای فهرست شمارهدار و بولتدار ورد. ورد همچنین یک خانواده جداگانه از شمارهگذاری دارد fields که عددی را در مکان فیلد در متن محاسبه میکنند، نه از طریق قالببندی فهرست پاراگراف: شمارهگذاری خودکار قانونی و طرحوارهای، شمارندههای صفحه و بخش، شمارهگذاری مرتبط با فهرست، و توالیهای نامگذاریشده. این مدل هر کدام را به عنوان یک Field زیرکلاس در the Aspose.Words.Fields namespace، بهعلاوه NumberStyle enum مشترک بین سطوح فهرست، پاورقیها و یادداشتهای انتهایی، و شمارههای صفحه برای انتخاب نحوهٔ نمایش یک عدد.
فیلدهای شمارهگذاری خودکار: AUTONUM, AUTONUMLGL, AUTONUMOUT
FieldAutoNum پیادهسازی میکند AUTONUM field (شمارهگذاری متوالی ساده) و در دسترس میگذارد SeparatorCharacter. FieldAutoNumLgl implements AUTONUMLGL (legal/outline-style numbering)، افزودن RemoveTrailingPeriod در کنار خود SeparatorCharacter. FieldAutoNumOut implements AUTONUMOUT (outline numbering) و هیچ ویژگی خاصی جز پایهاش ندارد Field اعضایی که در آن توصیف شدهاند کار با فیلدها.
شمارهگذاری پیوندی فهرست با FieldListNum
FieldListNum پیادهسازی میکند فیلد LISTNUM: ListName نام تعریف انتزاعی شمارهگذاری را که باید استفاده شود تعیین میکند، و HasListName گزارش میدهد آیا کد فیلد واقعاً یک نام فراهم میکند یا نه. ListLevel سطح فهرست پیشفرضی را که فیلد در آن شمارهگذاری میکند، بازنویسی میکند، و StartingNumber مقدار شروع شمارهگذاری فیلد را تنظیم میکند.
شمارندههای صفحه و بخش: FieldPage, FieldSection, FieldSectionPages
FieldPage پیادهسازی میکند PAGE فیلد و FieldSectionPages implements SECTIONPAGES. هر دو به طرح صفحه محاسبهشده برای تولید نتیجه وابستهاند؛ همانند NUMPAGES فیلد توصیفشده در کار با فیلدها، مقادیر فیلدهای وابسته به طرحبندی در این نسخه محاسبه نمیشوند زیرا شامل موتور صفحه-طرح/رندر نیست، بنابراین این فیلدها به یک جاینگهدار تبدیل میشوند 0. FieldSection implements SECTION، شماره بخش فعلی سند را برمیگرداند – این مقدار به صفحهبندی وابسته نیست و تحت تأثیر آن محدودیت قرار نمیگیرد.
دنبالههای نامگذاری شده با FieldSeq
FieldSeq فیلد SEQ را برای دنبالههای نامگذاریشده و بهصورت مستقل شمارهگذاریشده (مانند شکلها یا جدولها) پیادهسازی میکند: SequenceIdentifier نام دنباله را تعیین میکند، و BookmarkName بهصورت اختیاری فیلد را به یک مورد دیگر در سند اشاره میدهد بهجای مکان خود فیلد. InsertNextNumber عدد بعدی دنباله را وارد میکند بدون اینکه مقدار موقعیت جاری را نمایش دهد، و ResetNumber / ResetHeadingLevel شمارنده دنباله را به عدد خاصی تنظیم یا آن را در سطح سرعنوان خاصی دوباره شروع میکنند.
FieldRevNum
FieldRevNum فیلد REVNUM را پیادهسازی میکند و علاوه بر اعضای پایه Field، هیچ خصوصیت خاصی ندارد.
قالببندی اعداد با NumberStyle
NumberStyle شمارشگری (enum) استفادهشده در سطوح فهرست، شمارهگذاری پاورقی/پایاننویس و شمارههای صفحه است تا نحوه رندر عدد را انتخاب کند. سبکهای رایج شامل Arabic، UppercaseRoman / LowercaseRoman، UppercaseLetter / LowercaseLetter، Ordinal و OrdinalText هستند، همراه با مجموعهای بزرگ از سبکهای مخصوص به تنظیمات محلی (Kanji، Hangul، Hanja، ThaiLetter، HindiLetter1 و بسیاری دیگر) بهعلاوه Bullet، LeadingZero، None و Custom برای قالبی که فراخواننده فراهم میکند.
نکات و بهترین روشها
- از
FieldListNumاستفاده کنید وقتی یک عدد باید به تعریف موجود فهرست بر اساس نام ارجاع دهد؛ برای شمارهگذاری که بهListخاصی مرتبط نیست، ازFieldAutoNum/FieldAutoNumLgl/FieldAutoNumOutاستفاده کنید. - به یاد داشته باشید که
FieldPageوFieldSectionPagesبه طرح وابسته هستند، همانطور کهNUMPAGESنیز است – بهResultآنها برای بازتاب تعداد واقعی صفحات محاسبهشده در این نسخه اعتماد نکنید. - از
FieldSeq.BookmarkNameاستفاده کنید وقتی یک فیلد SEQ نیاز دارد به عددی که در جای دیگری از سند تعریف شده است ارجاع دهد به جای اینکه شمارندهٔ خود را در محل فیلد افزایش دهد. - هنگامی که یک دنبالهٔ شمارهدار (مانند شمارههای شکل) باید در هر فصل یا عنوان بخش جدید از نو شروع شود،
FieldSeq.ResetHeadingLevelرا تنظیم کنید.
مشکلات رایج
| مشکل | دلیل | رفع |
|---|---|---|
FieldPage یا FieldSectionPages همیشه 0 را نشان میدهد | این فیلدها به طرحبندی صفحه محاسبهشده وابستهاند، که بخشی از این نسخه نیست | رفتار مورد انتظار – از نسخه تجاری استفاده کنید Aspose.Words برای .NET اگر شمارش صفحه محاسبهشده مورد نیاز باشد |
FieldListNum از قالببندی لیست مورد انتظار استفاده نمیکند | ListName با تعریف شمارهگذاری انتزاعی موجود در سند مطابقت ندارد | نام دقیق لیست را تأیید کنید، یا HasListName را بررسی کنید تا ببینید آیا کد فیلد بهطور کلی یکی فراهم میکند یا نه |
اعداد FieldSeq در مکان مورد انتظار دوباره شروع نمیشوند | ResetNumber یا ResetHeadingLevel در فیلدی که باید توالی را دوباره شروع کند تنظیم نشده است | ویژگی بازنشانی مناسب را روی آن نمونه FieldSeq تنظیم کنید |
FAQ
تفاوت بین شمارهگذاری فهرست و این فیلدهای شمارهگذاری چیست؟
شمارهگذاری فهرست (List, ListFormat, ListLevel، پوشش داده شده در کار با فهرستها) کل پاراگرافها را بهعنوان موارد فهرست قالببندی میکند. فیلدهای این صفحه عددی را در نقطهای خاص از متن محاسبه میکنند — برای توالیها، شمارندههای صفحه/بخش، یا شمارهگذاری خودکار به سبک قانونی — مستقل از قالببندی فهرست پاراگراف.
چرا فیلد PAGE همیشه به 0 ارزیابی میشود؟
FieldPage به طرح صفحه محاسبهشده وابسته است، و این نسخه شامل موتور صفحه-طرح/رندرینگ نمیشود – به همین دلیل است که NUMPAGES به مقدار جایدار ارزیابی میشود.
چگونه یک دنباله نامدار و بهصورت مستقل شمارهگذاریشده مانند «Figure 1»، «Figure 2» ایجاد کنم؟
از FieldSeq همراه با یک SequenceIdentifier ثابت (مانند "Figure") در تمام نمونههای فیلد استفاده کنید؛ هر کدام عدد بعدی را در آن دنباله نمایش میدهند.
چگونه میتوانم کنترل کنم که عدد با کدام سبک عددی یا حروفی رندر شود؟
از enum NumberStyle استفاده کنید – مقادیری مانند Arabic، UppercaseRoman، LowercaseLetter و OrdinalText سبک رندر را انتخاب میکنند، بههمراه Bullet، None و Custom برای قالبهای غیر عددی یا قالبهای ارائهشده توسط فراخواننده.
API Reference خلاصه
| کلاس / شمارش | توضیح |
|---|---|
FieldAutoNum | AUTONUM فیلد؛ SeparatorCharacter |
FieldAutoNumLgl | AUTONUMLGL فیلد؛ RemoveTrailingPeriod، SeparatorCharacter |
FieldAutoNumOut | AUTONUMOUT فیلد |
FieldListNum | LISTNUM فیلد; ListName, HasListName, ListLevel, StartingNumber |
FieldPage | PAGE فیلد (وابسته به طرحبندی؛ در این نسخه به 0 ارزیابی میشود) |
FieldSection | SECTION فیلد |
FieldSectionPages | فیلد SECTIONPAGES (وابسته به قالب؛ در این نسخه به 0 ارزیابی میشود) |
FieldSeq | فیلد SEQ; SequenceIdentifier, BookmarkName, InsertNextNumber, ResetNumber, ResetHeadingLevel |
FieldRevNum | REVNUM فیلد |
NumberStyle | Enum از سبکهای نمایش عدد که توسط سطوح فهرست، پاورقی/پانویس و شمارههای صفحه استفاده میشود |