احصل على إشارات PDF المرجعية وقم بتحديثها وتوسيعها في Python
احصل على الإشارات المرجعية
ال مستند الكائنات مجموعة الخطوط العريضة تحتوي المجموعة على جميع الإشارات المرجعية لملف PDF. تشرح هذه المقالة كيفية الحصول على إشارات مرجعية من ملف PDF، وكيفية الحصول على الصفحة التي توجد بها إشارة مرجعية معينة.
للحصول على الإشارات المرجعية، قم بالتمرير عبر مجموعة الخطوط العريضة المجموعة واحصل على كل إشارة مرجعية في مجموعة OutlineItemCollection. ال مجموعة عناصر المخطط التفصيلي يوفر الوصول إلى جميع سمات الإشارة المرجعية. يوضح لك مقتطف الشفرة التالي كيفية الحصول على إشارات مرجعية من ملف PDF.
from os import path
import sys
import aspose.pdf as ap
def get_bookmarks(input_pdf):
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)
الحصول على رقم صفحة إشارة مرجعية
بمجرد إضافة إشارة مرجعية، يمكنك معرفة الصفحة الموجودة عليها من خلال الحصول على رقم صفحة الوجهة المرتبط بكائن Bookmark.
from os import path
import sys
import aspose.pdf as ap
def get_bookmark_page_number(input_pdf):
# Create PdfBookmarkEditor
bookmark_editor = ap.facades.PdfBookmarkEditor()
# Open PDF file
bookmark_editor.bind_pdf(input_pdf)
# Extract bookmarks
bookmarks = bookmark_editor.extract_bookmarks()
for bookmark in bookmarks:
str_level_separator = ""
for i in range(bookmark.level):
str_level_separator += "----"
print(str_level_separator, "Title:", bookmark.title)
print(str_level_separator, "Page Number:", bookmark.page_number)
print(str_level_separator, "Page Action:", bookmark.action)
احصل على إشارات مرجعية للأطفال من مستند PDF
يمكن تنظيم الإشارات المرجعية في هيكل هرمي مع الآباء والأطفال. للحصول على جميع الإشارات المرجعية، قم بتكرار مجموعات الخطوط العريضة لكائن المستند. ومع ذلك، للحصول على إشارات مرجعية للأطفال أيضًا، قم أيضًا بتكرار جميع الإشارات المرجعية في كل منها مجموعة عناصر المخطط التفصيلي تم الحصول على الكائن في الحلقة الأولى. توضح مقتطفات التعليمات البرمجية التالية كيفية الحصول على إشارات مرجعية للأطفال من مستند PDF.
from os import path
import sys
import aspose.pdf as ap
def get_child_bookmarks(input_pdf):
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("Child Bookmarks")
# There are child bookmarks then loop through that as well
for j in range(len(outline_item)):
child_outline_item = outline_item[j + 1]
print(child_outline_item.title)
print(child_outline_item.italic)
print(child_outline_item.bold)
print(child_outline_item.color)
تحديث الإشارات المرجعية في وثيقة PDF
لتحديث إشارة مرجعية في ملف PDF، أولاً، احصل على إشارة مرجعية معينة من مجموعة OutlineCollection الخاصة بكائن المستند عن طريق تحديد فهرس الإشارة المرجعية. بمجرد استرداد الإشارة المرجعية إلى مجموعة عناصر المخطط التفصيلي الكائن، يمكنك تحديث خصائصه ثم حفظ ملف PDF المحدث باستخدام طريقة الحفظ. توضح مقتطفات التعليمات البرمجية التالية كيفية تحديث الإشارات المرجعية في مستند PDF.
from os import path
import sys
import aspose.pdf as ap
def update_bookmarks(input_pdf, output_pdf):
# Open document
document = ap.Document(input_pdf)
# Get a bookmark object
outline = document.outlines[1]
# Get child bookmark object
child_outline = outline[1]
child_outline.title = "Updated Outline"
child_outline.italic = True
child_outline.bold = True
# Save output
document.save(output_pdf)
الإشارات المرجعية الموسعة عند عرض المستند
يتم الاحتفاظ بالإشارات المرجعية في كائنات المستند مجموعة عناصر المخطط التفصيلي المجموعة، نفسها في مجموعة الخطوط العريضة مجموعة. ومع ذلك، قد يكون لدينا شرط لتوسيع جميع الإشارات المرجعية عند عرض ملف PDF.
من أجل تحقيق هذا المطلب، يمكننا تعيين حالة الفتح لكل عنصر مخطط/إشارة مرجعية على أنه مفتوح. يوضح لك مقتطف الشفرة التالي كيفية تعيين حالة الفتح لكل إشارة مرجعية كما تم توسيعها في مستند PDF.
from os import path
import sys
import aspose.pdf as ap
def expanded_bookmarks(input_pdf, output_pdf):
document = ap.Document(input_pdf)
document.page_mode = ap.PageMode.USE_OUTLINES
for i in range(len(document.outlines)):
item = document.outlines[i + 1]
item.open = True
document.save(output_pdf)