---
title: "کار با جدول محتویات در Java"
---

اغلب شما با اسناد حاوی جدول محتویات (TOC) کار خواهید کرد. با استفاده از Aspose.Words می توانید جدول محتویات خود را وارد کنید یا جدول محتویات موجود را با استفاده از چند خط کد به طور کامل در سند بازسازی کنید.

این مقاله نحوه کار با جدول محتویات را شرح می دهد و نشان می دهد:

- چگونه یک نام تجاری جدید TOC را وارد کنیم.
- به روز رسانی جدید یا موجود TOCs در سند.
- سوئیچ ها را برای کنترل قالب بندی و ساختار کلی TOC مشخص کنید.
- چگونه سبک ها و ظاهر جدول محتویات را تغییر دهیم.
- چگونه یک فیلد کامل `TOC` را همراه با تمام ورودی های سند حذف کنیم.

## جدول محتویات را به صورت برنامه ریزی شده وارد کنید

شما می توانید یک فیلد `TOC` (جدول محتویات) را در سند در موقعیت فعلی با فراخوانی روش [InsertTableOfContents](https://reference.aspose.com/words/java/com.aspose.words/documentbuilder/#insertTableOfContents-java.lang.String) وارد کنید.

جدول محتویات یک سند ورد را می توان به روش های مختلفی ساخت و با استفاده از گزینه های مختلف فرمت کرد. فیلد سوئیچ هایی که به روش منتقل می کنید، نحوه ساخت و نمایش جدول را در سند شما کنترل می کند.

سوئیچ های پیش فرض که در `TOC` وارد شده در Microsoft Word استفاده می شوند **"\o "1-3 \h \z \u"** هستند. توضیحات این سوئیچ ها و همچنین لیستی از سوئیچ های پشتیبانی شده را می توان بعدا در مقاله یافت. شما می توانید از این راهنما برای به دست آوردن سوئیچ های صحیح استفاده کنید یا اگر قبلا یک سند حاوی `TOC` مشابه که می خواهید دارید می توانید کد های فیلد (*ALT+F9*) را نشان دهید و سوئیچ ها را مستقیما از فیلد کپی کنید.

مثال کد زیر نشان می دهد که چگونه یک فیلد جدول محتویات را در یک سند وارد کنید:

{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e" "Examples-src-main-java-com-aspose-words-examples-programming_documents-tableofcontents-InsertATableOfContentsField-InsertATableOfContentsField.java" >}}

مثال کد زیر نشان می دهد که چگونه یک جدول محتویات (TOC) را با استفاده از سبک های عنوان به عنوان ورودی در یک سند قرار دهید:

{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e" "Examples-src-main-java-com-aspose-words-examples-programming_documents-tableofcontents-InsertATableOfContentsUsingHeadingStyles-InsertATableOfContentsUsingHeadingStyles.java" >}}

کد نشان می دهد که جدول جدید محتویات در یک سند خالی قرار داده شده است. سپس از کلاس [DocumentBuilder](https://reference.aspose.com/words/java/com.aspose.words/documentbuilder/) برای وارد کردن برخی از قالب بندی محتوای نمونه با سبک های عنوان مناسب استفاده می شود که برای نشان دادن محتوای موجود در TOC استفاده می شود. خطوط بعدی سپس با به روز رسانی زمینه ها و طرح صفحه سند، `TOC` را پر می کنند.

![insert-table-of-contents-field-aspose-words-java](/words/java/working-with-table-of-contents/how-to-insert-and-work-with-the-table-of-contents-field-1.png)

```

بدون روش های مورد استفاده در مثال، وقتی سند خروجی را باز می کنید، فیلد `TOC` را پیدا می کنید، اما بدون محتوای قابل مشاهده. این به این دلیل است که فیلد `TOC` وارد شده است اما هنوز پر نشده است تا زمانی که در سند به روز شود. اطلاعات بیشتر در مورد این موضوع در بخش بعدی مورد بحث قرار می گیرد.

```

## به روز رسانی جدول محتویات

Aspose.Words به شما اجازه می دهد تا یک `TOC` را با تنها چند خط کد به طور کامل به روز کنید. این کار را می توان برای پر کردن یک `TOC` تازه وارد شده یا به روز رسانی یک `TOC` موجود پس از ایجاد تغییرات در سند انجام داد.

دو روش زیر باید برای به روز رسانی فیلد های `TOC` در سند استفاده شود:

1. [Document.updateFields()](https://reference.aspose.com/words/java/com.aspose.words/Document#updateFields())
1. [Document.updatePageLayout()](https://reference.aspose.com/words/java/com.aspose.words/Document#updatePageLayout())

لطفا توجه داشته باشید که این دو روش به روز رسانی باید به این ترتیب فراخوانده شوند. اگر معکوس شود جدول محتویات پر خواهد شد اما هیچ شماره صفحه ای نمایش داده نخواهد شد. هر تعداد TOCs مختلف را می توان به روز کرد. این روش ها به طور خودکار تمام TOCs موجود در سند را به روز می کنند.

مثال کد زیر نشان می دهد که چگونه با فراخوانی به روزرسانی های فیلد، فیلدهای `TOC` را در سند به طور کامل بازسازی کنیم:

{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e" "Examples-src-main-java-com-aspose-words-examples-programming_documents-tableofcontents-InsertATableOfContentsField-UpdateTableOfContents.java" >}}

اولین تماس با [Document.updateFields()](https://reference.aspose.com/words/java/com.aspose.words/document/#updateFields) `TOC` را ایجاد می کند، تمام ورودی های متن پر شده اند و `TOC` تقریبا کامل به نظر می رسد. تنها چیزی که از دست رفته شماره صفحه است که در حال حاضر با "?" نمایش داده می شود.

تماس دوم به [Document.updatePageLayout()](https://reference.aspose.com/words/java/com.aspose.words/document/#updatePageLayout) طرح سند را در حافظه ایجاد می کند. این کار باید برای جمع آوری شماره صفحات ورودی ها انجام شود. شماره صفحه صحیح محاسبه شده از این تماس سپس در TOC وارد می شود.

## استفاده از سوئیچ برای کنترل جدول محتویات رفتار

مانند هر فیلد دیگر، فیلد `TOC` می تواند سوئیچ های تعریف شده در کد فیلد را که کنترل می کند که چگونه جدول محتویات ساخته شده است، بپذیرد. برخی از سوئیچ ها برای کنترل اینکه کدام ورودی ها شامل می شوند و در چه سطحی استفاده می شوند در حالی که برخی دیگر برای کنترل ظاهر TOC استفاده می شوند. سوئیچ ها را می توان با هم ترکیب کرد تا یک جدول پیچیده از محتویات تولید شود.

![ccontrol-table-of-contents-field-aspose-words-java](/words/java/working-with-table-of-contents/how-to-insert-and-work-with-the-table-of-contents-field-2.png)

به طور پیش فرض، این سوئیچ های بالا هنگام قرار دادن یک `TOC` پیش فرض در سند گنجانده شده اند. A `TOC` بدون سوئیچ شامل محتوای سبک های عنوان داخلی (به عنوان اگر سوئیچ &#92;O تنظیم شده باشد) خواهد بود.

سوئیچ های موجود `TOC` که توسط Aspose.Words پشتیبانی می شوند در زیر ذکر شده و کاربردهای آنها به طور مفصل شرح داده شده است. آنها را می توان بر اساس نوع آنها به بخش های جداگانه تقسیم کرد. سوئیچ های بخش اول تعریف می کنند که چه محتوایی را در `TOC` قرار دهند و سوئیچ های بخش دوم ظاهر TOC را کنترل می کنند.

اگر یک سوئیچ در اینجا ذکر نشده باشد، در حال حاضر پشتیبانی نمی شود. همه سوئیچ ها در نسخه های آینده پشتیبانی می شوند. ما در حال اضافه کردن پشتیبانی بیشتر به هر نسخه.

### سوئیچ های علامت گذاری ورودی

| سوئیچ | توضیحات |
| :- | :- |
| **Heading Styles** * (&#92;O سوئیچ)*  | <p>این سوئیچ تعریف می کند که `TOC` باید از سبک های عنوان داخلی ساخته شود. در Microsoft Word، این ها توسط Heading 1 - Heading 9 تعریف شده اند. در Aspose.Words این سبک ها با شمارش StyleIdentifier مربوطه نشان داده می شوند. این شمارش نشان دهنده یک شناسه مستقل از یک سبک است، به عنوان مثال، `StyleIdentifier.Heading1` نشان دهنده سبک Heading 1 است. با استفاده از این، قالب بندی و خواص سبک را می توان از مجموعه سبک سند بازیابی کرد. کلاس سبک مربوطه را می توان از مجموعه `Document.Styles` با استفاده از ویژگی فهرست شده نوع StyleIdentifier بازیابی کرد.</p><p>![style-table-of-contents-field-aspose-words-java](/words/java/working-with-table-of-contents/how-to-insert-and-work-with-the-table-of-contents-field-3.png)</p><p>هر محتوایی که با این سبک ها فرمت شده است در جدول محتویات گنجانده شده است. سطح عنوان سطح سلسله مراتبی مربوطه ورودی را در TOC تعریف می کند. به عنوان مثال، یک پاراگراف با سبک Heading 1 به عنوان سطح اول در `TOC` مورد توجه قرار می گیرد در حالی که یک پاراگراف با Heading 2 به عنوان سطح بعدی در سلسله مراتب و غیره مورد توجه قرار می گیرد.</p> |
| **Outline Levels** * (&#92;U سوئیچ)*  | <p>هر پاراگراف می تواند یک سطح طرح را در زیر گزینه های پاراگراف تعریف کند.</p><p>![modify-table-of-contents-field-aspose-words-java](/words/java/working-with-table-of-contents/how-to-insert-and-work-with-the-table-of-contents-field-4.png)</p><p>این تنظیم تعیین می کند که این پاراگراف باید در سلسله مراتب سند مورد توجه قرار گیرد. این یک روش رایج است که برای ساختار آسان طرح یک سند استفاده می شود. این سلسله مراتب را می توان با تغییر به Outline View در Microsoft Word مشاهده کرد. مشابه سبک های عنوان، علاوه بر سطح "متن بدن" می تواند 1 تا 9 سطح طرح وجود داشته باشد. سطح طرح 1-9 در `TOC` در سطح مربوطه سلسله مراتب ظاهر خواهد شد هر محتوایی با سطح طرح یا در سبک پاراگراف یا مستقیما در خود پاراگراف در TOC گنجانده شده است. در Aspose.Words سطح طرح با ویژگی `ParagraphFormat.OutlineLevel` گره پاراگراف نشان داده می شود. سطح طرح یک سبک پاراگراف به همان شیوه توسط ویژگی `Style.ParagraphFormat` نشان داده شده است.</p><p>```</p><p>توجه داشته باشید که سبک های عنوان داخلی مانند Heading 1 دارای یک مجموعه اجباری سطح طرح در تنظیمات سبک هستند.</p><p>```</p> |
| **Custom Styles** * (&#92;T سوئیچ)*  | <p>این سوئیچ اجازه می دهد تا سبک های سفارشی برای استفاده در هنگام جمع آوری ورودی ها در TOC استفاده شود. این اغلب در ارتباط با سوئیچ &#92;O برای شامل سبک های سفارشی همراه با سبک های عنوان داخلی در TOC استفاده می شود. پارامترهای سوئیچ باید در علامت های گفتاری محصور شوند. بسیاری از سبک های سفارشی را می توان شامل شد، برای هر سبک، نام باید با یک نقطه و سپس سطح که سبک باید در `TOC` به عنوان ظاهر شود، مشخص شود. سبک های دیگر نیز با یک کاما جدا می شوند. برای مثال</p><p>```csharp{ TOC \o "1-3" \t "CustomHeading1, 1,   CustomHeading2, 2"}```</p><p>از محتوایی که با CustomHeading1 به عنوان محتوای سطح 1 در `TOC` و CustomHeading2 به عنوان سطح 2 طراحی شده است استفاده خواهد کرد.</p> |
| از فیلدهای TC استفاده کنید * (&#92;F و &#92;L سوئیچ)*  | <p>در نسخههای قدیمی Microsoft Word تنها راه ساخت `TOC` استفاده از فیلدهای TC بود. این فیلد ها حتی زمانی که کدهای فیلد نشان داده می شوند، در سند پنهان می شوند. آنها شامل متن است که باید در ورودی نمایش داده شود و `TOC` از آنها ساخته شده است. این قابلیت در حال حاضر اغلب استفاده نمی شود اما هنوز هم ممکن است در برخی موارد مفید باشد که شامل ورودی های `TOC` باشد که در سند قابل مشاهده نیستند. وقتی این فیلد ها وارد می شوند حتی وقتی کدهای فیلد نمایش داده می شوند پنهان به نظر می رسند. بدون نمایش محتوای پنهان نمی توان آنها را دید. برای دیدن این فیلد ها باید قالب بندی پاراگراف را انتخاب کنید.</p><p>![setup-table-of-contents-field-aspose-words-java](/words/java/working-with-table-of-contents/how-to-insert-and-work-with-the-table-of-contents-field-5.png)</p><p>این فیلد ها را می توان در هر موقعیت مانند هر فیلد دیگر در یک سند قرار داد و با شمارش `FieldType.FieldTOCEntry` نشان داده می شود.سوئیچ &#92;F در `TOC` برای مشخص کردن اینکه TC فیلد ها باید به عنوان ورودی استفاده شوند استفاده می شود. سوئیچ به تنهایی بدون هیچ شناسه اضافی به این معنی است که هر فیلد TC در سند گنجانده خواهد شد. هر پارامتر اضافی، اغلب یک حرف، مشخص می کند که تنها فیلد های TC که دارای یک سوئیچ \f تطبیق یافته هستند، در TOC گنجانده می شوند. برای مثال *</p><p>```csharp{ TOC \f t }```</p><p>فقط شامل فیلد های TC مانند</p><p>```csharp{ TC \f t }```</p><p>فیلد `TOC` همچنین دارای یک سوئیچ مرتبط است، سوئیچ" &#92;L " مشخص می کند که تنها فیلد TC با سطوح در محدوده مشخص شده شامل می شود.</p><p>![table-of-contents-field-aspose-words-java](/words/java/working-with-table-of-contents/how-to-insert-and-work-with-the-table-of-contents-field-6.png)</p><p>خود فیلد های `TC` نیز می توانند سوئیچ های `{several, multiple, a few, many, numerous}` را تنظیم کنند. این ها:</p><p>- &#92;F-در بالا توضیح داده شد.&#42;</p><p>- &#92;L - تعریف می کند که در کدام سطح در `TOC` این TC فیلد ظاهر خواهد شد. `TOC` که از همین سوئیچ استفاده می کند فقط این فیلد TC را شامل می شود اگر در محدوده مشخص شده باشد.</p><p>- _&#92;N - شماره گذاری صفحه برای این ورودی `TOC` نمایش داده نمی شود.کد نمونه ای از نحوه وارد کردن TC فیلد ها را می توانید در بخش بعدی پیدا کنید.</p> |

### سوئیچ های مرتبط با ظاهر

| سوئیچ | توضیحات |
| :- | :- |
| **Omit Page Numbers** * (&#92;N سوئیچ)* | <p>این سوئیچ برای پنهان کردن شماره صفحه برای سطوح خاصی از TOC استفاده می شود. به عنوان مثال، شما می توانید تعریف کنید</p><p>```csharp{TOC \o "1-4" \n "3-4" }```</p><p>و شماره صفحه در ورودی های سطح 3 و چهار همراه با نقاط رهبر پنهان خواهد شد (اگر وجود داشته باشد). برای مشخص کردن تنها یک سطح یک محدوده هنوز باید استفاده شود، به عنوان مثال، " 1-1 " شماره صفحه را فقط برای سطح اول حذف می کند. عرضه هیچ محدوده سطح شماره صفحه را برای تمام سطوح در TOC حذف نمی کند. این برای تنظیم هنگام صادرات یک سند به HTML یا یک فرمت مشابه مفید است. این به این دلیل است که فرمت های مبتنی بر HTML هیچ مفهوم صفحه ای ندارند و بنابراین نیازی به شماره گذاری صفحه ندارند.</p><p>![table-of-contents-aspose-words-java](/words/java/working-with-table-of-contents/how-to-insert-and-work-with-the-table-of-contents-field-7.png)</p> |
| درج به عنوان Hyperlinks * (&#92;H سوئیچ)* | <p>این سوئیچ مشخص می کند که `TOC` ورودی ها به عنوان پیوندهای فرعی وارد می شوند. هنگام مشاهده یک سند در Microsoft Word این ورودی ها هنوز به عنوان متن عادی در داخل `TOC` ظاهر می شوند اما به هم پیوند داده شده اند و بنابراین می توانند برای حرکت به موقعیت ورودی اصلی در سند با استفاده از *Ctrl + Left Click* در Microsoft Word استفاده شوند. هنگامی که این سوئیچ شامل می شود، این لینک ها نیز در فرمت های دیگر حفظ می شوند. برای مثال، در فرمت های مبتنی بر HTML از جمله EPUB و فرمت های ارائه شده مانند PDF و XPS، این ها به عنوان لینک های کاری صادر می شوند. بدون این سوئیچ، `TOC` در تمام این خروجی ها به عنوان متن ساده صادر می شود و این رفتار را نشان نمی دهد. اگر یک سند در MS Word باز شود متن ورودی ها نیز به این ترتیب قابل کلیک نخواهد بود اما شماره صفحه هنوز هم می تواند برای حرکت به ورودی اصلی استفاده شود.</p><p>![tree-table-of-contents-field-aspose-words-java](/words/java/working-with-table-of-contents/how-to-insert-and-work-with-the-table-of-contents-field-8.png)</p> |
| **Set Separator Character** * (&#92;P سوئیچ)*  | <p>این سوئیچ اجازه می دهد تا محتوای جدا کننده عنوان ورودی و شماره گذاری صفحه به راحتی در TOC تغییر کند. جدا کننده مورد استفاده باید پس از این سوئیچ مشخص شود و در علامت های گفتاری محصور شود. برخلاف آنچه در اسناد اداری مستند شده است، تنها یک کاراکتر می تواند به جای پنج کاراکتر استفاده شود. این برای هر دو کلمه MS و Aspose.Words صدق می کند. استفاده از این سوئیچ توصیه نمی شود زیرا کنترل زیادی بر آنچه برای جدا کردن ورودی ها و شماره صفحات در TOC استفاده می شود، اجازه نمی دهد. در عوض، توصیه می شود که سبک مناسب `TOC` مانند `StyleIdentifier.TOC1` را ویرایش کنید و از آنجا سبک رهبر را با دسترسی به اعضای فونت خاص و غیره ویرایش کنید. جزئیات بیشتر در مورد چگونگی انجام این کار را می توانید بعدا در مقاله پیدا کنید.</p><p>![list-table-of-contents-field-aspose-words-java](/words/java/working-with-table-of-contents/how-to-insert-and-work-with-the-table-of-contents-field-9.png)</p> |
| **Preserve Tab Entries** * (&#92;W سوئیچ)* | <p>با استفاده از این سوئیچ مشخص می شود که هر ورودی که دارای یک کاراکتر تب است، به عنوان مثال، یک عنوان که دارای یک تب در انتهای خط است، به عنوان یک کاراکتر تب مناسب در هنگام پر کردن TOC حفظ خواهد شد. این بدان معنی است که تابع کاراکتر تب در `TOC` وجود خواهد داشت و می تواند برای قالب بندی ورودی استفاده شود. به عنوان مثال، برخی از ورودی ها ممکن است از tab stops و کاراکترهای tab برای فضای مساوی متن استفاده کنند. تا زمانی که سطح مربوطه `TOC` توقف برگه معادل را تعریف کند، ورودی های تولید شده `TOC` با فاصله مشابه ظاهر می شوند. در همان وضعیت اگر این سوئیچ تعریف نشده باشد، کاراکترهای تب به معادل فضای سفید به عنوان تب های غیرفعال تبدیل می شوند. در این صورت خروجی به همان اندازه که انتظار می رفت ظاهر نمی شد.</p><p>![tab-table-of-contents-field-aspose-words-java](/words/java/working-with-table-of-contents/how-to-insert-and-work-with-the-table-of-contents-field-10.png)</p> |
| **Preserve New Line Entries** * (&#92;X سوئیچ)*  | <p>مشابه سوئیچ بالا، این سوئیچ مشخص می کند که عناوین در چندین خط (با استفاده از کاراکترهای خط جدید، نه پاراگراف های جداگانه) همانطور که در TOC تولید شده است حفظ می شوند. به عنوان مثال، یک عنوان که در چندین خط پخش می شود می تواند از کاراکتر خط جدید (Ctrl + Enter یا `ControlChar.LineBreak`) برای جدا کردن محتوا در خطوط مختلف استفاده کند. با این سوئیچ مشخص شده، ورودی در `TOC` این کاراکترهای خط جدید را حفظ خواهد کرد که در زیر نشان داده شده است. در این وضعیت، اگر سوئیچ تعریف نشده باشد، کاراکترهای خط جدید به یک فضای سفید تبدیل می شوند.</p><p>![tab-space-table-of-contents-field-aspose-words-java](/words/java/working-with-table-of-contents/how-to-insert-and-work-with-the-table-of-contents-field-11.png)</p> |

## فیلد های TC را وارد کنید

شما می توانید یک فیلد جدید TC را در موقعیت فعلی `DocumentBuilder` با فراخوانی روش `DocumentBuilder.InsertField` و مشخص کردن نام فیلد به عنوان "TC" همراه با هر سوئیچ مورد نیاز وارد کنید.

مثال کد زیر نشان می دهد که چگونه یک فیلد `TC` را با استفاده از [DocumentBuilder](https://reference.aspose.com/words/java/com.aspose.words/documentbuilder/) در سند وارد کنید.

{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e" "Examples-src-main-java-com-aspose-words-examples-programming_documents-tableofcontents-InsertTCField-InsertTCField.java" >}}

اغلب یک خط متن خاص برای `TOC` تعیین می شود و با یک فیلد `TC` مشخص می شود. راه ساده برای انجام این کار در MS Word برجسته کردن متن و فشار دادن *ALT+SHIFT+O* است. این به طور خودکار یک فیلد `TC` با استفاده از متن انتخاب شده ایجاد می کند. همین تکنیک را می توان از طریق کد انجام داد. کد زیر متن را با ورودی مطابقت می دهد و یک فیلد `TC` را در همان موقعیت متن قرار می دهد. کد بر اساس همان تکنیک مورد استفاده در مقاله است. مثال کد زیر نشان می دهد که چگونه یک فیلد `TC` را در متن در یک سند پیدا و وارد کنید.

{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e" "Examples-src-main-java-com-aspose-words-examples-programming_documents-tableofcontents-FindAndInsertATCField-InsertTCFieldHandler.java" >}}

## جدول محتویات را تغییر دهید

### تغییر قالب بندی سبک ها

قالب بندی ورودی ها در `TOC` از سبک های اصلی ورودی های مشخص شده استفاده نمی کند، در عوض، هر سطح با استفاده از یک سبک معادل `TOC` فرمت می شود. به عنوان مثال، سطح اول در `TOC` با سبک **TOC1**، سطح دوم با سبک **TOC2** و غیره فرمت شده است. این بدان معنی است که برای تغییر ظاهر `TOC` این سبک ها باید اصلاح شوند. در Aspose.Words این سبک ها توسط مستقل محلی `StyleIdentifier.TOC1` تا `StyleIdentifier.TOC9` نشان داده می شوند و می توانند از مجموعه `Document.Styles` با استفاده از این شناسه ها بازیابی شوند.

هنگامی که سبک مناسب سند بازیابی شده است، قالب بندی برای این سبک می تواند اصلاح شود. هر گونه تغییر در این سبک ها به طور خودکار در TOCs در سند منعکس خواهد شد.

مثال کد زیر یک ویژگی قالب بندی را که در سبک سطح اول `TOC` استفاده می شود تغییر می دهد.

{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e" "Examples-src-main-java-com-aspose-words-examples-programming_documents-tableofcontents-ModifyATableOfContents-changeAFormattingPropertyUsedInFirstLevelTOCStyle.java" >}}

همچنین مفید است که توجه داشته باشید که هر قالب بندی مستقیم یک پاراگراف (تعریف شده در خود پاراگراف و نه در سبک) که در `TOC` مشخص شده است، در ورودی TOC کپی خواهد شد. به عنوان مثال، اگر سبک Heading 1 برای علامت گذاری محتوا برای `TOC` استفاده شود و این سبک دارای قالب بندی جسورانه باشد در حالی که پاراگراف همچنین دارای قالب بندی منحنی است که مستقیما به آن اعمال می شود. ورودی `TOC` حاصل از این کار جسورانه نخواهد بود زیرا این بخشی از قالب بندی سبک است اما به صورت مورب خواهد بود زیرا این به طور مستقیم در پاراگراف قالب بندی شده است.

همچنین می توانید قالب بندی جدا کننده های مورد استفاده بین هر ورودی و شماره صفحه را کنترل کنید. به طور پیش فرض، این یک خط نقطه ای است که با استفاده از یک کاراکتر تب و یک توقف تب راست که در نزدیکی حاشیه راست قرار دارد، به شماره گذاری صفحه گسترش می یابد.

با استفاده از کلاس `Style` که برای سطح خاص `TOC` که می خواهید تغییر دهید، بازیابی شده است، می توانید نحوه ظاهر شدن این موارد را در سند نیز تغییر دهید.

برای تغییر نحوه ظاهر این ابتدا باید `Style.ParagraphFormat` برای بازیابی قالب بندی پاراگراف برای سبک فراخوانده شود. از این، tab stops را می توان با فراخوانی `ParagraphFormat.TabStops` و tab stop مناسب اصلاح کرد. با استفاده از همین تکنیک خود برگه را می توان به طور کامل جابجا یا حذف کرد.

مثال کد زیر نشان می دهد که چگونه موقعیت tab stop راست را در پاراگراف های مرتبط `TOC` تغییر دهید.

{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e" "Examples-src-main-java-com-aspose-words-examples-programming_documents-tableofcontents-ModifyATableOfContents-modifyPositionOfRightTabStopInTOC.java" >}}

## جدول محتویات سند را حذف کنید

جدول محتویات را می توان با حذف تمام گره های موجود بین گره `FieldStart` و FieldEnd فیلد `TOC` از سند حذف کرد.

کد زیر این را نشان می دهد. حذف فیلد `TOC` ساده‌تر از یک فیلد معمولی است زیرا ما فیلدهای تودرتو را پیگیری نمی‌کنیم. در عوض، بررسی می‌کنیم که گره `FieldEnd` از نوع `FieldType.FieldTOC` است که به این معنی است که با انتهای TOC فعلی مواجه شده‌ایم. این تکنیک را می‌توان در این مورد بدون نگرانی در مورد فیلدهای تودرتو مورد استفاده قرار داد، زیرا می‌توان فرض کرد که هر سندی که به درستی تشکیل شده باشد، فیلد `TOC` کاملاً تودرتو در فیلد `TOC` دیگر ندارد.

ابتدا گره های `FieldStart` هر `TOC` جمع آوری و ذخیره می شوند. سپس `TOC` مشخص شده شمارش می شود تا تمام گره های داخل فیلد بازدید و ذخیره شوند. سپس گره ها از سند حذف می شوند. مثال کد زیر نشان می دهد که چگونه یک `TOC` مشخص شده را از یک سند حذف کنیم.

{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e" "Examples-src-main-java-com-aspose-words-examples-programming_documents-tableofcontents-RemoveATableOfContents-RemoveATableOfContents.java" >}}

## استخراج جدول محتویات

اگر می خواهید جدول محتویات هر سند ورد را استخراج کنید، می توانید از نمونه کد زیر استفاده کنید.

{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e" "Examples-src-main-java-com-aspose-words-examples-programming_documents-tableofcontents-ExtractTableOfContents-ExtractTableOfContents.java" >}}
