Logisk struktur
Logisk struktur
Taggade PDF-filer innehåller ett logiskt strukturtträd som definierar dokumentets semantiska hierarki — stycken, rubriker, tabeller, figurer och listor. Aspose.PDF FOSS for .NET tillhandahåller TaggedContent API för att bygga och inspektera denna struktur, vilket är avgörande för PDF/UA‑tillgänglighetsöverensstämmelse.
Åtkomst till taggat innehåll
using var doc = new Document();
var tagged = doc.TaggedContent;
tagged.SetTitle("Accessible Document");
tagged.SetLanguage("en-US");Skapa strukturelement
ITaggedContent tillhandahåller fabriksmetoder för varje standardstruktur‑elementtyp. Elementen sätts samman till ett träd genom att anropa 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);Strukturerade tabeller
TableElement skapar tillgängliga tabeller med huvud, kropp och sidfotsektioner.
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");Illustrationer och figurer
IllustrationElement omsluter bilder i strukturtträdet.
var figure = tagged.CreateFigureElement();
figure.SetImage("chart.png");
figure.SetAlternativeText("Sales chart for Q4");
root.AppendChild(figure);Strukturelementtyper
API:et stöder hela uppsättningen av PDF‑strukturelementtyper:
- Block-level: Stycke, Rubrik (H1-H6), Lista, Listobjekt, Tabell, Blockcitat, Kod
- Inline: Span, Länk, Annotation, Figur, Formel
- Grouping: Division, Artikel, Sektion, Del
Tips och bästa praxis
- Ange alltid
TitleochLanguagepåTaggedContentför PDF/UA-efterlevnad. - Bygg strukturtträdet uppifrån och ner: skapa element, och lägg sedan till barn.
- Använd
SetAlternativeTextpå figure-element för skärmläsaråtkomst. - Tagga tabeller med
THead,TBody,TFootför korrekt tabellsemantik. - Validera PDF/UA-efterlevnad med
PdfFormatConversionOptions(se konverteringsguiden).
Vanliga problem
| Problem | Orsak | Åtgärd |
|---|---|---|
| PDF/UA-validering misslyckas | Strukturtree saknar obligatoriska element | Se till att allt innehåll har motsvarande strukturelement |
| Rubrikordning är fel | H2 visas före H1 | Följ sekventiell rubrikhierarki |
| Figur har ingen alt-text | SetAlternativeText anropas inte | Tillhandahåll alltid alt-text för illustrationer |
| Tabell känns inte igen av skärmläsare | Saknar THead/TBody-struktur | Använd hela tabellstruktur-API:et |
Vanliga frågor
Vad är en taggad PDF?
En taggad PDF innehåller ett logiskt strukturt träd som mappar visuellt innehåll till semantiska element (rubriker, stycken, tabeller), vilket möjliggör tillgänglighetsverktyg och innehållsomsättning.
Är en taggad PDF densamma som PDF/UA?
PDF/UA är en standard som kräver taggning plus ytterligare tillgänglighetsregler.
Taggade PDF-filer är ett förutsättning för PDF/UA‑efterlevnad.
Kan jag tagga en befintlig PDF?
TaggedContent API fungerar bäst med dokument som skapas från grunden. För befintliga PDF-filer, inspektera strukturträdet via Document.TaggedContent.
API Referenssammanfattning
| Klass / Metod | Beskrivning |
|---|---|
TaggedContent | Ingångspunkt för logiska strukturoperationer |
TaggedContent.SetTitle | Ställ in dokumentets titel för tillgänglighet |
TaggedContent.SetLanguage | Ställ in dokumentets språk |
ITaggedContent | Gränssnitt med fabriksmetoder för alla elementtyper |
StructureElement | Basklass för alla strukturelement |
StructureElement.AppendChild | Lägg till ett underordnat element i trädet |
StructureElement.SetText | Ställ in textinnehållet för ett element |
TableElement | Tillgängligt tabellstrukturelement |
TableElement.CreateTHead | Skapa tabellens rubriksektion |
TableElement.CreateTBody | Skapa tabellens kroppsektion |
TableTRElement | Tabellradselement |
TableTRElement.CreateTD | Lägg till en datacell |
TableTRElement.CreateTH | Lägg till en rubricell |
IllustrationElement | Figur-/illustrationsstrukturelement |
IllustrationElement.SetImage | Bifoga en bild till illustrationen |