ایجاد یک فهرست قابل پیمایش برای گزارشها یا راهنماهای بزرگ ورد که کاربران نیاز به مرور سریع دارند، ضروری است. Conholdate.Total for Java یک SDK قدرتمند ارائه میدهد که کار با فایلهای DOCX را مستقیماً از برنامههای Java ساده میکند. در این راهنمای گامبهگام، نحوه افزودن فهرست به یک سند Word در Java را یاد میگیرید، که شامل تنظیمات، توضیح کد و بهترین شیوهها میشود.
مثال کامل عملی برای افزودن فهرست مطالب به سند Word در Java
مثال زیر نشان میدهد که چگونه یک فهرست مطالب را در یک فایل DOCX موجود با استفاده از Conholdate.Total for Java وارد کنید.
import com.groupdocs.words.Document;
import com.groupdocs.words.DocumentBuilder;
import com.groupdocs.words.TableOfContentsOptions;
import com.groupdocs.words.SaveFormat;
import com.groupdocs.words.TabLeader;
public class AddTableOfContentsExample {
public static void main(String[] args) throws Exception {
// Paths to the source and destination Word documents
String inputPath = "input.docx";
String outputPath = "output.docx";
// Load the existing document, add a TOC, and save the result
try (Document doc = new Document(inputPath)) {
DocumentBuilder builder = new DocumentBuilder(doc);
// Move cursor to the beginning of the document where the TOC will be inserted
builder.moveToDocumentStart();
// Configure TOC options
TableOfContentsOptions tocOptions = new TableOfContentsOptions();
tocOptions.setUpperHeadingLevel(1); // Include headings from level 1
tocOptions.setLowerHeadingLevel(3); // up to level 3
tocOptions.setRightAlignPageNumbers(true); // Align page numbers to the right
tocOptions.setUseHyperlinks(true); // Make entries clickable
tocOptions.setTabLeader(TabLeader.DOTS); // Use dotted leader
// Insert the Table of Contents
builder.insertTableOfContents(tocOptions);
// Save the modified document
doc.save(outputPath, SaveFormat.DOCX);
}
}
}
توجه: این مثال کد عملکرد اصلی را نشان میدهد. قبل از استفاده از آن در پروژه خود، اطمینان حاصل کنید که مسیرهای فایل (
input.docx،output.docxو غیره) را بهگونهای بهروزرسانی کنید که با مکانهای واقعی فایلهای شما مطابقت داشته باشد، بررسی کنید که تمام وابستگیهای مورد نیاز بهدرستی نصب شدهاند و بهطور کامل در محیط توسعه خود تست کنید. اگر با مشکلی مواجه شدید، لطفاً به مستندات رسمی مراجعه کنید یا برای دریافت کمک با تیم پشتیبانی تماس بگیرید.
درک افزودن فهرست مطالب به سند Word در کد Java
در ادامه تجزیه و تحلیل گامهای اصلی که توسط کد نمونه انجام میشود:
- بارگذاری سند منبع - کلاس
Documentفایل DOCX موجود را میخواند.
try (Document doc = new Document(inputPath)) {
- ایجاد یک DocumentBuilder -
DocumentBuilderمتدهایی برای ویرایش محتوای سند فراهم میکند.
DocumentBuilder builder = new DocumentBuilder(doc);
- موقعیتگذاری مکاننما -
moveToDocumentStart()نقطه درج را به ابتدای فایل منتقل میکند، بهطوری که TOC قبل از هر محتوایی ظاهر شود.
builder.moveToDocumentStart();
- پیکربندی گزینههای فهرست مطالب -
TableOfContentsOptionsبه شما امکان میدهد سطوح سرصفحه، تراز شماره صفحه، استفاده از پیوندهای فراگیر و سبک رهبری تب را تعریف کنید.
TableOfContentsOptions tocOptions = new TableOfContentsOptions();
tocOptions.setUpperHeadingLevel(1);
tocOptions.setLowerHeadingLevel(3);
tocOptions.setRightAlignPageNumbers(true);
tocOptions.setUseHyperlinks(true);
tocOptions.setTabLeader(TabLeader.DOTS);
مرجع دقیق API در صفحه مرجع API در دسترس است.
- درج فهرست مطالب و ذخیره -
insertTableOfContentsفیلد را اضافه میکند وdoc.saveفایل بهروزشده را در قالب DOCX مینویسد.
builder.insertTableOfContents(tocOptions);
doc.save(outputPath, SaveFormat.DOCX);
نصب و پیکربندی Conholdate.Total for Java
مخزن Maven Conholdate و وابستگی SDK را به pom.xml خود اضافه کنید:
<repositories>
<repository>
<id>conholdate-repo</id>
<name>Conholdate Maven Repository</name>
<url>https://repository.conholdate.com/repo/</url>
</repository>
</repositories>
<dependency>
<groupId>com.conholdate</groupId>
<artifactId>conholdate-total</artifactId>
<version>24.9</version>
<type>pom</type>
</dependency>
آخرین بسته SDK را از صفحه دانلود دریافت کنید. SDK به Java 8 یا بالاتر نیاز دارد و بر روی هر JVM استانداردی اجرا میشود. هیچ مؤلفه زمان اجرا اضافی مورد نیاز نیست.
بهترین روشها برای ایجاد فهرست مطالب Word با Java
- استفاده از سبکهای سرفصل یکسان - فهرست مطالب (TOC) پاراگرافهای دارای سطوح سرفصل داخلی (Heading 1، Heading 2 و غیره) را شناسایی میکند. اطمینان حاصل کنید که سند منبع شما از این سبکها برای تولید ورودیهای قابل اعتماد استفاده میکند.
- محدود کردن عمق سرفصل - گنجاندن سطوح بیش از حد میتواند فهرست مطالب را غیرقابل مدیریت کند. گزارشهای معمولی از سطوح 1‑3 استفاده میکنند، همانطور که در مثال نشان داده شده است.
- فعالسازی پیوندهای فراخوانی - تنظیم
setUseHyperlinks(true)ورودیهای قابل کلیک ایجاد میکند و ناوبری در سند نهایی را بهبود میبخشد. - اعتبارسنجی پس از درج - سند DOCX تولید شده را باز کنید و فیلدها را بهروزرسانی کنید (Ctrl +A، F9) تا اطمینان حاصل شود شمارههای صفحه numbers صحیح هستند، بهویژه پس از ویرایشهای بیشتر.
- بازاستفاده از شیء گزینههای TOC - اگر چندین سند را بهصورت دستهای تولید میکنید، گزینهها را یکبار پیکربندی کنید و برای کاهش هزینهٔ ایجاد شیء، آنها را مجدداً استفاده کنید.
نتیجهگیری
اضافه کردن فهرست مطالب به یک سند Word در Java بهسادگی با Conholdate.Total for Java انجام میشود. با بارگذاری یک فایل DOCX، پیکربندی TableOfContentsOptions و درج فیلد، میتوانید ایجاد گزارشها و راهنماییهای حرفهای را خودکار کنید. بهخاطر داشته باشید که SDK را نصب کنید، توصیههای بهترین‑روشها را دنبال کنید و فهرست مطالب تولید شده را در محیط هدف خود آزمایش کنید. برای استقرارهای تولیدی به یک نسخه دارای مجوز نیاز خواهید داشت؛ جزئیات قیمتگذاری در صفحهٔ قیمتگذاری موجود است و میتوانید یک مجوز موقت را از صفحهٔ مجوز موقت دریافت کنید.
سوالات متداول
سادهترین روش برای افزودن فهرست مطالب به یک سند Word در Java چیست؟
ازDocumentBuilder.moveToDocumentStart()استفاده کنید و سپسinsertTableOfContentsرا با یک شیءTableOfContentsOptionsپیکربندیشده به کار ببرید، همانطور که در مثال کد نشان داده شده است.چگونه میتوانم سطوح عنوانی که در فهرست مطالب ظاهر میشوند را کنترل کنم؟
setUpperHeadingLevelوsetLowerHeadingLevelرا در نمونهTableOfContentsOptionsتنظیم کنید تا فقط سطوح مورد نظر گنجانده شوند.آیا امکان تولید فهرست مطالب (TOC) برای یک قالب Word که بعداً پر خواهد شد وجود دارد؟
بله. فهرست مطالب را قبل از پر کردن محتوای پویا در فایل قالب قرار دهید؛ فهرست مطالب بهصورت خودکار به عناوینی که بعداً اضافه میشوند ارجاع میدهد.آیا برای استفاده از این SDK به اتصال اینترنت نیاز دارم؟
خیر. Conholdate.Total for Java یک کتابخانه محلی است که بر روی سرور یا دسکتاپ شما اجرا میشود بدون هیچ تماس سرویس خارجی.
