الهيكل المنطقي
الهيكل المنطقي
تتضمن ملفات PDF ذات العلامات شجرة بنية منطقية تُعرّف التسلسل الهرمي الدلالي للمستند — الفقرات، العناوين، الجداول، الأشكال، والقوائم. توفر Aspose.PDF FOSS for .NET الـ TaggedContent API لبناء وفحص هذه البنية، وهو أمر أساسي للامتثال لإمكانية الوصول PDF/UA.
الوصول إلى المحتوى الموسوم
using var doc = new Document();
var tagged = doc.TaggedContent;
tagged.SetTitle("Accessible Document");
tagged.SetLanguage("en-US");إنشاء عناصر الهيكل
ITaggedContent يوفر طرق مصنع لكل نوع عنصر بنية قياسي. يتم تجميع العناصر في شجرة عن طريق استدعاء AppendChild.
var root = tagged.RootElement;
var heading = tagged.CreateHeaderElement(1);
heading.SetText("Chapter 1");
root.AppendChild(heading);
var paragraph = tagged.CreateParagraphElement();
paragraph.SetText("This is the first paragraph.");
root.AppendChild(paragraph);جداول مُنظمة
TableElement ينشئ جداول قابلة للوصول مع أقسام الرأس، الجسم، والتذييل.
var table = tagged.CreateTableElement();
root.AppendChild(table);
var thead = table.CreateTHead();
var headerRow = thead.CreateTR();
headerRow.CreateTH().SetText("Name");
headerRow.CreateTH().SetText("Value");
var tbody = table.CreateTBody();
var dataRow = tbody.CreateTR();
dataRow.CreateTD().SetText("Width");
dataRow.CreateTD().SetText("612");الرسوم التوضيحية والرسوم البيانية
IllustrationElement يَغْلِف الصور في شجرة الهيكل.
var figure = tagged.CreateFigureElement();
figure.SetImage("chart.png");
figure.SetAlternativeText("Sales chart for Q4");
root.AppendChild(figure);أنواع عناصر البنية
يدعم API مجموعة كاملة من أنواع عناصر بنية PDF:
- مستوى الكتلة: Paragraph, Heading (H1-H6), List, ListItem, Table, BlockQuote, Code
- مضمن: Span, Link, Annotation, Figure, Formula
- تجميع: Division, Article, Section, Part
نصائح وأفضل الممارسات
- دائمًا قم بتعيين
TitleوLanguageعلىTaggedContentللامتثال لـ PDF/UA. - بنِ شجرة البنية من الأعلى إلى الأسفل: أنشئ العناصر، ثم أضف الأطفال.
- استخدم
SetAlternativeTextعلى عناصر الشكل لتسهيل الوصول لقارئ الشاشة. - ضع وسوم للجداول باستخدام
THead،TBody،TFootللحصول على دلالات جدول صحيحة. - تحقق من امتثال PDF/UA باستخدام
PdfFormatConversionOptions(انظر دليل التحويل).
مشكلات شائعة
| Issue | Cause | Fix |
|---|---|---|
| فشل التحقق من PDF/UA | شجرة البنية تفتقد العناصر المطلوبة | تأكد من أن جميع المحتويات لها عناصر بنية مقابلة |
| ترتيب العناوين خاطئ | H2 يظهر قبل H1 | اتبع تسلسل هرمي متسلسل للعناوين |
| الشكل لا يحتوي على نص بديل | SetAlternativeText غير مستدعى | قدم دائمًا نصًا بديلًا للرسوم التوضيحية |
| الجدول غير معترف به من قبل قارئ الشاشة | بنية THead/TBody مفقودة | استخدم واجهة برمجة التطبيقات الكاملة لبنية الجدول |
الأسئلة المتكررة
ما هو PDF الموسوم؟
يتضمن ملف PDF الموسوم شجرة بنية منطقية تُطابق المحتوى البصري مع العناصر الدلالية (العناوين، الفقرات، الجداول)، مما يتيح أدوات الوصول وإعادة تدفق المحتوى.
هل PDF الموسوم هو نفسه PDF/UA؟
PDF/UA هو معيار يتطلب وضع العلامات بالإضافة إلى قواعد وصول إضافية.
ملفات PDF ذات العلامات هي شرط مسبق للامتثال لـ PDF/UA.
هل يمكنني وضع علامة على ملف PDF موجود؟
يعمل TaggedContent API بشكل أفضل مع المستندات التي تم إنشاؤها من الصفر. بالنسبة لملفات PDF الموجودة، افحص شجرة البنية عبر Document.TaggedContent.
API ملخص المرجع
| الفئة / الطريقة | الوصف |
|---|---|
TaggedContent | نقطة الدخول لعمليات البنية المنطقية |
TaggedContent.SetTitle | تعيين عنوان المستند لسهولة الوصول |
TaggedContent.SetLanguage | تعيين لغة المستند |
ITaggedContent | واجهة مع طرق المصنع لجميع أنواع العناصر |
StructureElement | الفئة الأساسية لجميع عناصر البنية |
StructureElement.AppendChild | إضافة عنصر فرعي إلى الشجرة |
StructureElement.SetText | تعيين محتوى النص لعنصر |
TableElement | عنصر بنية جدول سهل الوصول |
TableElement.CreateTHead | إنشاء قسم رأس الجدول |
TableElement.CreateTBody | إنشاء قسم جسم الجدول |
TableTRElement | عنصر صف جدول |
TableTRElement.CreateTD | إضافة خلية بيانات |
TableTRElement.CreateTH | إضافة خلية رأس |
IllustrationElement | عنصر بنية الشكل/التوضيح |
IllustrationElement.SetImage | إرفاق صورة بالتوضيح |