Automatic PDF/UA Structure from Layout Trees

THPDFDOMRenderer có thể biến cây bố cục trực quan thành cây cấu trúc logic tương ứng mà không cần cấp phát MCID thủ công

THPDFDOMDocument.GenerateStructure mặc định là True, bật đầu ra PDF có gắn thẻ, tạo một gốc Document và một Sect cho mỗi section, và dùng THPDFDOMDocument.Language khi đích không có ngôn ngữ tài liệu

Mặc định ngữ nghĩa và ghi đè

Nội dung bố cụcCấu trúc được tạo
THPDFDOMTextP, hoặc H1 đến H6 khi HeadingLevel được gán
THPDFDOMStack và THPDFDOMContainerDiv
THPDFDOMListL với các hậu duệ LI, Lbl, và LBody cùng ListNumbering
THPDFDOMTableTable, TR, TH, và TD, với phạm vi cột trên ô tiêu đề
THPDFDOMImageFigure với văn bản thay thế
Tiêu đề đầu, chân trang, tiêu đề bảng lặp lại, spacer, và hộp trang tríNội dung được đánh dấu Artifact

Mỗi thành phần cũng cung cấp SemanticRole, SemanticLanguage, AlternativeText, ActualText, ExpansionText, và Artifact để kiểm soát tường minh

Ví dụ tài liệu có thể truy cập

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

Trình dựng từ chối một tiêu đề đầu tiên trên H1, các mức tiêu đề bị bỏ qua, vai trò list hoặc table mồ côi, và một figure PDF/UA không có văn bản thay thế trước khi ghi cấu trúc không hợp lệ

Danh tính xuyên trang và thứ tự đọc

Một thành phần logic giữ một phần tử cấu trúc khi nó tách trên nhiều trang

Mỗi phần tiếp nối hiển thị nhận một MCID theo trang và một dictionary MCR trỏ từ phần tử cấu trúc hiện có đến đúng trang

ParentTree của trang ánh xạ mọi MCID trở lại cùng phần tử cấu trúc đó, trong khi bản sao tiếp nối giữ danh tính logic mà không sao chép văn bản nguồn hoặc các hàng bảng

Tiêu đề bảng lặp lại trên các trang tiếp nối là artifact để sự lặp lại trực quan của chúng không sắp xếp lại tiêu đề bảng logic lên trước các hàng thân trước đó

API tạo tác an toàn tiếp nối trực tiếp

BeginTaggedContentForStructure cấp phát một MCID và mở nội dung được đánh dấu cho một phần tử cấu trúc đã tồn tại

AppendStructureMarkedContent nối một trang và MCID tường minh dưới dạng MCR và cập nhật ParentTree của trang

Hãy dùng các phương thức cấp thấp này khi một trình dựng bố cục tùy chỉnh sở hữu logic tiếp nối bên ngoài HPDFLayoutDOM

Thống kê và tương thích

THPDFDOMRenderStatistics báo cáo số phần tử cấu trúc, nội dung được đánh dấu, và artifact cùng với số trang, vị trí đặt, lần tách, và độ sâu tiếp nối

Đặt GenerateStructure thành False trước khi dựng khi cần đầu ra không gắn thẻ tương thích byte

API liên quan