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 Title och LanguageTaggedContent för PDF/UA-efterlevnad.
  • Bygg strukturtträdet uppifrån och ner: skapa element, och lägg sedan till barn.
  • Använd SetAlternativeText på figure-element för skärmläsaråtkomst.
  • Tagga tabeller med THead, TBody, TFoot för korrekt tabellsemantik.
  • Validera PDF/UA-efterlevnad med PdfFormatConversionOptions (se konverteringsguiden).

Vanliga problem

ProblemOrsakÅtgärd
PDF/UA-validering misslyckasStrukturtree saknar obligatoriska elementSe till att allt innehåll har motsvarande strukturelement
Rubrikordning är felH2 visas före H1Följ sekventiell rubrikhierarki
Figur har ingen alt-textSetAlternativeText anropas inteTillhandahåll alltid alt-text för illustrationer
Tabell känns inte igen av skärmläsareSaknar THead/TBody-strukturAnvä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 / MetodBeskrivning
TaggedContentIngångspunkt för logiska strukturoperationer
TaggedContent.SetTitleStäll in dokumentets titel för tillgänglighet
TaggedContent.SetLanguageStäll in dokumentets språk
ITaggedContentGränssnitt med fabriksmetoder för alla elementtyper
StructureElementBasklass för alla strukturelement
StructureElement.AppendChildLägg till ett underordnat element i trädet
StructureElement.SetTextStäll in textinnehållet för ett element
TableElementTillgängligt tabellstrukturelement
TableElement.CreateTHeadSkapa tabellens rubriksektion
TableElement.CreateTBodySkapa tabellens kroppsektion
TableTRElementTabellradselement
TableTRElement.CreateTDLägg till en datacell
TableTRElement.CreateTHLägg till en rubricell
IllustrationElementFigur-/illustrationsstrukturelement
IllustrationElement.SetImageBifoga en bild till illustrationen

Se även

 Svenska