タグ付きPDFは、バックエンドにアクセシビリティタグを含み、読み取り順序とコンテンツの表示を管理する論理構造を持つPDFです。また、テキスト、画像などのページコンテンツを抽出して再利用することもできます。タグ付きPDFを使用すると、スクリーンリーダーなどの支援ソフトウェアや支援技術に頼るユーザーには、PDFを簡単に読み進むことができます。DioDocs for PDFでは、ドキュメントにさまざまな構造体の要素を追加し、BeginMarkedContent メソッドと EndMarkedContent メソッドを使用してマークされたコンテンツをレンダリングすることで、タグ付きPDFまたは構造化PDFを作成できます。
タグ付きPDFを作成するには
C# |
コードのコピー
|
---|---|
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サンプルブラウザを参照してください。