إنشاء جدول محتويات قابل للتنقل أمر أساسي عند إنشاء تقارير Word الكبيرة أو الأدلة التي يحتاج المستخدمون إلى تصفحها بسرعة. Conholdate.Total for Java يوفر مجموعة تطوير برمجيات قوية تُبسّط العمل مع ملفات 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

فيما يلي تفصيل للخطوات الرئيسية التي ينفذها كود العينة:

  1. تحميل المستند المصدر - فئة Document تقرأ ملف DOCX الموجود.
try (Document doc = new Document(inputPath)) {
  1. إنشاء DocumentBuilder - DocumentBuilder يوفر طرقًا لتحرير محتوى المستند.
DocumentBuilder builder = new DocumentBuilder(doc);
  1. وضع المؤشر - moveToDocumentStart() ينقل نقطة الإدراج إلى بداية الملف تمامًا، مما يضمن ظهور جدول المحتويات قبل أي محتوى.

    builder.moveToDocumentStart();
    
  2. تكوين خيارات جدول المحتويات - TableOfContentsOptions يتيح لك تحديد مستويات العناوين، ومحاذاة أرقام الصفحات، واستخدام الروابط التشعبية، ونمط فاصل التبويب.

TableOfContentsOptions tocOptions = new TableOfContentsOptions();
tocOptions.setUpperHeadingLevel(1);
tocOptions.setLowerHeadingLevel(3);
tocOptions.setRightAlignPageNumbers(true);
tocOptions.setUseHyperlinks(true);
tocOptions.setTabLeader(TabLeader.DOTS);

تتوفر مرجع API التفصيلي في صفحة مرجع API.

  1. إدراج جدول المحتويات وحفظه - 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

  • استخدام أنماط العناوين المتسقة - يلتقط جدول المحتويات الفقرات التي تم تنسيقها باستخدام مستويات العناوين المدمجة (العنوان 1، العنوان 2، إلخ). تأكد من أن مستند المصدر الخاص بك يستخدم هذه الأنماط لتوليد إدخالات موثوقة.
  • تحديد عمق العناوين - إدراج مستويات كثيرة قد يجعل جدول المحتويات غير عملي. عادةً ما تستخدم التقارير المستويات 1‑3، كما هو موضح في المثال.
  • تمكين الروابط التشعبية - ضبط setUseHyperlinks(true) ينشئ إدخالات قابلة للنقر، مما يحسن التنقل في المستند النهائي.
  • التحقق بعد الإدراج - افتح ملف DOCX المُولد وقم بتحديث الحقول (Ctrl +A, F9) لتأكيد أن أرقام الصفحات numbers صحيحة، خاصةً بعد التعديلات الإضافية.
  • إعادة استخدام كائن خيارات جدول المحتويات - إذا قمت بإنشاء مستندات متعددة في دفعة واحدة، قم بتكوين الخيارات مرة واحدة وأعد استخدامها لتقليل عبء إنشاء الكائنات.

الخاتمة

إضافة جدول محتويات إلى مستند Word في Java يصبح أمرًا بسيطًا باستخدام Conholdate.Total for Java. عن طريق تحميل ملف DOCX، وتكوين TableOfContentsOptions، وإدراج الحقل، يمكنك أتمتة إنشاء التقارير والكتيبات المهنية. تذكر تثبيت SDK، واتباع توصيات أفضل الممارسات، واختبار جدول المحتويات المُنشأ في بيئتك المستهدفة. بالنسبة للنشر في بيئات الإنتاج ستحتاج إلى نسخة مرخصة؛ تفاصيل الأسعار متاحة على صفحة التسعير ويمكن الحصول على ترخيص مؤقت من صفحة الترخيص المؤقت.

الأسئلة المتكررة

  • ما هي أبسط طريقة لإضافة جدول محتويات إلى مستند Word في Java؟
    استخدم DocumentBuilder.moveToDocumentStart() متبوعًا بـ insertTableOfContents مع كائن TableOfContentsOptions مُكوَّن، كما هو موضح في مثال الشيفرة.

  • كيف يمكنني التحكم في مستويات العناوين التي تظهر في جدول المحتويات؟
    قم بتعيين setUpperHeadingLevel و setLowerHeadingLevel على كائن TableOfContentsOptions لتضمين المستويات المطلوبة فقط.

  • هل من الممكن إنشاء جدول محتويات (TOC) لقالب Word سيتم ملؤه لاحقًا؟
    نعم. قم بإدراج جدول المحتويات في ملف القالب قبل ملء المحتوى الديناميكي؛ سيتولى جدول المحتويات الإشارة تلقائيًا إلى العناوين التي ستُضاف لاحقًا.

  • هل أحتاج إلى اتصال بالإنترنت لاستخدام مجموعة تطوير البرمجيات هذه؟
    لا. Conholdate.Total for Java هي مكتبة محلية تعمل على الخادم أو سطح المكتب الخاص بك دون أي استدعاءات خدمة خارجية.

اقرأ المزيد