الحصول على، تحديث وتوسيع إشارة مرجعية باستخدام بايثون

الحصول على الإشارات المرجعية

تحتوي مجموعة OutlineCollection الخاصة بكائن Document على جميع الإشارات المرجعية لملف PDF. يوضح هذا المقال كيفية الحصول على الإشارات المرجعية من ملف PDF، وكيفية معرفة الصفحة التي توجد بها إشارة مرجعية معينة.

للحصول على الإشارات المرجعية، قم بالتكرار خلال مجموعة OutlineCollection واحصل على كل إشارة مرجعية في OutlineItemCollection. يوفر OutlineItemCollection الوصول إلى جميع سمات الإشارة المرجعية. يُظهر لك مقطع الشيفرة التالي كيفية الحصول على الإشارات المرجعية من ملف PDF.


    import aspose.pdf as ap

    # افتح المستند
    document = ap.Document(input_pdf)

    # قم بالتكرار خلال جميع الإشارات المرجعية
    for i in range(len(document.outlines)):
        outline_item = document.outlines[i + 1]
        print(outline_item.title)
        print(outline_item.italic)
        print(outline_item.bold)
        print(outline_item.color)

الحصول على رقم الصفحة للإشارة المرجعية

بمجرد إضافة إشارة مرجعية، يمكنك معرفة الصفحة التي توجد عليها من خلال الحصول على رقم الصفحة المرتبط بكائن الإشارة المرجعية.


    import aspose.pdf as ap

    # إنشاء محرر الإشارات المرجعية
    bookmarkEditor = ap.facades.PdfBookmarkEditor()
    # فتح ملف PDF
    bookmarkEditor.bind_pdf(input_pdf)
    # استخراج الإشارات المرجعية
    bookmarks = bookmarkEditor.extract_bookmarks()
    for bookmark in bookmarks:
        str_level_seprator = ""
        for i in range(bookmark.level):
            str_level_seprator += "----"

        print(str_level_seprator, "العنوان:", bookmark.title)
        print(str_level_seprator, "رقم الصفحة:", bookmark.page_number)
        print(str_level_seprator, "إجراء الصفحة:", bookmark.action)

الحصول على الإشارات المرجعية الفرعية من مستند PDF

يمكن تنظيم الإشارات المرجعية في هيكل هرمي، مع الآباء والأطفال. للحصول على جميع العلامات المرجعية، قم بالتكرار من خلال مجموعات الكائن Document الخاصة بعناصر Outlines. ومع ذلك، للحصول على العلامات المرجعية الفرعية أيضًا، قم بالتكرار من خلال جميع العلامات المرجعية في كل كائن OutlineItemCollection يتم الحصول عليه في الحلقة الأولى. تعرض مقتطفات الشيفرة التالية كيفية الحصول على العلامات المرجعية الفرعية من مستند PDF.


    import aspose.pdf as ap

    # افتح المستند
    document = ap.Document(input_pdf)

    # كرر عبر جميع العلامات المرجعية
    for i in range(len(document.outlines)):
        outline_item = document.outlines[i + 1]
        print(outline_item.title)
        print(outline_item.italic)
        print(outline_item.bold)
        print(outline_item.color)
        count = len(outline_item)
        if count > 0:
            print("العلامات المرجعية الفرعية")
            # هناك علامات مرجعية فرعية، ثم كرر من خلالها أيضًا
            for j in range(len(outline_item)):
                child_outline_item = outline_item[i + 1]
                print(child_outline_item.title)
                print(child_outline_item.italic)
                print(child_outline_item.bold)
                print(child_outline_item.color)

تحديث الإشارات المرجعية في مستند PDF

لتحديث إشارة مرجعية في ملف PDF، أولاً، احصل على الإشارة المرجعية المحددة من مجموعة OutlineColletion لكائن المستند عن طريق تحديد فهرس الإشارة المرجعية. بمجرد استرجاع الإشارة المرجعية إلى كائن OutlineItemCollection، يمكنك تحديث خصائصها ثم حفظ ملف PDF المحدث باستخدام طريقة Save. توضح مقتطفات الشيفرة التالية كيفية تحديث الإشارات المرجعية في مستند PDF.


    import aspose.pdf as ap

    # افتح المستند
    document = ap.Document(input_pdf)

    # احصل على كائن الإشارة المرجعية
    outline = document.outlines[1]

    # احصل على كائن الإشارة المرجعية الفرعية
    child_outline = outline[1]
    child_outline.title = "Updated Outline"
    child_outline.italic = True
    child_outline.bold = True

    # احفظ النتيجة
    document.save(output_pdf)

الإشارات المرجعية الموسعة عند عرض المستند

تُحتفظ الإشارات المرجعية في مجموعة OutlineItemCollection لكائن المستند، وهي نفسها في مجموعة OutlineCollection. ومع ذلك، قد يكون لدينا متطلب بأن تكون جميع العلامات المرجعية موسعة عند عرض ملف PDF.

من أجل تحقيق هذا المتطلب، يمكننا تعيين حالة الفتح لكل عنصر مخطط/علامة مرجعية كما هو مفتوح. يوضح لك مقتطف الكود التالي كيفية تعيين حالة الفتح لكل علامة مرجعية كموسع في مستند PDF.


    import aspose.pdf as ap

    # افتح المستند
    document = ap.Document(input_pdf)

    # تعيين وضع عرض الصفحة، أي إظهار الصور المصغرة، ملء الشاشة، إظهار لوحة المرفقات
    document.page_mode = ap.PageMode.USE_OUTLINES
    # الانتقال عبر كل عنصر مخطط في مجموعة المخططات في ملف PDF
    for i in range(len(document.outlines)):
        item = document.outlines[i + 1]
        # تعيين حالة الفتح لعنصر المخطط
        item.open = True

    # حفظ الإخراج
    document.save(output_pdf)