ساختار منطقی
ساختار منطقی
PDFهای برچسبدار شامل یک درخت ساختار منطقی هستند که سلسلهمراتب معنایی سند را تعریف میکند — پاراگرافها، عناوین، جداول، شکلها و فهرستها. Aspose.PDF
FOSS برای .NET API TaggedContent را برای ساخت و بررسی این ساختار فراهم میکند که برای انطباق دسترسیپذیری 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 جداول قابل دسترس با بخشهای head، body و footer ایجاد میکند.
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 را پشتیبانی میکند:
- Block-level: پاراگراف، عنوان (H1-H6)، فهرست، مورد فهرست، جدول، نقلقول بلوکی، کد
- Inline: بازه، پیوند، حاشیهنویسی، شکل، فرمول
- Grouping: تقسیمبندی، مقاله، بخش، قسمت
نکات و بهترین شیوهها
- همیشه
TitleوLanguageرا بر رویTaggedContentتنظیم کنید برای سازگاری PDF/UA. - درخت ساختار را از بالا به پایین بسازید: عناصر را ایجاد کنید، سپس فرزندان را اضافه کنید.
- از
SetAlternativeTextبر روی عناصر figure برای دسترسیپذیری خواننده صفحه استفاده کنید. - جداول را با
THead،TBody،TFootبرچسبگذاری کنید برای معنای صحیح جدول. - سازگاری PDF/UA را با
PdfFormatConversionOptionsاعتبارسنجی کنید (راهنمای تبدیل را ببینید).
مسائل رایج
| Issue | Cause | Fix |
|---|---|---|
| اعتبارسنجی PDF/UA ناموفق است | درخت ساختار عناصر مورد نیاز را ندارد | اطمینان حاصل کنید که تمام محتواها عناصر ساختاری متناظر دارند |
| ترتیب عناوین نادرست است | H2 قبل از H1 ظاهر میشود | از سلسلهمراتب عناوین متوالی پیروی کنید |
| تصویر توضیح متنی (alt text) ندارد | SetAlternativeText فراخوانی نشده است | همیشه برای تصاویر توضیح متنی ارائه دهید |
| جدول توسط صفحهخوان شناسایی نمیشود | ساختار THead/TBody موجود نیست | از API کامل ساختار جدول استفاده کنید |
سوالات متداول
PDF برچسبدار چیست؟
یک PDF برچسبدار شامل یک درخت ساختار منطقی است که محتوای بصری را به عناصر معنایی (سرفصلها، پاراگرافها، جدولها) نگاشت میکند و ابزارهای دسترسی و بازآفرینی محتوا را امکانپذیر میسازد.
آیا PDF برچسبدار همان PDF/UA است؟
PDF/UA یک استاندارد است که برچسبگذاری بههمراه قوانین دسترسی اضافی را میطلبد.
PDFهای برچسبدار پیشنیاز سازگاری با PDF/UA هستند.
آیا میتوانم یک PDF موجود را برچسبگذاری کنم؟
API TaggedContent بهترین عملکرد را با اسنادی که از ابتدا ایجاد شدهاند دارد. برای PDFهای موجود، درخت ساختار را از طریق Document.TaggedContent بررسی کنید.
خلاصه مرجع API
| Class / Method | Description |
|---|---|
TaggedContent | نقطه ورود برای عملیات ساختار منطقی |
TaggedContent.SetTitle | تنظیم عنوان سند برای دسترسپذیری |
TaggedContent.SetLanguage | تنظیم زبان سند |
ITaggedContent | رابط کاربری با متدهای کارخانه برای تمام انواع عنصر |
StructureElement | کلاس پایه برای تمام عناصر ساختار |
StructureElement.AppendChild | افزودن یک عنصر فرزند به درخت |
StructureElement.SetText | تنظیم محتوای متنی یک عنصر |
TableElement | عنصر ساختار جدول قابل دسترس |
TableElement.CreateTHead | ایجاد بخش سرجدول |
TableElement.CreateTBody | ایجاد بخش بدنه جدول |
TableTRElement | عنصر ردیف جدول |
TableTRElement.CreateTD | افزودن یک سلول داده |
TableTRElement.CreateTH | افزودن یک سلول سرصفحه |
IllustrationElement | عنصر ساختار شکل/تصویر |
IllustrationElement.SetImage | پیوست کردن یک تصویر به تصویرسازی |