レイアウトツリーからの自動 PDF/UA 構造

THPDFDOMRenderer は、手動の MCID 割り当てなしで視覚レイアウトツリーを対応する論理構造ツリーに変換できます

THPDFDOMDocument.GenerateStructure はデフォルトで True になり、タグ付き PDF 出力を有効にし、1 つの Document ルートとセクションごとに 1 つの Sect を作成し、ターゲットにドキュメント言語がない場合は THPDFDOMDocument.Language を使用します

セマンティックのデフォルトと上書き

レイアウトコンテンツ生成される構造
THPDFDOMTextP、または HeadingLevel が割り当てられている場合は H1 から H6
THPDFDOMStack と THPDFDOMContainerDiv
THPDFDOMList子孫 LI、Lbl、LBody と ListNumbering を伴う L
THPDFDOMTableヘッダーセルに列スコープを持つ Table、TR、TH、TD
THPDFDOMImage代替テキスト付きの Figure
ヘッダー、フッター、反復テーブルヘッダー、スペーサー、装飾ボックスArtifact マーク付きコンテンツ

すべてのコンポーネントは、明示的な制御のため SemanticRole、SemanticLanguage、AlternativeText、ActualText、ExpansionText、Artifact も公開します

アクセシブルなドキュメントの例

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

レンダラーは、無効な構造を書き込む前に、H1 を超える最初の見出し、スキップされた見出しレベル、孤立したリストまたはテーブルロール、代替テキストのない PDF/UA 図を拒否します

ページをまたぐ同一性と読み上げ順序

論理コンポーネントは、ページをまたいで分割されても 1 つの構造要素を保持します

各可視継続は、ページローカルの MCID と、既存の構造要素から正しいページを指す MCR 辞書を受け取ります

ページの ParentTree はすべての MCID を同じ構造要素にマッピングし直し、継続クローンはロジカルな同一性を保持しつつ、ソーステキストやテーブル行をコピーしません

継続ページの反復テーブルヘッダーはアーティファクトであるため、その視覚的な繰り返しによって論理テーブルヘッダーが前の本文行より先に並び替えられることはありません

直接的な継続安全オーサリング API

BeginTaggedContentForStructure は MCID を割り当て、既に存在する構造要素に対してマーク付きコンテンツを開きます

AppendStructureMarkedContent は、明示的なページと MCID を MCR として追加し、ページの ParentTree を更新します

カスタムレイアウトレンダラーが HPDFLayoutDOM の外側で継続ロジックを所有する場合は、これらの低レベルメソッドを使用してください

統計と互換性

THPDFDOMRenderStatistics は、ページ、配置、分割、継続深さとともに、構造要素、マーク付きコンテンツ、アーティファクトの数を報告します

バイト互換のタグなし出力が必要な場合は、レンダリング前に GenerateStructure を False に設定してください

関連 API