論理構造

論理構造

タグ付けされた PDF には、文書の意味階層(段落、見出し、表、図、リスト)を定義する論理構造ツリーが含まれます。Aspose.PDF FOSS for .NET は、この構造を構築および検査するための TaggedContent API を提供しており、PDF/UA のアクセシビリティ準拠に不可欠です。


タグ付けされたコンテンツへのアクセス

using var doc = new Document();
var tagged = doc.TaggedContent;
tagged.SetTitle("Accessible Document");
tagged.SetLanguage("en-US");

構造要素の作成

ITaggedContent は、すべての標準構造要素タイプに対するファクトリメソッドを提供します。要素は AppendChild を呼び出すことでツリーに組み立てられます。

var root = tagged.RootElement;

var heading = tagged.CreateHeaderElement(1);
heading.SetText("Chapter 1");
root.AppendChild(heading);

var paragraph = tagged.CreateParagraphElement();
paragraph.SetText("This is the first paragraph.");
root.AppendChild(paragraph);

構造化テーブル

TableElement は、head、body、footer セクションを備えたアクセシブルなテーブルを作成します。

var table = tagged.CreateTableElement();
root.AppendChild(table);

var thead = table.CreateTHead();
var headerRow = thead.CreateTR();
headerRow.CreateTH().SetText("Name");
headerRow.CreateTH().SetText("Value");

var tbody = table.CreateTBody();
var dataRow = tbody.CreateTR();
dataRow.CreateTD().SetText("Width");
dataRow.CreateTD().SetText("612");

イラストと図

IllustrationElement は画像を構造ツリーにラップします。

var figure = tagged.CreateFigureElement();
figure.SetImage("chart.png");
figure.SetAlternativeText("Sales chart for Q4");
root.AppendChild(figure);

構造要素タイプ

API は PDF 構造要素タイプの全セットをサポートしています:

  • ブロックレベル: Paragraph, Heading (H1-H6), List, ListItem, Table, BlockQuote, Code
  • インライン: Span, Link, Annotation, Figure, Formula
  • グルーピング: Division, Article, Section, Part

ヒントとベストプラクティス

  • 常に TitleLanguageTaggedContent に設定して PDF/UA 準拠にします。
  • 構造ツリーは上から下へ構築します:要素を作成し、次に子要素を追加します。
  • 画面リーダーのアクセシビリティのため、figure 要素に SetAlternativeText を使用します。
  • テーブルには適切なテーブルセマンティクスのために THeadTBodyTFoot をタグ付けします。
  • PDF/UA 準拠を PdfFormatConversionOptions で検証します(変換ガイドを参照)。

一般的な問題

問題原因修正
PDF/UA バリデーションが失敗する構造ツリーに必須要素が欠如しているすべてのコンテンツに対応する構造要素があることを確認する
見出しの順序が間違っているH2 が H1 の前に出現している順次的な見出し階層に従う
図に代替テキストがないSetAlternativeText が呼び出されていないイラストには常に代替テキストを提供する
テーブルがスクリーンリーダーで認識されないTHead/TBody 構造が欠如している完全なテーブル構造 API を使用する

よくある質問

タグ付きPDFとは何ですか?

タグ付けされた PDF には、視覚コンテンツを意味的要素(見出し、段落、テーブル)にマッピングする論理構造ツリーが含まれ、アクセシビリティツールやコンテンツのリフローを可能にします。

タグ付きPDFはPDF/UAと同じですか?

PDF/UA は、タグ付けと追加のアクセシビリティ規則を必要とする標準です。
タグ付けされた PDF は、PDF/UA 準拠の前提条件です。

既存のPDFにタグ付けできますか?

TaggedContent API は、最初から作成したドキュメントで最も効果的に機能します。既存の PDF の場合は、Document.TaggedContent を使用して構造ツリーを検査してください。


API リファレンス概要

クラス / メソッド説明
TaggedContent論理構造操作のエントリーポイント
TaggedContent.SetTitleアクセシビリティ用にドキュメントタイトルを設定
TaggedContent.SetLanguageドキュメントの言語を設定
ITaggedContentすべての要素タイプのファクトリーメソッドとのインターフェイス
StructureElementすべての構造要素の基底クラス
StructureElement.AppendChildツリーに子要素を追加
StructureElement.SetText要素のテキストコンテンツを設定
TableElementアクセシブルなテーブル構造要素
TableElement.CreateTHeadテーブルヘッダーセクションを作成
TableElement.CreateTBodyテーブルボディセクションを作成
TableTRElementテーブル行要素
TableTRElement.CreateTDデータセルを追加
TableTRElement.CreateTHヘッダーセルを追加
IllustrationElement図/イラスト構造要素
IllustrationElement.SetImageイラストに画像を添付

参照

 日本語