מבנה לוגי
מבנה לוגי
קבצי 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 יוצר טבלאות נגישות עם חלקי 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(ראה מדריך ההמרה).
בעיות נפוצות
| בעיה | סיבה | פתרון |
|---|---|---|
| אימות PDF/UA נכשל | עץ המבנה חסר אלמנטים נדרשים | ודא שכל תוכן בעל אלמנטים מבניים תואמים |
| סדר הכותרות שגוי | H2 מופיע לפני H1 | עקוב אחרי היררכיית כותרות רציפה |
| איור ללא טקסט alt | SetAlternativeText לא נקרא | ספק תמיד טקסט alt לאיורים |
| טבלה לא מזוהה על ידי קורא מסך | חסרה מבנה THead/TBody | השתמש ב-API של מבנה טבלה מלא |
שאלות נפוצות
מהו 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 | צירוף תמונה לאיור |