Logická struktura
Logická struktura
Tagged PDF soubory obsahují logický strom struktury, který definuje sémantickou hierarchii dokumentu — odstavce, nadpisy, tabulky, obrázky a seznamy. Aspose.PDF FOSS pro .NET poskytuje API TaggedContent pro vytváření a kontrolu této struktury, což je nezbytné pro shodu s přístupností PDF/UA.
Přístup k označenému obsahu
using var doc = new Document();
var tagged = doc.TaggedContent;
tagged.SetTitle("Accessible Document");
tagged.SetLanguage("en-US");Vytváření strukturálních prvků
ITaggedContent poskytuje tovární metody pro každý standardní typ strukturálního prvku. Prvky jsou sestaveny do stromu voláním 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);Strukturované tabulky
TableElement vytváří přístupné tabulky se sekcemi head, body a 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");Ilustrace a obrázky
IllustrationElement obaluje obrázky ve stromu struktury.
var figure = tagged.CreateFigureElement();
figure.SetImage("chart.png");
figure.SetAlternativeText("Sales chart for Q4");
root.AppendChild(figure);Typy strukturálních prvků
API podporuje kompletní sadu typů strukturálních prvků PDF:
- Bloková úroveň: Paragraph, Heading (H1-H6), List, ListItem, Table, BlockQuote, Code
- Vložené: Span, Link, Annotation, Figure, Formula
- Skupinování: Division, Article, Section, Part
Tipy a osvědčené postupy
- Vždy nastavte
TitleaLanguagenaTaggedContentpro soulad s PDF/UA. - Vytvořte strukturovaný strom shora dolů: vytvořte prvky a poté připojte podřízené.
- Použijte
SetAlternativeTextna elementy figure pro přístupnost čteček obrazovky. - Označte tabulky pomocí
THead,TBody,TFootpro správnou sémantiku tabulek. - Ověřte soulad s PDF/UA pomocí
PdfFormatConversionOptions(viz průvodce konverzí).
Časté problémy
| Issue | Cause | Fix |
|---|---|---|
| Selhání validace PDF/UA | Strom struktury postrádá požadované prvky | Zajistěte, aby veškerý obsah měl odpovídající strukturové prvky |
| Pořadí nadpisů je špatné | H2 se objevuje před H1 | Dodržujte sekvenční hierarchii nadpisů |
| Obrázek nemá alternativní text | SetAlternativeText nebyl zavolán | Vždy poskytujte alternativní text pro ilustrace |
| Tabulka není rozpoznána čtečkou obrazovky | Chybí struktura THead/TBody | Použijte plnou API struktury tabulky |
Často kladené otázky
Co je označený PDF?
Označený PDF obsahuje logický strom struktury, který mapuje vizuální obsah na sémantické prvky (nadpisy, odstavce, tabulky) a umožňuje nástroje přístupnosti a přetékání obsahu.
Je označený PDF stejný jako PDF/UA?
PDF/UA je standard, který vyžaduje označování plus další pravidla přístupnosti.
Označené PDF jsou předpokladem pro shodu s PDF/UA.
Mohu označit existující PDF?
API TaggedContent funguje nejlépe s dokumenty vytvořenými od nuly. Pro existující PDF soubory prohlédněte strom struktury pomocí Document.TaggedContent.
Souhrn referenčního API
| Třída / Metoda | Popis |
|---|---|
TaggedContent | Vstupní bod pro operace logické struktury |
TaggedContent.SetTitle | Nastavit název dokumentu pro přístupnost |
TaggedContent.SetLanguage | Nastavit jazyk dokumentu |
ITaggedContent | Rozhraní s továrními metodami pro všechny typy prvků |
StructureElement | Základní třída pro všechny strukturové prvky |
StructureElement.AppendChild | Přidat podřízený prvek do stromu |
StructureElement.SetText | Nastavit textový obsah prvku |
TableElement | Přístupný prvek struktury tabulky |
TableElement.CreateTHead | Vytvořit sekci záhlaví tabulky |
TableElement.CreateTBody | Vytvořit sekci těla tabulky |
TableTRElement | Prvek řádku tabulky |
TableTRElement.CreateTD | Přidat datovou buňku |
TableTRElement.CreateTH | Přidat buňku záhlaví |
IllustrationElement | Prvek struktury obrázku/ilustrace |
IllustrationElement.SetImage | Připojit obrázek k ilustraci |