Créer des fichiers PDF balisés en Java

Un fichier PDF balisé utilise des balises pour définir la structure logique du contenu du document. Ce type de PDF améliore l’expérience de lecture à l’aide de technologies d’assistance et de lecteurs d’écran. Dans le article précédent, vous avez vu comment créer des fichiers PDF par programmation dans des applications Java. Dans cet article, vous apprendrez à créer des fichiers PDF balisés par programmation en Java.

API Java pour créer des fichiers PDF balisés

Pour créer les fichiers PDF balisés, nous utiliserons Aspose.PDF for Java. C’est l’une des API populaires pour la génération et la manipulation de PDF. À l’aide de l’API, vous pouvez créer, traiter et convertir en toute transparence des fichiers PDF de mises en page simples et complexes. Vous pouvez télécharger l’API ou l’installer à l’aide des configurations Maven suivantes.

Repository:

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>

Dependency:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-pdf</artifactId>
    <version>22.4</version>
</dependency>

Créer un fichier PDF balisé en Java

Pour créer des éléments de structure dans un PDF balisé, Aspose.PDF for Java fournit l’interface ITaggedContent. Voyons donc comment utiliser cette interface pour créer un fichier PDF balisé en Java.

L’exemple de code suivant montre comment créer un PDF balisé en Java.

// Créer un nouveau document
Document document = new Document();

// Obtenir du contenu pour travailler avec un PDF balisé
ITaggedContent taggedContent = document.getTaggedContent();
StructureElement rootElement = taggedContent.getRootElement();
            
// Définir le titre et la langue du document
taggedContent.setTitle("Tagged Pdf Document");
taggedContent.setLanguage("en-US");

// Ajouter un en-tête
HeaderElement mainHeader = taggedContent.createHeaderElement();
mainHeader.setText("Main Header");

// Ajouter un paragraphe
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);

// Enregistrer le PDF balisé
document.save("tagged-pdf.pdf");

Voici la sortie de l’exemple de code ci-dessus.

Créer un fichier PDF balisé en Java

Créer un PDF balisé avec des éléments imbriqués en Java

Dans l’exemple précédent, nous avons créé un simple PDF balisé contenant un paragraphe. Voyons maintenant comment ajouter des éléments imbriqués dans un PDF balisé. Voici les étapes pour effectuer cette opération.

L’exemple de code suivant montre comment ajouter des éléments imbriqués dans un PDF balisé en Java.

// Créer un nouveau document
Document document = new Document();

// Obtenir du contenu pour travailler avec un PDF balisé
ITaggedContent taggedContent = document.getTaggedContent();
StructureElement rootElement = taggedContent.getRootElement();
            
// Définir le titre et la langue du document
taggedContent.setTitle("Tagged Pdf Document");
taggedContent.setLanguage("en-US");

// Ajouter un en-tête
HeaderElement mainHeader = taggedContent.createHeaderElement();
mainHeader.setText("Main Header");

// Créer un paragraphe
ParagraphElement paragraphWithQuotes = taggedContent.createParagraphElement();
paragraphWithQuotes.getStructureTextState().setFont(FontRepository.findFont("Calibri"));
paragraphWithQuotes.getStructureTextState().setMarginInfo(new MarginInfo(10, 5, 10, 5));

// Ajouter un élément span
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.getStructureTextState().setFontStyle(FontStyles.Bold | FontStyles.Italic);
SpanElement spanElement2 = taggedContent.createSpanElement();
spanElement2.setText(" Sed non consectetur elit.");

// Ajouter au paragraphe
paragraphWithQuotes.appendChild(spanElement1);
paragraphWithQuotes.appendChild(quoteElement);
paragraphWithQuotes.appendChild(spanElement2);

rootElement.appendChild(mainHeader);
rootElement.appendChild(paragraphWithQuotes);

// Enregistrer le PDF balisé
document.save("tagged-pdf.pdf");

La capture d’écran suivante montre le PDF balisé avec des éléments imbriqués.

Créer un PDF balisé avec des éléments imbriqués en Java

Styler la structure du texte dans un PDF balisé

Vous pouvez également appliquer un style au texte dans un PDF balisé en définissant le style de police, la famille, la taille, etc. Pour cela, Aspose.PDF for Java vous permet de définir la police, la taille de police, le style de police et la couleur de premier plan à l’aide de StructureTextState classe. L’exemple de code suivant montre comment appliquer un style de texte dans un PDF balisé en Java.

// Créer un nouveau document
Document document = new Document();

// Obtenir du contenu pour travailler avec un PDF balisé
ITaggedContent taggedContent = document.getTaggedContent();
StructureElement rootElement = taggedContent.getRootElement();
            
// Définir le titre et la langue du document
taggedContent.setTitle("Tagged Pdf Document");
taggedContent.setLanguage("en-US");

// Ajouter un en-tête
HeaderElement mainHeader = taggedContent.createHeaderElement();
mainHeader.setText("Main Header");

// Créer un paragraphe
ParagraphElement paragraphWithQuotes = taggedContent.createParagraphElement();
taggedContent.getRootElement().appendChild(paragraphWithQuotes);

// Définir le style
paragraphWithQuotes.getStructureTextState().setFontSize(18F);
paragraphWithQuotes.getStructureTextState().setForegroundColor(Color.getRed());
paragraphWithQuotes.getStructureTextState().setFontStyle(FontStyles.Italic);
            
// Ajouter du texte
paragraphWithQuotes.setText("Red italic text.");

// Enregistrer le PDF balisé
document.save("tagged-pdf.pdf");

Illustration des éléments de structure dans un PDF balisé en Java

Pour illustrer les éléments de structure, Aspose.PDF for Java fournit la classe IllustrationElement. L’exemple de code suivant montre comment utiliser cette classe pour illustrer les éléments de structure dans un PDF balisé.

// Créer un nouveau document
Document document = new Document();

// Obtenir du contenu pour travailler avec un PDF balisé
ITaggedContent taggedContent = document.getTaggedContent();
StructureElement rootElement = taggedContent.getRootElement();
            
// Définir le titre et la langue du document
taggedContent.setTitle("Tagged Pdf Document");
taggedContent.setLanguage("en-US");

// Créer un élément d'illustration
IllustrationElement figure1 = taggedContent.createFigureElement();
taggedContent.getRootElement().appendChild(figure1);
figure1.setAlternativeText( "Figure One");
figure1.setTitle("Image 1");
figure1.setTag("Fig1");
figure1.setImage("aspose_pdf.png");

// Enregistrer le PDF balisé
document.save("tagged-pdf.pdf");

Obtenez une licence gratuite

Vous pouvez obtenir une licence temporaire gratuite afin d’utiliser Aspose.PDF for Java sans limitations d’évaluation.

Conclusion

Dans cet article, vous avez appris à créer des fichiers PDF balisés en Java. De plus, vous avez vu comment créer des éléments imbriqués, appliquer un style au texte et illustrer par programmation des éléments de structure dans un PDF balisé. De plus, vous pouvez en savoir plus sur l’API Java PDF à l’aide de la documentation. Si vous avez des questions ou des questions, vous pouvez nous contacter via notre forum.

Voir également