[]
タグ付きPDFは、バックエンドにアクセシビリティタグを含み、読み取り順序とコンテンツの表示を管理する論理構造を持つPDFです。また、テキスト、画像などのページコンテンツを抽出して再利用することもできます。タグ付きPDFを使用すると、スクリーンリーダーなどの支援ソフトウェアや支援技術に頼るユーザーには、PDFを簡単に読み進むことができます。DioDocs for PDFでは、ドキュメントにさまざまな構造体の要素を追加し、BeginMarkedContent メソッドと EndMarkedContent メソッドを使用してマークされたコンテンツをレンダリングすることで、タグ付きPDFまたは構造化PDFを作成できます。
タグ付きPDFを作成するには
StructElement クラスを使用して Part 要素を作成します。
Addメソッドを使用して、StructTreeRoot クラスによって表されるドキュメントの論理構造に構造体の要素を追加します。
StructElement クラスを使用して段落要素を作成し、Part 要素に追加します。
GcPdfGraphics クラスの BeginMarkedContent メソッドと EndMarkedContent メソッドを使用して、タグ付きコンテンツの開始と終了位置をマークします。
段落要素にコンテンツ項目を追加します。
MarkInfo.Marked 段落要素にコンテンツ項目を追加します。
GcPdfDocument クラスの Save メソッドを使用してタグ付きPDFを保存します。
public void CreateTaggedPdf()
{
var doc = new GcPdfDocument();
int pageCount = 5;
//Part要素を作成し、これに p(段落)要素を含みます
StructElement sePart = new StructElement("Part");
doc.StructTreeRoot.Children.Add(sePart);
//いくつかのページを追加し、各ページに一部の段落を追加して、タグを付けます
for (int pageIndex = 0; pageIndex < pageCount; ++pageIndex)
{
//ページを追加します
var page = doc.Pages.Add();
var g = page.Graphics;
const float margin = 36;
const float dy = 18;
//一部の段落を追加します
int paraCount = 4;
float y = margin;
for (int i = 0; i < paraCount; ++i)
{
//一部の段落を追加します
StructElement seParagraph = new StructElement("P") { DefaultPage = page };
//Part要素に追加します
sePart.Children.Add(seParagraph);
//テキストレイアウトを作成します
var tl = g.CreateTextLayout();
tl.DefaultFormat.Font = StandardFonts.Helvetica;
tl.DefaultFormat.FontSize = 12;
tl.Append(i+1 + " .Test the pdf for tags");
tl.MaxWidth = page.Size.Width;
tl.MarginLeft = tl.MarginRight = margin;
tl.PerformLayout(true);
//タグ付きコンテンツ内にTextLayoutを描画します
g.BeginMarkedContent(new TagMcid("P", i));
g.DrawTextLayout(tl, new PointF(0, y));
g.EndMarkedContent();
y += tl.ContentHeight + dy;
//StructElement段落にコンテンツ項目を追加します
seParagraph.ContentItems.Add(new McidContentItemLink(i));
}
}
//タグ付きドキュメントとしてマークします
doc.MarkInfo.Marked = true;
//ドキュメントを保存します
doc.Save("TaggedPdf.pdf");
}
DioDocs for PDF でタグ付きPDFを使用する方法の詳細については、DioDocs for PDFサンプルブラウザを参照してください。