Automatinė PDF/UA struktūra iš išdėstymo medžių
THPDFDOMRenderer gali vizualų išdėstymo medį paversti atitinkančiu loginiu struktūros medžiu be rankinio MCID paskirstymo
THPDFDOMDocument.GenerateStructure pagal numatymą yra True, įjungia žymėtą PDF išvestį, sukuria vieną Document šaknį ir po vieną Sect kiekvienai sekcijai ir naudoja THPDFDOMDocument.Language, kai tikslas neturi dokumento kalbos
Semantikos numatymai ir perrašymai
| Išdėstymo turinys | Sugeneruota struktūra |
|---|---|
THPDFDOMText | P arba H1 iki H6, kai priskiriamas HeadingLevel |
THPDFDOMStack ir THPDFDOMContainer | Div |
THPDFDOMList | L su LI, Lbl ir LBody palikuonimis bei ListNumbering |
THPDFDOMTable | Table, TR, TH ir TD su stulpelio apimtimi antraštės langeliuose |
THPDFDOMImage | Figure su pakaitiniu tekstu |
| Antraštės, poraštės, pasikartojančios lentelės antraštės, tarpikliai ir dekoratyvios dėžės | Artifact žymėtas turinys |
Kiekvienas komponentas taip pat atskleidžia SemanticRole, SemanticLanguage, AlternativeText, ActualText, ExpansionText ir Artifact aiškiai kontrolei
Prieinamo dokumento pavyzdys
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);
Atvaizduotojas atmeta pirmą antraštę virš H1, praleistus antraščių lygius, našlaičių sąrašo arba lentelės vaidmenis ir PDF/UA figūrą be pakaitinio teksto prieš įrašydamas netinkamą struktūrą
Tarpkiapinė tapatybė ir skaitymo tvarka
Loginis komponentas išlaiko vieną struktūros elementą, kai jis persiskiria per puslapius
Kiekvienas matomas tęsinys gauna puslapiui vietinį MCID ir MCR žodyną, kuris nukreipia iš esamo struktūros elemento į teisingą puslapį
Puslapio ParentTree susieja kiekvieną MCID atgal su tuo pačiu struktūros elementu, o tęsinio klonai išlaiko loginę tapatybę be šaltinio teksto arba lentelės eilučių kopijavimo
Pasikartojančios lentelės antraštės tęsinių puslapiuose yra artefaktai, todėl jų vizualus kartojimas neperpildo logiškų lentelės antraščių prieš ankstesnes turinio eilutes
Tiesioginiai tęsedoms apsaugai skirti autoriniai API
BeginTaggedContentForStructure paskirsto MCID ir atidaro žymėtą turinį struktūros elementui, kuris jau egzistuoja
AppendStructureMarkedContent prideda aiškų puslapį ir MCID kaip MCR ir atnaujina puslapio ParentTree
Naudokite šiuos žemo lygio metodus, kai pasirinktinis išdėstymo atvaizduotojas valdo tęsinio logiką už HPDFLayoutDOM ribų
Statistika ir suderinamumas
THPDFDOMRenderStatistics praneša struktūros-elemento, žymėto turinio ir artefakto skaičius kartu su puslapiais, išdėstymais, skirsniais ir tęsinio gyliu
Nustatykite GenerateStructure į False prieš atvaizdavimą, kai reikia baitais suderinamos nepaženklintos išvesties