C#.NETでタグ付きPDFファイルを作成する

タグ付きPDFファイルは、タグを使用してドキュメント内のコンテンツの論理構造を定義するPDFの一種です。これは、支援技術やスクリーンリーダーを使用する人の読書体験を向上させるために使用されます。 前の投稿では、.NETアプリケーション内でのPDFファイルの作成について説明しました。この記事では、C#.NETでプログラムによってタグ付きPDFファイルを作成する方法を示します。

タグ付きPDFを作成するためのC#.NET API-無料ダウンロード

Aspose.PDF for .NETは、.NETアプリケーション内でPDFを生成および操作するための堅牢なAPIです。 APIを使用すると、単純なレイアウトと複雑なレイアウトのPDFファイルをシームレスに作成、処理、および変換できます。 APIのバイナリをダウンロードするか、NuGetを使用してインストールできます。

PM> Install-Package Aspose.PDF

C#.NETでタグ付きPDFファイルを作成する

タグ付きPDFで構造要素を作成するために、Aspose.PDF for .NETはITaggedContentインターフェースを提供します。それでは、このインターフェイスを使用してC#でタグ付きPDFファイルを作成する方法を見てみましょう。

次のコードサンプルは、C#でタグ付きPDFを作成する方法を示しています。

// PDFドキュメントを作成する
Document document = new Document();

// タグ付きPDFで作業するためのコンテンツを取得する
ITaggedContent taggedContent = document.TaggedContent;
var rootElement = taggedContent.RootElement;
            
// ドキュメントのタイトルと言語を設定する
taggedContent.SetTitle("Tagged Pdf Document");
taggedContent.SetLanguage("en-US");

// ヘッダーを追加
HeaderElement mainHeader = taggedContent.CreateHeaderElement();
mainHeader.SetText("Main Header");

// 段落を追加
ParagraphElement paragraphElement = taggedContent.CreateParagraphElement();
paragraphElement.SetText("Lorem ipsum dolor sit amet, consectetur adipiscing elit. " +
"Aenean nec lectus ac sem faucibus imperdiet. Sed ut erat ac magna ullamcorper hendrerit. " +
"Cras pellentesque libero semper, gravida magna sed, luctus leo. Fusce lectus odio, laoreet" +
"nec ullamcorper ut, molestie eu elit. Interdum et malesuada fames ac ante ipsum primis in faucibus." +
"Aliquam lacinia sit amet elit ac consectetur. Donec cursus condimentum ligula, vitae volutpat" +
"sem tristique eget. Nulla in consectetur massa. Vestibulum vitae lobortis ante. Nulla ullamcorper" +
"pellentesque justo rhoncus accumsan. Mauris ornare eu odio non lacinia. Aliquam massa leo, rhoncus" +
"ac iaculis eget, tempus et magna. Sed non consectetur elit. Sed vulputate, quam sed lacinia luctus," +
"ipsum nibh fringilla purus, vitae posuere risus odio id massa. Cras sed venenatis lacus.");

rootElement.AppendChild(mainHeader);
rootElement.AppendChild(paragraphElement);

// タグ付きPDFを保存
document.Save("tagged-pdf.pdf");

以下は、上記のコードサンプルの出力です。

C#でタグ付きPDFファイルを作成する

C#ネストされた要素を使用してタグ付きPDFを作成する

前の例では、段落を含む単純なタグ付きPDFを作成しました。タグ付きPDFにネストされた要素を追加する方法を見てみましょう。この操作を実行する手順は次のとおりです。

次のコードサンプルは、C#でタグ付きPDFにネストされた要素を追加する方法を示しています。

// PDFドキュメントを作成する
Document document = new Document();

// タグ付きPDFで作業するためのコンテンツを取得する
ITaggedContent taggedContent = document.TaggedContent;
var rootElement = taggedContent.RootElement;

// ドキュメントのタイトルと言語を設定する
taggedContent.SetTitle("Tagged Pdf Document");
taggedContent.SetLanguage("en-US");

// ヘッダーを追加
HeaderElement mainHeader = taggedContent.CreateHeaderElement();
mainHeader.SetText("Main Header");

// 段落を作成する
ParagraphElement paragraphWithQuotes = taggedContent.CreateParagraphElement();
paragraphWithQuotes.StructureTextState.Font = FontRepository.FindFont("Calibri");
paragraphWithQuotes.StructureTextState.MarginInfo = new MarginInfo(10, 5, 10, 5);

// スパン要素を追加
SpanElement spanElement1 = taggedContent.CreateSpanElement();
spanElement1.SetText("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean nec lectus ac sem faucibus imperdiet. Sed ut erat ac magna ullamcorper hendrerit. Cras pellentesque libero semper, gravida magna sed, luctus leo. Fusce lectus odio, laoreet nec ullamcorper ut, molestie eu elit. Interdum et malesuada fames ac ante ipsum primis in faucibus. Aliquam lacinia sit amet elit ac consectetur. Donec cursus condimentum ligula, vitae volutpat sem tristique eget. Nulla in consectetur massa. Vestibulum vitae lobortis ante. Nulla ullamcorper pellentesque justo rhoncus accumsan. Mauris ornare eu odio non lacinia. Aliquam massa leo, rhoncus ac iaculis eget, tempus et magna. Sed non consectetur elit. ");
QuoteElement quoteElement = taggedContent.CreateQuoteElement();
quoteElement.SetText("Sed vulputate, quam sed lacinia luctus, ipsum nibh fringilla purus, vitae posuere risus odio id massa.");
quoteElement.StructureTextState.FontStyle = FontStyles.Bold | FontStyles.Italic;
SpanElement spanElement2 = taggedContent.CreateSpanElement();
spanElement2.SetText(" Sed non consectetur elit.");

// 段落に追加
paragraphWithQuotes.AppendChild(spanElement1);
paragraphWithQuotes.AppendChild(quoteElement);
paragraphWithQuotes.AppendChild(spanElement2);

// ルート要素に追加
rootElement.AppendChild(mainHeader);
rootElement.AppendChild(paragraphWithQuotes);

// タグ付きPDFを保存
document.Save("tagged-pdf-nested-elements.pdf");

次のスクリーンショットは、ネストされた要素を持つタグ付きPDFを示しています。

C#でネストされた要素を使用してタグ付きPDFを作成する

C#でタグ付けされたPDFのテキスト構造をスタイリングする

フォントスタイル、ファミリ、サイズなどを設定して、タグ付きPDFのテキストにスタイルを適用することもできます。このために、Aspose.PDF for .NETはFontFontSize、[FontStyle]を提供します。 StructureTextStateクラスの25およびForegroundColorプロパティ。次のコードサンプルは、C#でタグ付けされたPDFにテキストスタイルを適用する方法を示しています。

// PDFドキュメントを作成する
Document document = new Document();

// タグ付きPDFで作業するためのコンテンツを取得する
ITaggedContent taggedContent = document.TaggedContent;
var rootElement = taggedContent.RootElement;

// ドキュメントのタイトルと言語を設定する
taggedContent.SetTitle("Tagged Pdf Document");
taggedContent.SetLanguage("en-US");

// ヘッダーを追加
HeaderElement mainHeader = taggedContent.CreateHeaderElement();
mainHeader.SetText("Main Header");

// 段落を作成する
ParagraphElement paragraphWithQuotes = taggedContent.CreateParagraphElement();
taggedContent.RootElement.AppendChild(paragraphWithQuotes);

// スタイリングを設定する
paragraphWithQuotes.StructureTextState.FontSize = 18F;
paragraphWithQuotes.StructureTextState.ForegroundColor = Color.Red;
paragraphWithQuotes.StructureTextState.FontStyle = FontStyles.Italic;
            
// テキストを追加
paragraphWithQuotes.SetText("Red italic text.");

// タグ付きPDFを保存
document.Save("tagged-pdf-text-styling.pdf");

タグ付きPDFで構造要素を示すC#

構造要素を説明するために、Aspose.PDF for .NETはIllustrationElementクラスを提供します。次のコードサンプルは、このクラスを使用して、タグ付きPDFの構造要素を示す方法を示しています。

// PDFドキュメントを作成する
Document document = new Document();

// タグ付きPDFで作業するためのコンテンツを取得する
ITaggedContent taggedContent = document.TaggedContent;
var rootElement = taggedContent.RootElement;

// ドキュメントのタイトルと言語を設定する
taggedContent.SetTitle("Tagged Pdf Document");
taggedContent.SetLanguage("en-US");

IllustrationElement figure1 = taggedContent.CreateFigureElement();
taggedContent.RootElement.AppendChild(figure1);
figure1.AlternativeText = "Figure One";
figure1.Title = "Image 1";
figure1.SetTag("Fig1");
figure1.SetImage("aspose_pdf.png");

// タグ付きPDFを保存
document.Save("tagged-pdf-illustrating-structure.pdf");

タグ付きPDFを作成するためのC#API-無料ライセンスを取得

評価の制限なしにAspose.PDF for .NETを使用するには、無料の一時ライセンスを取得できます。

結論

この記事では、C#でタグ付きPDFファイルを作成する方法を学びました。さらに、ネストされた要素を作成し、テキストにスタイルを適用し、プログラムでタグ付けされたPDFの構造要素を説明する方法を見てきました。さらに、ドキュメントを使用して.NETPDFAPIの詳細を調べることができます。ご不明な点やご質問がございましたら、フォーラムからお問い合わせください。

関連項目