構造要素のプロパティの設定

タグ付きPDFドキュメントの構造要素のプロパティを設定するために、Aspose.PDFはITaggedContentインターフェースのCreateSectElementおよびCreateHeaderElementメソッドを提供しています。

次のコードスニペットは、タグ付きPDFドキュメントの構造要素のプロパティを設定する方法を示しています:

// 完全な例とデータファイルについては、https://github.com/aspose-pdf/Aspose.PDF-for-.NET をご覧ください。
// ドキュメントディレクトリへのパスです。
string dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();

// Pdfドキュメントを作成します
Document document = new Document();

// TaggedPdfで作業するためのコンテンツを取得します
ITaggedContent taggedContent = document.TaggedContent;

// ドキュメントのタイトルと言語を設定します
taggedContent.SetTitle("タグ付きPdfドキュメント");
taggedContent.SetLanguage("en-US");

// 構造要素を作成します
StructureElement rootElement = taggedContent.RootElement;

SectElement sect = taggedContent.CreateSectElement();
rootElement.AppendChild(sect);

HeaderElement h1 = taggedContent.CreateHeaderElement(1);
sect.AppendChild(h1);
h1.SetText("ヘッダー");

h1.Title = "タイトル";
h1.Language = "en-US";
h1.AlternativeText = "代替テキスト";
h1.ExpansionText = "展開テキスト";
h1.ActualText = "実際のテキスト";

// タグ付きPdfドキュメントを保存します
document.Save(dataDir + "StructureElementsProperties.pdf");

テキスト構造要素の設定

Tagged PDFドキュメントのテキスト構造要素を設定するために、Aspose.PDFはParagraphElementクラスを提供しています。以下のコードスニペットは、Tagged PDFドキュメントのテキスト構造要素を設定する方法を示しています:

// 完全な例とデータファイルについては、https://github.com/aspose-pdf/Aspose.PDF-for-.NET をご覧ください
// ドキュメントディレクトリへのパス。
string dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();

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

// TaggedPdfの作業用コンテンツを取得
ITaggedContent taggedContent = document.TaggedContent;

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

// ルート構造要素を取得
StructureElement rootElement = taggedContent.RootElement;

ParagraphElement p = taggedContent.CreateParagraphElement();
// テキスト構造要素にテキストを設定
p.SetText("Paragraph.");
rootElement.AppendChild(p);

// Tagged Pdfドキュメントを保存
document.Save(dataDir + "TextStructureElement.pdf");

タグ付きPDFドキュメントのテキストブロック構造要素の設定

タグ付きPDFドキュメントのテキストブロック構造要素を設定するには、Aspose.PDFはHeaderElementクラスとParagraphElementクラスを提供しています。これらのクラスのオブジェクトをStructureElementオブジェクトの子として追加できます。 以下のコードスニペットは、タグ付きPDFドキュメントのテキストブロック構造要素を設定する方法を示しています:

// 完全な例とデータファイルについては、https://github.com/aspose-pdf/Aspose.PDF-for-.NET をご覧ください。
// ドキュメントディレクトリへのパス。
string dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();

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

// TaggedPdfで作業するためのコンテンツを取得
ITaggedContent taggedContent = document.TaggedContent;

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

// ルート構造要素を取得
StructureElement rootElement = taggedContent.RootElement;

HeaderElement h1 = taggedContent.CreateHeaderElement(1);
HeaderElement h2 = taggedContent.CreateHeaderElement(2);
HeaderElement h3 = taggedContent.CreateHeaderElement(3);
HeaderElement h4 = taggedContent.CreateHeaderElement(4);
HeaderElement h5 = taggedContent.CreateHeaderElement(5);
HeaderElement h6 = taggedContent.CreateHeaderElement(6);
h1.SetText("H1. レベル1のヘッダー");
h2.SetText("H2. レベル2のヘッダー");
h3.SetText("H3. レベル3のヘッダー");
h4.SetText("H4. レベル4のヘッダー");
h5.SetText("H5. レベル5のヘッダー");
h6.SetText("H6. レベル6のヘッダー");
rootElement.AppendChild(h1);
rootElement.AppendChild(h2);
rootElement.AppendChild(h3);
rootElement.AppendChild(h4);
rootElement.AppendChild(h5);
rootElement.AppendChild(h6);

ParagraphElement p = taggedContent.CreateParagraphElement();
p.SetText("P. 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(p);

// タグ付きPDFドキュメントを保存
document.Save(dataDir + "TextBlockStructureElements.pdf");

インライン構造要素の設定

タグ付きPDFドキュメントのインライン構造要素を設定するために、Aspose.PDFはSpanElementクラスとParagraphElementクラスを提供しています。これらのクラスのオブジェクトをStructureElementオブジェクトの子として追加できます。次のコードスニペットは、タグ付きPDFドキュメントのインライン構造要素を設定する方法を示しています:

// 完全な例とデータファイルについては、https://github.com/aspose-pdf/Aspose.PDF-for-.NET をご覧ください。
// ドキュメントディレクトリへのパス。
string dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();

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

// タグ付きPdfの作業用コンテンツを取得
ITaggedContent taggedContent = document.TaggedContent;

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

// ルート構造要素を取得
StructureElement rootElement = taggedContent.RootElement;

HeaderElement h1 = taggedContent.CreateHeaderElement(1);
HeaderElement h2 = taggedContent.CreateHeaderElement(2);
HeaderElement h3 = taggedContent.CreateHeaderElement(3);
HeaderElement h4 = taggedContent.CreateHeaderElement(4);
HeaderElement h5 = taggedContent.CreateHeaderElement(5);
HeaderElement h6 = taggedContent.CreateHeaderElement(6);
rootElement.AppendChild(h1);
rootElement.AppendChild(h2);
rootElement.AppendChild(h3);
rootElement.AppendChild(h4);
rootElement.AppendChild(h5);
rootElement.AppendChild(h6);

SpanElement spanH11 = taggedContent.CreateSpanElement();
spanH11.SetText("H1. ");
h1.AppendChild(spanH11);
SpanElement spanH12 = taggedContent.CreateSpanElement();
spanH12.SetText("レベル1ヘッダー");
h1.AppendChild(spanH12);

SpanElement spanH21 = taggedContent.CreateSpanElement();
spanH21.SetText("H2. ");
h2.AppendChild(spanH21);
SpanElement spanH22 = taggedContent.CreateSpanElement();
spanH22.SetText("レベル2ヘッダー");
h2.AppendChild(spanH22);

SpanElement spanH31 = taggedContent.CreateSpanElement();
spanH31.SetText("H3. ");
h3.AppendChild(spanH31);
SpanElement spanH32 = taggedContent.CreateSpanElement();
spanH32.SetText("レベル3ヘッダー");
h3.AppendChild(spanH32);

SpanElement spanH41 = taggedContent.CreateSpanElement();
spanH41.SetText("H4. ");
h4.AppendChild(spanH41);
SpanElement spanH42 = taggedContent.CreateSpanElement();
spanH42.SetText("レベル4ヘッダー");
h4.AppendChild(spanH42);

SpanElement spanH51 = taggedContent.CreateSpanElement();
spanH51.SetText("H5. ");
h5.AppendChild(spanH51);
SpanElement spanH52 = taggedContent.CreateSpanElement();
spanH52.SetText("レベル5ヘッダー");
h5.AppendChild(spanH52);

SpanElement spanH61 = taggedContent.CreateSpanElement();
spanH61.SetText("H6. ");
h6.AppendChild(spanH61);
SpanElement spanH62 = taggedContent.CreateSpanElement();
spanH62.SetText("レベル6ヘッダー");
h6.AppendChild(spanH62);

ParagraphElement p = taggedContent.CreateParagraphElement();
p.SetText("P. ");
rootElement.AppendChild(p);
SpanElement span1 = taggedContent.CreateSpanElement();
span1.SetText("Lorem ipsum dolor sit amet, consectetur adipiscing elit. ");
p.AppendChild(span1);
SpanElement span2 = taggedContent.CreateSpanElement();
span2.SetText("Aenean nec lectus ac sem faucibus imperdiet. ");
p.AppendChild(span2);
SpanElement span3 = taggedContent.CreateSpanElement();
span3.SetText("Sed ut erat ac magna ullamcorper hendrerit. ");
p.AppendChild(span3);
SpanElement span4 = taggedContent.CreateSpanElement();
span4.SetText("Cras pellentesque libero semper, gravida magna sed, luctus leo. ");
p.AppendChild(span4);
SpanElement span5 = taggedContent.CreateSpanElement();
span5.SetText("Fusce lectus odio, laoreet nec ullamcorper ut, molestie eu elit. ");
p.AppendChild(span5);
SpanElement span6 = taggedContent.CreateSpanElement();
span6.SetText("Interdum et malesuada fames ac ante ipsum primis in faucibus. ");
p.AppendChild(span6);
SpanElement span7 = taggedContent.CreateSpanElement();
span7.SetText("Aliquam lacinia sit amet elit ac consectetur. Donec cursus condimentum ligula, vitae volutpat sem tristique eget. ");
p.AppendChild(span7);
SpanElement span8 = taggedContent.CreateSpanElement();
span8.SetText("Nulla in consectetur massa. Vestibulum vitae lobortis ante. Nulla ullamcorper pellentesque justo rhoncus accumsan. ");
p.AppendChild(span8);
SpanElement span9 = taggedContent.CreateSpanElement();
span9.SetText("Mauris ornare eu odio non lacinia. Aliquam massa leo, rhoncus ac iaculis eget, tempus et magna. Sed non consectetur elit. ");
p.AppendChild(span9);
SpanElement span10 = taggedContent.CreateSpanElement();
span10.SetText("Sed vulputate, quam sed lacinia luctus, ipsum nibh fringilla purus, vitae posuere risus odio id massa. Cras sed venenatis lacus.");
p.AppendChild(span10);

// タグ付きPdfドキュメントを保存
document.Save(dataDir + "InlineStructureElements.pdf");

カスタムタグ名の設定

タグ付きPDFドキュメントの要素のカスタムタグ名を設定するために、Aspose.PDFはStructureElementクラスの要素のためのSetTagメソッドを提供しています。以下のコードスニペットは、カスタムタグ名を設定する方法を示しています:

// 完全な例とデータファイルについては、https://github.com/aspose-pdf/Aspose.PDF-for-.NET をご覧ください
// ドキュメントディレクトリへのパス。
string dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();

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

// TaggedPdfで作業するためのコンテンツを取得
ITaggedContent taggedContent = document.TaggedContent;

// ドキュメントのタイトルと言語を設定
taggedContent.SetTitle("タグ付きPDFドキュメント");
taggedContent.SetLanguage("en-US");

// 論理構造要素を作成
SectElement sect = taggedContent.CreateSectElement();
taggedContent.RootElement.AppendChild(sect);

ParagraphElement p1 = taggedContent.CreateParagraphElement();
ParagraphElement p2 = taggedContent.CreateParagraphElement();
ParagraphElement p3 = taggedContent.CreateParagraphElement();
ParagraphElement p4 = taggedContent.CreateParagraphElement();

p1.SetText("P1. ");
p2.SetText("P2. ");
p3.SetText("P3. ");
p4.SetText("P4. ");

p1.SetTag("P1");
p2.SetTag("Para");
p3.SetTag("Para");
p4.SetTag("Paragraph");

sect.AppendChild(p1);
sect.AppendChild(p2);
sect.AppendChild(p3);
sect.AppendChild(p4);

SpanElement span1 = taggedContent.CreateSpanElement();
SpanElement span2 = taggedContent.CreateSpanElement();
SpanElement span3 = taggedContent.CreateSpanElement();
SpanElement span4 = taggedContent.CreateSpanElement();

span1.SetText("スパン 1.");
span2.SetText("スパン 2.");
span3.SetText("スパン 3.");
span4.SetText("スパン 4.");

span1.SetTag("SPAN");
span2.SetTag("Sp");
span3.SetTag("Sp");
span4.SetTag("TheSpan");

p1.AppendChild(span1);
p2.AppendChild(span2);
p3.AppendChild(span3);
p4.AppendChild(span4);

// タグ付きPDFドキュメントを保存
document.Save(dataDir + "CustomTag.pdf");

要素に構造要素を追加する

この機能はバージョン19.4以降でサポートされています。

タグ付きPDF文書にリンク構造要素を設定するために、Aspose.PDFはITaggedContentインターフェイスのCreateLinkElementメソッドを提供しています。次のコードスニペットは、タグ付きPDF文書のテキストを段落に設定する方法を示しています:

// 完全な例とデータファイルについては、https://github.com/aspose-pdf/Aspose.PDF-for-.NET にアクセスしてください。
// ドキュメントディレクトリへのパス。
string dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();
string outFile = dataDir + "LinkStructureElements_Output.pdf";
string logFile = dataDir + "46035_log.xml";
string imgFile = dataDir + "google-icon-512.png";

// ドキュメントの作成とタグ付きPdfコンテンツの取得
Document document = new Document();
ITaggedContent taggedContent = document.TaggedContent;


// ドキュメントのタイトルと自然言語の設定
taggedContent.SetTitle("Link Elements Example");
taggedContent.SetLanguage("en-US");

// ルート構造要素(ドキュメント構造要素)の取得
StructureElement rootElement = taggedContent.RootElement;


ParagraphElement p1 = taggedContent.CreateParagraphElement();
rootElement.AppendChild(p1);
LinkElement link1 = taggedContent.CreateLinkElement();
p1.AppendChild(link1);
link1.Hyperlink = new WebHyperlink("http://google.com");
link1.SetText("Google");
link1.AlternateDescriptions = "Googleへのリンク";


ParagraphElement p2 = taggedContent.CreateParagraphElement();
rootElement.AppendChild(p2);
LinkElement link2 = taggedContent.CreateLinkElement();
p2.AppendChild(link2);
link2.Hyperlink = new WebHyperlink("http://google.com");
SpanElement span2 = taggedContent.CreateSpanElement();
span2.SetText("Google");
link2.AppendChild(span2);
link2.AlternateDescriptions = "Googleへのリンク";


ParagraphElement p3 = taggedContent.CreateParagraphElement();
rootElement.AppendChild(p3);
LinkElement link3 = taggedContent.CreateLinkElement();
p3.AppendChild(link3);
link3.Hyperlink = new WebHyperlink("http://google.com");
SpanElement span31 = taggedContent.CreateSpanElement();
span31.SetText("G");
SpanElement span32 = taggedContent.CreateSpanElement();
span32.SetText("oogle");
link3.AppendChild(span31);
link3.SetText("-");
link3.AppendChild(span32);
link3.AlternateDescriptions = "Googleへのリンク";


ParagraphElement p4 = taggedContent.CreateParagraphElement();
rootElement.AppendChild(p4);
LinkElement link4 = taggedContent.CreateLinkElement();
p4.AppendChild(link4);
link4.Hyperlink = new WebHyperlink("http://google.com");
link4.SetText("複数行リンク: Google Google Google Google Google Google Google Google Google Google Google Google Google Google Google Google Google Google Google Google");
link4.AlternateDescriptions = "Googleへのリンク(複数行)";


ParagraphElement p5 = taggedContent.CreateParagraphElement();
rootElement.AppendChild(p5);
LinkElement link5 = taggedContent.CreateLinkElement();
p5.AppendChild(link5);
link5.Hyperlink = new WebHyperlink("http://google.com");
FigureElement figure5 = taggedContent.CreateFigureElement();
figure5.SetImage(imgFile, 1200);
figure5.AlternativeText = "Googleアイコン";
StructureAttributes linkLayoutAttributes = link5.Attributes.GetAttributes(AttributeOwnerStandard.Layout);
StructureAttribute placementAttribute = new StructureAttribute(AttributeKey.Placement);
placementAttribute.SetNameValue(AttributeName.Placement_Block);
linkLayoutAttributes.SetAttribute(placementAttribute);
link5.AppendChild(figure5);
link5.AlternateDescriptions = "Googleへのリンク";


// タグ付きPdf文書の保存
document.Save(outFile);

// PDF/UA準拠のチェック
document = new Document(outFile);
bool isPdfUaCompliance = document.Validate(logFile, PdfFormat.PDF_UA_1);
Console.WriteLine(String.Format("PDF/UA準拠: {0}", isPdfUaCompliance));

リンク構造要素の設定

この機能はバージョン19.4以降でサポートされています。

Aspose.PDF for .NET APIでは、リンク構造要素を追加することもできます。次のコードスニペットは、タグ付きPDFドキュメントにリンク構造要素を追加する方法を示しています:

// 完全な例とデータファイルについては、https://github.com/aspose-pdf/Aspose.PDF-for-.NET をご覧ください
// ドキュメントディレクトリへのパスです。
string dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();
string outFile = dataDir + "AddStructureElementIntoElement_Output.pdf";
string logFile = dataDir + "46144_log.xml";

// ドキュメントの作成とタグ付けされたPDFコンテンツの取得
Document document = new Document();
ITaggedContent taggedContent = document.TaggedContent;


// ドキュメントのタイトルと自然言語の設定
taggedContent.SetTitle("Text Elements Example");
taggedContent.SetLanguage("en-US");

// ルート構造要素(ドキュメント構造要素)の取得
StructureElement rootElement = taggedContent.RootElement;


ParagraphElement p1 = taggedContent.CreateParagraphElement();
rootElement.AppendChild(p1);
SpanElement span11 = taggedContent.CreateSpanElement();
span11.SetText("Span_11");
SpanElement span12 = taggedContent.CreateSpanElement();
span12.SetText(" and Span_12.");
p1.SetText("Paragraph with ");
p1.AppendChild(span11);
p1.AppendChild(span12);


ParagraphElement p2 = taggedContent.CreateParagraphElement();
rootElement.AppendChild(p2);
SpanElement span21 = taggedContent.CreateSpanElement();
span21.SetText("Span_21");
SpanElement span22 = taggedContent.CreateSpanElement();
span22.SetText("Span_22.");
p2.AppendChild(span21);
p2.SetText(" and ");
p2.AppendChild(span22);


ParagraphElement p3 = taggedContent.CreateParagraphElement();
rootElement.AppendChild(p3);
SpanElement span31 = taggedContent.CreateSpanElement();
span31.SetText("Span_31");
SpanElement span32 = taggedContent.CreateSpanElement();
span32.SetText(" and Span_32");
p3.AppendChild(span31);
p3.AppendChild(span32);
p3.SetText(".");


ParagraphElement p4 = taggedContent.CreateParagraphElement();
rootElement.AppendChild(p4);
SpanElement span41 = taggedContent.CreateSpanElement();
SpanElement span411 = taggedContent.CreateSpanElement();
span411.SetText("Span_411, ");
span41.SetText("Span_41, ");
span41.AppendChild(span411);
SpanElement span42 = taggedContent.CreateSpanElement();
SpanElement span421 = taggedContent.CreateSpanElement();
span421.SetText("Span 421 and ");
span42.AppendChild(span421);
span42.SetText("Span_42");
p4.AppendChild(span41);
p4.AppendChild(span42);
p4.SetText(".");


// タグ付きPDFドキュメントを保存
document.Save(outFile);

// PDF/UAコンプライアンスの確認
document = new Document(outFile);
bool isPdfUaCompliance = document.Validate(logFile, PdfFormat.PDF_UA_1);
Console.WriteLine(String.Format("PDF/UAコンプライアンス: {0}", isPdfUaCompliance));

ノート構造要素の設定

Aspose.PDF for .NET APIでは、タグ付きPDFドキュメントにNoteElementを追加することもできます。以下のコードスニペットは、タグ付きPDFドキュメントにノート要素を追加する方法を示しています:

// 完全な例とデータファイルについては、https://github.com/aspose-pdf/Aspose.PDF-for-.NET にアクセスしてください。
// ドキュメントディレクトリへのパス。
string dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();
string outFile = dataDir + "45929_doc.pdf";
string logFile = dataDir + "45929_log.xml";

// PDFドキュメントを作成
Document document = new Document();
ITaggedContent taggedContent = document.TaggedContent;

taggedContent.SetTitle("ノート要素のサンプル");
taggedContent.SetLanguage("en-US");

// 段落要素を追加
ParagraphElement paragraph = taggedContent.CreateParagraphElement();
taggedContent.RootElement.AppendChild(paragraph);

// NoteElementを追加
NoteElement note1 = taggedContent.CreateNoteElement();
paragraph.AppendChild(note1);
note1.SetText("自動生成IDのノート。");

// NoteElementを追加
NoteElement note2 = taggedContent.CreateNoteElement();
paragraph.AppendChild(note2);
note2.SetText("ID = 'note_002'のノート。");
note2.SetId("note_002");

// NoteElementを追加
NoteElement note3 = taggedContent.CreateNoteElement();
paragraph.AppendChild(note3);
note3.SetText("ID = 'note_003'のノート。");
note3.SetId("note_003");

// 例外を投げる必要がある - Aspose.Pdf.Tagged.TaggedException : ID='note_002'の構造要素はすでに存在します
//note3.SetId("note_002");

// ノート構造要素にClearId()を使用した場合、結果のドキュメントはPDF/UAに準拠していません
//note3.ClearId();


// タグ付きPDFドキュメントを保存
document.Save(outFile);

// PDF/UA準拠をチェック
document = new Document(outFile);
bool isPdfUaCompliance = document.Validate(logFile, PdfFormat.PDF_UA_1);
Console.WriteLine(String.Format("PDF/UA準拠:{0}", isPdfUaCompliance));

言語とタイトルの設定

この機能はバージョン19.6以降でサポートされています。

Aspose.PDF for .NET APIでは、PDF/UA仕様に従ってドキュメントの言語とタイトルを設定することもできます。言語はドキュメント全体またはその個別の構造要素に対して設定できます。以下のコードスニペットは、タグ付きPDFドキュメントで言語とタイトルを設定する方法を示しています:

// 完全な例とデータファイルについては、https://github.com/aspose-pdf/Aspose.PDF-for-.NET をご覧ください
Document document = new Document();
// ドキュメントディレクトリへのパス。
string dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();

// タグ付きコンテンツを取得
Tagged.ITaggedContent taggedContent = document.TaggedContent;

// タイトルと言語の設定
taggedContent.SetTitle("例のタグ付きドキュメント");
taggedContent.SetLanguage("en-US");

// ヘッダー(en-US, ドキュメントから継承)
LogicalStructure.HeaderElement h1 = taggedContent.CreateHeaderElement(1);
h1.SetText("さまざまな言語のフレーズ");
taggedContent.RootElement.AppendChild(h1);

// パラグラフ(英語)
LogicalStructure.ParagraphElement pEN = taggedContent.CreateParagraphElement();
pEN.SetText("Hello, World!");
pEN.Language = "en-US";
taggedContent.RootElement.AppendChild(pEN);

// パラグラフ(ドイツ語)
LogicalStructure.ParagraphElement pDE = taggedContent.CreateParagraphElement();
pDE.SetText("Hallo Welt!");
pDE.Language = "de-DE";
taggedContent.RootElement.AppendChild(pDE);

// パラグラフ(フランス語)
LogicalStructure.ParagraphElement pFR = taggedContent.CreateParagraphElement();
pFR.SetText("Bonjour le monde!");
pFR.Language = "fr-FR";
taggedContent.RootElement.AppendChild(pFR);

// パラグラフ(スペイン語)
LogicalStructure.ParagraphElement pSP = taggedContent.CreateParagraphElement();
pSP.SetText("¡Hola Mundo!");
pSP.Language = "es-ES";
taggedContent.RootElement.AppendChild(pSP);

// タグ付きPDFドキュメントを保存
document.Save(dataDir + "SetupLanguageAndTitle.pdf");