Automatisk PDF/UA-struktur från layoutträd

THPDFDOMRenderer kan förvandla det visuella layoutträdet till ett matchande logiskt strukturträd utan manuell MCID-allokering

THPDFDOMDocument.GenerateStructure är True som standard, aktiverar taggad PDF-utdata, skapar en Document-rot och en Sect per sektion samt använder THPDFDOMDocument.Language när målfilen saknar dokumentspråk

Semantiska standardvärden och åsidosättanden

LayoutinnehållGenererad struktur
THPDFDOMTextP, eller H1 genom H6 när HeadingLevel är tilldelat
THPDFDOMStack och THPDFDOMContainerDiv
THPDFDOMListL med LI-, Lbl- och LBody-avkomlingar plus ListNumbering
THPDFDOMTableTable, TR, TH och TD, med kolumnomfång på rubrikceller
THPDFDOMImageFigure med alternativtext
Sidhuvuden, sidfötter, upprepade tabellhuvuden, mellanrum och dekorativa rutorArtifact-markerat innehåll

Varje komponent exponerar även SemanticRole, SemanticLanguage, AlternativeText, ActualText, ExpansionText och Artifact för explicit kontroll

Exempel på tillgängligt 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);

Renderaren avvisar en första rubrik över H1, hoppade rubriknivåer, föräldralösa lista- eller tabellroller samt en PDF/UA-figur utan alternativtext innan ogiltig struktur skrivs

Identitet och läsordning över sidor

En logisk komponent behåller ett strukturelement när den delas upp över sidor

Varje synligt avbrott får en sidlokal MCID och en MCR-ordlista som pekar från det befintliga strukturelementet till rätt sida

Sidans ParentTree mappar varje MCID tillbaka till samma strukturelement, medan fortsättningskloner bevarar logisk identitet utan att kopiera källtexten eller tabellraderna

Upprepade tabellhuvuden på fortsättningssidor är artefakter så att deras visuella upprepning inte ordnar om det logiska tabellhuvudet före tidigare kroppsrader

Direkta fortsättningssäkra redigerings-API:er

BeginTaggedContentForStructure allokerar en MCID och öppnar markerat innehåll för ett strukturelement som redan finns

AppendStructureMarkedContent lägger till en explicit sida och MCID som en MCR och uppdaterar sidans ParentTree

Använd dessa lägre nivåns metoder när en anpassad layoutrenderare äger fortsättningslogik utanför HPDFLayoutDOM

Statistik och kompatibilitet

THPDFDOMRenderStatistics rapporterar antal struktur-, markerat-innehålls- och artefaktelement tillsammans med sidor, placeringar, delningar och fortsättningsdjup

Ställ in GenerateStructure på False före rendering när byte-kompatibel otaggad utdata krävs

Relaterade API:er