Définition des propriétés des éléments de structure
Afin de définir les propriétés des éléments de structure dans un document PDF balisé, Aspose.PDF propose les méthodes CreateSectElement et CreateHeaderElement de l’interface ITaggedContent.
Le fragment de code suivant montre comment définir les propriétés des éléments de structure d’un document PDF balisé :
// Pour des exemples complets et des fichiers de données, veuillez aller à https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Le chemin vers le répertoire des documents.
string dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();
// Créer un document PDF
Document document = new Document();
// Obtenir le contenu pour travailler avec TaggedPdf
ITaggedContent taggedContent = document.TaggedContent;
// Définir le titre et la langue pour le document
taggedContent.SetTitle("Document PDF balisé");
taggedContent.SetLanguage("en-US");
// Créer des éléments de structure
StructureElement rootElement = taggedContent.RootElement;
SectElement sect = taggedContent.CreateSectElement();
rootElement.AppendChild(sect);
HeaderElement h1 = taggedContent.CreateHeaderElement(1);
sect.AppendChild(h1);
h1.SetText("L'en-tête");
h1.Title = "Titre";
h1.Language = "en-US";
h1.AlternativeText = "Texte alternatif";
h1.ExpansionText = "Texte d'expansion";
h1.ActualText = "Texte actuel";
// Sauvegarder le document PDF balisé
document.Save(dataDir + "StructureElementsProperties.pdf");
Définition des éléments de structure de texte
Pour définir les éléments de structure de texte d’un document PDF tagué, Aspose.PDF propose la classe ParagraphElement. Le fragment de code suivant montre comment définir les éléments de structure de texte d’un document PDF tagué :
// Pour des exemples complets et des fichiers de données, veuillez aller sur https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Le chemin vers le répertoire des documents.
string dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();
// Créer un document PDF
Document document = new Document();
// Obtenir le contenu pour travailler avec TaggedPdf
ITaggedContent taggedContent = document.TaggedContent;
// Définir le titre et la langue pour le document
taggedContent.SetTitle("Document PDF tagué");
taggedContent.SetLanguage("en-US");
// Obtenir les éléments de structure racine
StructureElement rootElement = taggedContent.RootElement;
ParagraphElement p = taggedContent.CreateParagraphElement();
// Définir le texte pour l'élément de structure de texte
p.SetText("Paragraphe.");
rootElement.AppendChild(p);
// Sauvegarder le document PDF tagué
document.Save(dataDir + "TextStructureElement.pdf");
Définir les éléments de structure de bloc de texte
Pour définir les éléments de structure de bloc de texte d’un document PDF tagué, Aspose.PDF propose les classes HeaderElement et ParagraphElement. Vous pouvez ajouter des objets de ces classes en tant qu’enfant d’un objet StructureElement. Le fragment de code suivant montre comment définir les éléments de structure de bloc de texte d’un document PDF tagué :
// Pour des exemples complets et des fichiers de données, veuillez aller sur https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Le chemin vers le répertoire des documents.
string dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();
// Créer un document PDF
Document document = new Document();
// Obtenir le contenu pour travailler avec TaggedPdf
ITaggedContent taggedContent = document.TaggedContent;
// Définir le titre et la langue pour le document
taggedContent.SetTitle("Document PDF tagué");
taggedContent.SetLanguage("en-US");
// Obtenir l'élément de structure racine
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. En-tête de niveau 1");
h2.SetText("H2. En-tête de niveau 2");
h3.SetText("H3. En-tête de niveau 3");
h4.SetText("H4. En-tête de niveau 4");
h5.SetText("H5. En-tête de niveau 5");
h6.SetText("H6. En-tête de niveau 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);
// Sauvegarder le document PDF tagué
document.Save(dataDir + "TextBlockStructureElements.pdf");
Définition des éléments de structure en ligne
Pour définir les éléments de structure en ligne d’un document PDF balisé, Aspose.PDF propose les classes SpanElement et ParagraphElement. Vous pouvez ajouter des objets de ces classes en tant qu’enfant d’un objet StructureElement. Le fragment de code suivant montre comment définir les éléments de structure en ligne d’un document PDF balisé :
// Pour des exemples complets et des fichiers de données, veuillez aller à https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Le chemin vers le répertoire des documents.
string dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();
// Créer un document PDF
Document document = new Document();
// Obtenir le contenu pour travailler avec TaggedPdf
ITaggedContent taggedContent = document.TaggedContent;
// Définir le titre et la langue pour le document
taggedContent.SetTitle("Document PDF balisé");
taggedContent.SetLanguage("en-US");
// Obtenir l'élément de structure racine
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("En-tête de niveau 1");
h1.AppendChild(spanH12);
SpanElement spanH21 = taggedContent.CreateSpanElement();
spanH21.SetText("H2. ");
h2.AppendChild(spanH21);
SpanElement spanH22 = taggedContent.CreateSpanElement();
spanH22.SetText("En-tête de niveau 2");
h2.AppendChild(spanH22);
SpanElement spanH31 = taggedContent.CreateSpanElement();
spanH31.SetText("H3. ");
h3.AppendChild(spanH31);
SpanElement spanH32 = taggedContent.CreateSpanElement();
spanH32.SetText("En-tête de niveau 3");
h3.AppendChild(spanH32);
SpanElement spanH41 = taggedContent.CreateSpanElement();
spanH41.SetText("H4. ");
h4.AppendChild(spanH41);
SpanElement spanH42 = taggedContent.CreateSpanElement();
spanH42.SetText("En-tête de niveau 4");
h4.AppendChild(spanH42);
SpanElement spanH51 = taggedContent.CreateSpanElement();
spanH51.SetText("H5. ");
h5.AppendChild(spanH51);
SpanElement spanH52 = taggedContent.CreateSpanElement();
spanH52.SetText("En-tête de niveau 5");
h5.AppendChild(spanH52);
SpanElement spanH61 = taggedContent.CreateSpanElement();
spanH61.SetText("H6. ");
h6.AppendChild(spanH61);
SpanElement spanH62 = taggedContent.CreateSpanElement();
spanH62.SetText("En-tête de niveau 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);
// Enregistrer le document PDF balisé
document.Save(dataDir + "InlineStructureElements.pdf");
Définir un nom de balise personnalisé
Afin de définir un nom de balise personnalisé pour les éléments d’un document PDF balisé, Aspose.PDF offre la méthode SetTag de la classe StructureElement pour les éléments. Le fragment de code suivant montre comment définir un nom de balise personnalisé :
// Pour des exemples complets et des fichiers de données, veuillez aller à https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Le chemin vers le répertoire des documents.
string dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();
// Créer un document PDF
Document document = new Document();
// Obtenir le contenu pour travailler avec TaggedPdf
ITaggedContent taggedContent = document.TaggedContent;
// Définir le titre et la langue pour le document
taggedContent.SetTitle("Document PDF balisé");
taggedContent.SetLanguage("en-US");
// Créer des éléments de structure logique
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("Span 1.");
span2.SetText("Span 2.");
span3.SetText("Span 3.");
span4.SetText("Span 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);
// Sauvegarder le document PDF balisé
document.Save(dataDir + "CustomTag.pdf");
Ajout d’un élément de structure dans les éléments
Cette fonctionnalité est prise en charge par la version 19.4 ou supérieure.
Afin de définir des éléments de structure de lien dans un document PDF balisé, Aspose.PDF propose la méthode CreateLinkElement de l’interface ITaggedContent. Le fragment de code suivant montre comment définir des éléments de structure dans un paragraphe avec du texte d’un document PDF balisé :
// Pour des exemples complets et des fichiers de données, veuillez aller sur https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Le chemin vers le répertoire des documents.
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";
// Création du document et obtention du contenu PDF balisé
Document document = new Document();
ITaggedContent taggedContent = document.TaggedContent;
// Définition du titre et de la langue naturelle pour le document
taggedContent.SetTitle("Exemple d'éléments de lien");
taggedContent.SetLanguage("en-US");
// Obtention de l'élément de structure racine (élément de structure du document)
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 = "Lien vers 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 = "Lien vers 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 = "Lien vers Google";
ParagraphElement p4 = taggedContent.CreateParagraphElement();
rootElement.AppendChild(p4);
LinkElement link4 = taggedContent.CreateLinkElement();
p4.AppendChild(link4);
link4.Hyperlink = new WebHyperlink("http://google.com");
link4.SetText("Le lien multiligne : Google Google Google Google Google Google Google Google Google Google Google Google Google Google Google Google Google Google Google Google");
link4.AlternateDescriptions = "Lien vers Google (multiligne)";
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 = "Icône 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 = "Lien vers Google";
// Sauvegarde du document PDF balisé
document.Save(outFile);
// Vérification de la conformité PDF/UA
document = new Document(outFile);
bool isPdfUaCompliance = document.Validate(logFile, PdfFormat.PDF_UA_1);
Console.WriteLine(String.Format("Conformité PDF/UA : {0}", isPdfUaCompliance));
Définir l’élément de structure de lien
Cette fonctionnalité est prise en charge par la version 19.4 ou supérieure.
L’API Aspose.PDF pour .NET permet également d’ajouter des éléments de structure de lien. Le fragment de code suivant montre comment ajouter un élément de structure de lien dans un document PDF balisé :
// Pour des exemples complets et des fichiers de données, veuillez aller à https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Le chemin vers le répertoire des documents.
string dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();
string outFile = dataDir + "AddStructureElementIntoElement_Output.pdf";
string logFile = dataDir + "46144_log.xml";
// Création du document et obtention du contenu PDF balisé
Document document = new Document();
ITaggedContent taggedContent = document.TaggedContent;
// Définition du titre et de la langue naturelle pour le document
taggedContent.SetTitle("Exemple d'éléments de texte");
taggedContent.SetLanguage("en-US");
// Obtention de l'élément de structure racine (élément de structure du document)
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(" et Span_12.");
p1.SetText("Paragraphe avec ");
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(" et ");
p2.AppendChild(span22);
ParagraphElement p3 = taggedContent.CreateParagraphElement();
rootElement.AppendChild(p3);
SpanElement span31 = taggedContent.CreateSpanElement();
span31.SetText("Span_31");
SpanElement span32 = taggedContent.CreateSpanElement();
span32.SetText(" et 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 et ");
span42.AppendChild(span421);
span42.SetText("Span_42");
p4.AppendChild(span41);
p4.AppendChild(span42);
p4.SetText(".");
// Sauvegarde du document PDF balisé
document.Save(outFile);
// Vérification de la conformité PDF/UA
document = new Document(outFile);
bool isPdfUaCompliance = document.Validate(logFile, PdfFormat.PDF_UA_1);
Console.WriteLine(String.Format("Conformité PDF/UA : {0}", isPdfUaCompliance));
Définition de la structure de l’élément Note
Aspose.PDF pour l’API .NET permet également d’ajouter un NoteElement dans un document PDF balisé. Le fragment de code suivant montre comment ajouter un élément de note dans un document PDF balisé :
// Pour des exemples complets et des fichiers de données, veuillez aller sur https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Le chemin vers le répertoire des documents.
string dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();
string outFile = dataDir + "45929_doc.pdf";
string logFile = dataDir + "45929_log.xml";
// Créer un document PDF
Document document = new Document();
ITaggedContent contenuBalise = document.TaggedContent;
contenuBalise.SetTitle("Exemple d'éléments Note");
contenuBalise.SetLanguage("en-US");
// Ajouter un élément Paragraphe
ParagraphElement paragraphe = contenuBalise.CreateParagraphElement();
contenuBalise.RootElement.AppendChild(paragraphe);
// Ajouter NoteElement
NoteElement note1 = contenuBalise.CreateNoteElement();
paragraphe.AppendChild(note1);
note1.SetText("Note avec ID généré automatiquement. ");
// Ajouter NoteElement
NoteElement note2 = contenuBalise.CreateNoteElement();
paragraphe.AppendChild(note2);
note2.SetText("Note avec ID = 'note_002'. ");
note2.SetId("note_002");
// Ajouter NoteElement
NoteElement note3 = contenuBalise.CreateNoteElement();
paragraphe.AppendChild(note3);
note3.SetText("Note avec ID = 'note_003'. ");
note3.SetId("note_003");
// Doit lancer une exception - Aspose.Pdf.Tagged.TaggedException : Un élément de structure avec l'ID='note_002' existe déjà
//note3.SetId("note_002");
// Le document résultant n'est pas conforme à PDF/UA si ClearId() est utilisé pour l'élément de structure Note
//note3.ClearId();
// Sauvegarder le document PDF balisé
document.Save(outFile);
// Vérification de la conformité PDF/UA
document = new Document(outFile);
bool isPdfUaCompliance = document.Validate(logFile, PdfFormat.PDF_UA_1);
Console.WriteLine(String.Format("Conformité PDF/UA : {0}", isPdfUaCompliance));
Définition de la langue et du titre
Cette fonctionnalité est prise en charge par la version 19.6 ou supérieure.
L’API Aspose.PDF pour .NET permet également de définir la langue et le titre d’un document conformément à la spécification PDF/UA. La langue peut être configurée pour l’ensemble du document comme pour ses éléments structurels séparés. Le fragment de code suivant montre comment définir la langue et le titre dans un document PDF balisé :
// Pour des exemples complets et des fichiers de données, veuillez aller sur https://github.com/aspose-pdf/Aspose.PDF-for-.NET
Document document = new Document();
// Le chemin vers le répertoire des documents.
string dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();
// Obtenir TaggedContent
Tagged.ITaggedContent taggedContent = document.TaggedContent;
// Définir le titre et la langue
taggedContent.SetTitle("Document balisé exemple");
taggedContent.SetLanguage("en-US");
// En-tête (en-US, hérité du document)
LogicalStructure.HeaderElement h1 = taggedContent.CreateHeaderElement(1);
h1.SetText("Phrase dans différentes langues");
taggedContent.RootElement.AppendChild(h1);
// Paragraphe (anglais)
LogicalStructure.ParagraphElement pEN = taggedContent.CreateParagraphElement();
pEN.SetText("Hello, World!");
pEN.Language = "en-US";
taggedContent.RootElement.AppendChild(pEN);
// Paragraphe (allemand)
LogicalStructure.ParagraphElement pDE = taggedContent.CreateParagraphElement();
pDE.SetText("Hallo Welt!");
pDE.Language = "de-DE";
taggedContent.RootElement.AppendChild(pDE);
// Paragraphe (français)
LogicalStructure.ParagraphElement pFR = taggedContent.CreateParagraphElement();
pFR.SetText("Bonjour le monde!");
pFR.Language = "fr-FR";
taggedContent.RootElement.AppendChild(pFR);
// Paragraphe (espagnol)
LogicalStructure.ParagraphElement pSP = taggedContent.CreateParagraphElement();
pSP.SetText("¡Hola Mundo!");
pSP.Language = "es-ES";
taggedContent.RootElement.AppendChild(pSP);
// Sauvegarde du document PDF balisé
document.Save(dataDir + "SetupLanguageAndTitle.pdf");