استخراج المحتوى الموسوم من ملفات PDF في Python
في هذه المقالة، ستتعلم كيفية استخراج المحتوى ذي العلامات من مستندات PDF باستخدام Python.
استخدم هذه الأمثلة عندما تحتاج إلى فحص PDF ذي علامات تمييز، أو قراءة شجرة البنية المنطقية، أو التحقق من أن عناصر البنية تم إنشاؤها بشكل صحيح لعمليات سير عمل إمكانية الوصول.
الحصول على محتوى PDF ذي علامات
من أجل الحصول على محتوى مستند PDF بنص مميز، يقدم Aspose.PDF المحتوى الموسوم ملكية لـ مستند فئة.
قم بإنشاء مستند PDF متقدم ومزود بعلامات كاملة مع جدول محتويات منظم وهرمي (TOC):
- قم بإنشاء كائن مستند جديد.
- قم بالوصول إلى الخاصية tagged_content.
- قم بتعيين عنوان المستند باستخدام ‘set_title () ‘.
- قم بتعيين لغة المستند باستخدام ‘set_language () ‘.
- احفظ المستند.
import aspose.pdf as ap
from aspose.pycore import cast
import sys
from os import path
# region Extract Tagged Content from PDF
def get_tagged_content(outfile):
# Create PDF Document
with ap.Document() as document:
# Get Content for work with Tagged PDF
tagged_content = document.tagged_content
# Work with Tagged PDF content
# Set Title and Language for Document
tagged_content.set_title("Simple Tagged Pdf Document")
tagged_content.set_language("en-US")
# Save Tagged PDF Document
document.save(outfile)
الحصول على بنية الجذر
تحتوي ملفات PDF ذات العلامات على شجرة بنية منطقية تحدد البنية الدلالية للمستند. يمثل StructTreeRoot جذر هذه الشجرة المنطقية، بينما يوفر rootElement واجهة للتفاعل مع عنصر بنية المستوى الأعلى للمستند.
يوضح مقتطف الشفرة التالي كيفية الحصول على البنية الجذرية لمستند PDF الموسوم:
- قم بإنشاء مستند PDF جديد تم وضع علامة عليه.
- الوصول إلى المحتوى الذي تم وضع علامة عليه وتعيين البيانات الوصفية.
- جذر شجرة هيكل الوصول وعنصر الجذر.
- احفظ ملف PDF الذي تم وضع علامة عليه.
import aspose.pdf as ap
from aspose.pycore import cast
import sys
from os import path
def get_root_structure(outfile):
# Create PDF Document
with ap.Document() as document:
# Get Content for work with Tagged PDF
tagged_content = document.tagged_content
# Set Title and Language for Document
tagged_content.set_title("Tagged Pdf Document")
tagged_content.set_language("en-US")
# Properties StructTreeRootElement and RootElement are used for access to
# StructTreeRoot object of pdf document and to root structure element (Document structure element).
struct_tree_root_element = tagged_content.struct_tree_root_element
root_element = tagged_content.root_element
print(f"StructTreeRootElement: {struct_tree_root_element}")
print(f"RootElement: {root_element}")
# Save Tagged PDF Document
document.save(outfile)
الوصول إلى عناصر الطفل
تحتوي ملفات PDF ذات العلامات على شجرة بنية منطقية تحدد التسلسل الهرمي الدلالي للمستند (العناوين والفقرات والنماذج والقوائم وما إلى ذلك). يتيح لك الوصول إلى عناصر البنية هذه وتعديلها:
- افحص البيانات الوصفية مثل العنوان واللغة والنص الفعلي والخصائص المتعلقة بإمكانية الوصول
- تحديث الخصائص لتحسين إمكانية الوصول أو الترجمة
- اضبط بنية المستند المنطقي برمجيًا لتوافق PDF/UA
يوضح مقتطف الشفرة التالي كيفية الوصول إلى العناصر الفرعية لمستند PDF ذي العلامات:
import aspose.pdf as ap
from aspose.pycore import cast
import sys
from os import path
def access_child_elements(infile, outfile):
# Open PDF Document
with ap.Document(infile) as document:
# Get Content for work with Tagged PDF
tagged_content = document.tagged_content
# Access to root element(s)
element_list = tagged_content.struct_tree_root_element.child_elements
for element in element_list:
if isinstance(element, ap.logicalstructure.StructureElement):
structure_element = cast(ap.logicalstructure.StructureElement, element)
# Get properties
print(
"StructureElement properties - "
f"title: {structure_element.title}, "
f"language: {structure_element.language}, "
f"actual_text: {structure_element.actual_text}, "
f"expansion_text: {structure_element.expansion_text}, "
f"alternative_text: {structure_element.alternative_text}"
)
# Access to child elements of first element in root element
element_list = tagged_content.root_element.child_elements[1].child_elements
for element in element_list:
if isinstance(element, ap.logicalstructure.StructureElement):
structure_element = element
# Set properties
structure_element.title = "title"
structure_element.language = "fr-FR"
structure_element.actual_text = "actual text"
structure_element.expansion_text = "exp"
structure_element.alternative_text = "alt"
# Save Tagged PDF Document
document.save(outfile)
موضوعات PDF ذات صلة
- إنشاء ملف PDF ذي علامات لإنشاء مستندات ذات علامات يمكن الوصول إليها قبل فحص هيكلها.
- إعداد خصائص عناصر الهيكل لتحديث الخصائص الدلالية بعد استخراج عناصر البنية.
- العمل مع الجدول في ملفات PDF ذات العلامات لعمليات سير عمل إمكانية الوصول إلى الجداول ذات العلامات.