Automatisk PDF/UA-struktur fra layouttræer

THPDFDOMRenderer kan omdanne det visuelle layouttræ til et tilsvarende logisk strukturtræ uden manuel MCID-tildeling

THPDFDOMDocument.GenerateStructure er som standard True, aktiverer tagget PDF-output, opretter én Document-rod og én Sect pr. afsnit og bruger THPDFDOMDocument.Language, når målet ikke har noget dokumentsprog

Semantiske standarder og tilsidesættelser

LayoutindholdGenereret struktur
THPDFDOMTextP, eller H1 til H6 når HeadingLevel er tildelt
THPDFDOMStack og THPDFDOMContainerDiv
THPDFDOMListL med efterkommere af LI, Lbl og LBody samt ListNumbering
THPDFDOMTableTable, TR, TH og TD med kolonneområde på overskriftsceller
THPDFDOMImageFigure med alternativ tekst
Sidehoveder, sidefødder, gentagne tabelhoveder, afstandselementer og dekorative bokseArtifact-markeret indhold

Hver komponent eksponerer også SemanticRole, SemanticLanguage, AlternativeText, ActualText, ExpansionText og Artifact til eksplicit styring

Eksempel på tilgængeligt dokument

Document.Language := 'en-US';
Section := Document.AddSection;
Section.Header := THPDFDOMText.Create('Quarterly report');
Section.Body.AddHeading('Results', 1, 'Title');

List := THPDFDOMList.Create('Decimal', 'Steps');
List.AddItem('1.', 'Review the totals');
Section.Body.Add(List);

Table := THPDFDOMTable.Create('Summary');
Table.AddColumn;
Table.AddColumn;
Header := Table.AddRow(18, True);
Header[0].Text := 'Name';
Header[1].Text := 'Value';
Row := Table.AddRow(18);
Row[0].Text := 'Alpha';
Row[1].Text := '42';
Section.Body.Add(Table);

Section.Body.Add(THPDFDOMImage.Create(Bitmap, 120, 80,
  'Revenue chart by quarter', 'Chart'));

PDF.PDFUACompliance := True;
PDF.PDFUAPart := 2;
Statistics := Renderer.Render(Document, PDF);

Rendereren afviser en første overskrift over H1, oversprungne overskriftsniveauer, forældreløse liste- eller tabelroller og en PDF/UA-figur uden alternativ tekst, før den skriver ugyldig struktur

Identitet på tværs af sider og læserækkefølge

En logisk komponent beholder ét strukturelement, når den deles på tværs af sider

Hver synlig fortsættelse modtager en sidelokal MCID og et MCR-dictionary, der peger fra det eksisterende strukturelement til den korrekte side

Sidens ParentTree afbilder hver MCID tilbage til samme strukturelement, mens fortsættelseskloner bevarer den logiske identitet uden at kopiere kildeteksten eller tabelrækkerne

Gentagne tabelhoveder på fortsættelsessider er artefakter, så deres visuelle gentagelse ikke omarrangerer det logiske tabelhoved foran tidligere brødtekstrækker

Direkte forfatnings-API'er, der er sikre ved fortsættelser

BeginTaggedContentForStructure tildeler en MCID og åbner markeret indhold for et strukturelement, der allerede findes

AppendStructureMarkedContent tilføjer en eksplicit side og MCID som en MCR og opdaterer sidens ParentTree

Brug disse lavere niveau-metoder, når en brugerdefineret layoutrenderer ejer fortsættelseslogik uden for HPDFLayoutDOM

Statistik og kompatibilitet

THPDFDOMRenderStatistics rapporterer antal strukturelementer, markeret indhold og artefakter sammen med sider, placeringer, opdelinger og fortsættelsesdybde

Sæt GenerateStructure til False før rendering, når bytekompatibelt output uden tags er påkrævet

Relaterede API'er