إخفاء أرقام الصفحات في جدول المحتويات

مقدمة

عند العمل مع ملفات PDF، قد ترغب أحيانًا في إنشاء جدول محتويات (TOC) ولكن مع الحفاظ على المظهر الأنيق عن طريق إخفاء أرقام الصفحات. ربما يتدفق المستند بشكل أفضل بدونها، أو ربما يكون ذلك خيارًا جماليًا. أيًا كان السبب، إذا كنت تعمل مع Aspose.PDF لـ .NET، فسيوضح لك هذا البرنامج التعليمي بالضبط كيفية إخفاء أرقام الصفحات في جدول المحتويات الخاص بك.

المتطلبات الأساسية

قبل أن نبدأ، هناك بعض الأشياء التي ستحتاج إليها. إليك قائمة مرجعية سريعة:

  • تم تثبيت Visual Studio: ستحتاج إلى إصدار عمل من Visual Studio لكتابة التعليمات البرمجية.
  • مكتبة Aspose.PDF لـ .NET: تأكد من تثبيت مكتبة Aspose.PDF لـ .NET.
  • الترخيص المؤقت: إذا كنت تقوم باختبار الميزات، فمن المفيد أن يكون لديك ترخيص مؤقت.

استيراد الحزم

قبل البدء في الكود، تأكد من استيراد المساحات التالية في مشروع C# الخاص بك. ستوفر لك هذه المساحات الفئات والطرق اللازمة للعمل مع مستندات PDF وإنشاء جدول المحتويات (TOC).

using Aspose.Pdf;
using Aspose.Pdf.Text;

الآن بعد أن أصبحت بيئتك جاهزة وتم استيراد الحزم، فلنبدأ في تفصيل كل خطوة من خطوات العملية. سنغطي كل جزء من التعليمات البرمجية لضمان الوضوح، حتى تتمكن من المتابعة بسهولة.

الخطوة 1: تهيئة مستند PDF الخاص بك

أول شيء يتعين علينا فعله هو إنشاء مستند PDF جديد وإضافة صفحة لجدول المحتويات (TOC).

// المسار إلى دليل المستندات.
string dataDir = "YOUR DOCUMENT DIRECTORY";
string outFile = dataDir + "HiddenPageNumbers_out.pdf";
Document doc = new Document();
Page tocPage = doc.Pages.Add();
  • dataDir: هذا هو الدليل الذي سيتم حفظ ملف الإخراج الخاص بك فيه.
  • Document(): يقوم بتهيئة مستند PDF جديد.
  • Pages.Add(): تقوم بإضافة صفحة فارغة جديدة إلى المستند، والتي ستحتوي لاحقًا على جدول المحتويات الخاص بك.

الخطوة 2: إعداد معلومات جدول المحتويات والعنوان

بعد ذلك، سنقوم بتحديد معلومات جدول المحتويات، بما في ذلك تعيين العنوان الذي سيظهر في الجزء العلوي من جدول المحتويات.

TocInfo tocInfo = new TocInfo();
TextFragment title = new TextFragment("Table Of Contents");
title.TextState.FontSize = 20;
title.TextState.FontStyle = FontStyles.Bold;
tocInfo.Title = title;
tocPage.TocInfo = tocInfo;
  • TocInfo: يحتوي هذا الكائن على كافة المعلومات حول TOC.
  • TextFragment: يمثل نص عنوان جدول المحتويات، وهنا نضعه كـ “جدول المحتويات”.
  • نمط الخط: نقوم بتصميم عنوان جدول المحتويات عن طريق ضبط حجمه إلى 20 وجعله غامقًا.
  • tocPage.TocInfo: نقوم بتعيين معلومات جدول المحتويات إلى الصفحة التي ستعرض جدول المحتويات.

الخطوة 3: إخفاء أرقام الصفحات في جدول المحتويات

الآن حان الوقت للجزء الممتع! هنا نقوم بإعداد جدول المحتويات لإخفاء أرقام الصفحات.

tocInfo.IsShowPageNumbers = false;
tocInfo.FormatArrayLength = 4;
  • IsShowPageNumbers: هذا هو المفتاح السحري الذي يخفي أرقام الصفحات. اضبطه علىfalse، ولن تظهر أرقام الصفحات في جدول المحتويات.
  • FormatArrayLength: قمنا بتعيين هذا إلى 4، مما يشير إلى أننا نريد تحديد التنسيق لأربعة مستويات من عناوين جدول المحتويات.

الخطوة 4: تخصيص تنسيق جدول المحتويات

لإضافة المزيد من الأناقة إلى جدول المحتويات الخاص بك، سنقوم الآن بتحديد التنسيق لمستويات مختلفة من العناوين.

tocInfo.FormatArray[0].Margin.Right = 0;
tocInfo.FormatArray[0].TextState.FontStyle = FontStyles.Bold | FontStyles.Italic;
tocInfo.FormatArray[1].Margin.Left = 30;
tocInfo.FormatArray[1].TextState.Underline = true;
tocInfo.FormatArray[1].TextState.FontSize = 10;
tocInfo.FormatArray[2].TextState.FontStyle = FontStyles.Bold;
tocInfo.FormatArray[3].TextState.FontStyle = FontStyles.Bold;
  • FormatArray: تتحكم هذه المصفوفة في تنسيق إدخالات جدول المحتويات. يمثل كل مؤشر مستوى عنوان مختلفًا.
  • الهامش ونمط النص: نقوم بتعيين الهوامش وتطبيق أنماط الخطوط مثل الغامق والمائل والتسطير لكل مستوى عنوان.

الخطوة 5: إضافة عناوين إلى المستند

وأخيرًا، دعونا نضيف العناوين الفعلية التي ستكون جزءًا من جدول المحتويات.

Page page = doc.Pages.Add();
for (int Level = 1; Level != 5; Level++)
{ 
    Heading heading2 = new Heading(Level); 
    TextSegment segment2 = new TextSegment(); 
    heading2.TocPage = tocPage; 
    heading2.Segments.Add(segment2); 
    heading2.IsAutoSequence = true; 
    segment2.Text = "this is heading of level " + Level; 
    heading2.IsInList = true; 
    page.Paragraphs.Add(heading2); 
}
  • العناوين والأجزاء النصية: تمثل هذه العناوين التي ستظهر في جدول المحتويات الخاص بك. يحصل كل مستوى على عنوانه الخاص.
  • IsAutoSequence: ترقيم العناوين تلقائيًا.
  • IsInList: يضمن ظهور كل عنوان في جدول المحتويات.

الخطوة 6: احفظ المستند

بمجرد تعيين كل شيء، قم بحفظ مستند PDF في ملف الإخراج المحدد.

doc.Save(outFile);

وهذا كل شيء! لقد نجحت في إنشاء ملف PDF يحتوي على جدول محتويات، وتم إخفاء أرقام الصفحات!

خاتمة

قد يبدو إنشاء جدول محتويات في ملف PDF وإخفاء أرقام الصفحات أمرًا صعبًا، ولكن مع Aspose.PDF لـ .NET، يصبح الأمر سهلاً. باتباع هذا الدليل التفصيلي، ستتعلم كيفية تخصيص تنسيق جدول المحتويات وإخفاء أرقام الصفحات وتطبيق أنماط مختلفة على العناوين. يمكنك الآن إنشاء ملفات PDF احترافية مصممة خصيصًا لتلبية احتياجاتك.

الأسئلة الشائعة

هل يمكنني إظهار أرقام الصفحات لعناوين محددة في جدول المحتويات؟

لا، يقوم برنامج Aspose.PDF بإخفاء أو إظهار أرقام الصفحات لجدول المحتويات بالكامل. ولا يمكنك إخفاءها بشكل انتقائي لإدخالات محددة.

هل من الممكن إضافة مستويات أخرى إلى جدول المحتويات؟

نعم يمكنك زيادةFormatArrayLength لتحديد المزيد من مستويات عناوين جدول المحتويات.

كيف يمكنني تغيير الخط لجميع إدخالات جدول المحتويات؟

يمكنك تغيير الخط عن طريق تعديلTextState.Font خاصية لكل مستوى فيFormatArray.

هل يمكنني إدراج ارتباطات تشعبية في جدول المحتويات؟

نعم، يمكنك ربط كل إدخال في جدول المحتويات بقسم معين في المستند باستخدامHeading.TocPage ملكية.

هل أحتاج إلى ترخيص لـ Aspose.PDF؟

نعم، يلزم الحصول على ترخيص صالح للاستخدام الإنتاجي. يمكنك الحصول على ترخيص مؤقتهنا لاختبار الميزات.