Automatische PDF/UA-structuur uit lay-outboom

THPDFDOMRenderer kan de visuele lay-outboom omzetten in een overeenkomende logische structuurboom zonder handmatige MCID-toewijzing

THPDFDOMDocument.GenerateStructure is standaard True, schakelt gelabelde PDF-uitvoer in, maakt één Document-root en één Sect per sectie en gebruikt THPDFDOMDocument.Language wanneer het doel geen documenttaal heeft

Semantische standaarden en overschrijvingen

Lay-outinhoudGegenereerde structuur
THPDFDOMTextP, of H1 tot en met H6 wanneer HeadingLevel is toegewezen
THPDFDOMStack en THPDFDOMContainerDiv
THPDFDOMListL met LI-, Lbl- en LBody-descendenten plus ListNumbering
THPDFDOMTableTable, TR, TH en TD, met kolomscope op kopcellen
THPDFDOMImageFigure met alternatieve tekst
Kop- en voetteksten, herhaalde tabealkoppen, spaties en decoratieve vakkenArtifact-gemarkeerde inhoud

Elk component stelt ook SemanticRole, SemanticLanguage, AlternativeText, ActualText, ExpansionText en Artifact beschikbaar voor expliciete controle

Toegankelijk documentvoorbeeld

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);

De renderer weigert een eerste kop boven H1, overgeslagen kopniveaus, wees-lijsten of tabelrollen en een PDF/UA-figuur zonder alternatieve tekst vóór het schrijven van ongeldige structuur

Identiteit en leesvolgorde over pagina's

Een logisch component behoudt één structuurelement wanneer het over pagina's wordt gesplitst

Elke zichtbare voortzetting ontvangt een pagina-lokale MCID en een MCR-woordenlijst die vanaf het bestaande structuurelement naar de juiste pagina wijst

De pagina-ParentTree mapt elke MCID terug naar datzelfde structuurelement, terwijl voortzettingsklonen de logische identiteit behouden zonder de brontekst of tabelrijen te kopiëren

Herhaalde tabealkoppen op voortzettingspagina's zijn artefacten zodat hun visuele herhaling de logische tabealkop niet vóór eerdere tabelrij-rijen herordent

Directe voortzetting-veilige authoring-API's

BeginTaggedContentForStructure wijst een MCID toe en opent gemarkeerde inhoud voor een structuurelement dat al bestaat

AppendStructureMarkedContent voegt een expliciete pagina en MCID toe als een MCR en werkt de pagina-ParentTree bij

Gebruik deze methoden op lager niveau wanneer een aangepaste lay-outrenderer voortzettingslogica buiten HPDFLayoutDOM beheert

Statistieken en compatibiliteit

THPDFDOMRenderStatistics rapporteert aantallen structuurelementen, gemarkeerde inhoud en artefacten naast pagina's, plaatsingen, splitsingen en voortzettingsdiepte

Stel GenerateStructure in op False vóór het renderen wanneer byte-compatibele ongetagde uitvoer vereist is

Gerelateerde API's