Dans cet article, vous apprendrez à créer un fichier PDF à partir de zéro par programme en Java.

Créer des documents PDF à l'aide de Java

PDF est devenu un format de fichier couramment utilisé pour créer différents types de documents. Diverses industries ont adopté l’automatisation PDF pour la génération de documents tels que les reçus, les factures, les rapports commerciaux, etc. En gardant un œil sur ces scénarios, cet article explique comment créer des fichiers PDF en Java. Les exemples de code montreront comment créer un fichier PDF à partir de zéro et insérer du texte, des images, des tableaux et d’autres éléments dans ce PDF en Java.

API Java pour créer un PDF - Téléchargement gratuit

Aspose.PDF for Java est une API de manipulation de fichiers PDF qui vous permet de créer des fichiers PDF à partir des applications Java. À l’aide de l’API, vous pouvez créer des documents PDF simples et complexes. Aspose.PDF for Java peut être téléchargé en tant que JAR ou installé dans des applications basées sur Maven.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-pdf</artifactId>
    <version>20.11</version>
    <classifier>jdk17</classifier>
</dependency>

Créer un fichier PDF en Java

Voici les étapes pour générer un fichier PDF simple à partir de zéro et y insérer un morceau de texte.

L’exemple de code suivant montre comment créer un fichier PDF à l’aide de Java.

// Pour des exemples complets et des fichiers de données, rendez-vous sur https://github.com/aspose-pdf/Aspose.PDF-for-Java
// Initialiser l'objet document
Document document = new Document();
 
//Ajouter une page
Page page = document.getPages().add();
 
// Ajouter du texte à une nouvelle page
page.getParagraphs().add(new TextFragment("Hello World!"));
 
// Enregistrer le PDF mis à jour
document.save("HelloWorld_out.pdf");

Créer un fichier PDF avec formatage de texte en Java

Voyons maintenant comment appliquer la mise en forme au texte du document PDF. La mise en forme du texte peut inclure la police, la taille de la police, la couleur, la position, etc. Voici les étapes pour effectuer cette opération.

  • Utilisez la classe Document pour créer un nouveau document PDF ou en charger un existant.
  • Accédez à la Page sur laquelle vous souhaitez placer le texte.
  • Créez un objet de TextFragment pour définir le texte et d’autres options de formatage telles que la position, la police, la couleur, la taille, etc.
  • Utilisez la classe TextBuilder pour ajouter l’objet TextFragment à la page.
  • Utilisez la méthode Document.save(String) pour enregistrer le document PDF.

L’exemple de code suivant montre comment créer un fichier PDF et appliquer une mise en forme de texte à l’aide de Java.

// Charger le document PDF
Document document = new Document();

// Ajouter une page
Page page = document.getPages().add();

// Créer un fragment de texte
TextFragment textFragment = new TextFragment(
		"Text 1: We have now applied text formatting. This is PDF generated by Aspose.PDF for .NET");
textFragment.setPosition(new Position(100, 700));
TextFragment textFragment1 = new TextFragment(
		"Text 2: We have now applied text formatting. This is PDF generated by Aspose.PDF for .NET");
textFragment1.setPosition(new Position(100, 600));

// Définir les propriétés du texte
textFragment.getTextState().setFontSize(12);
textFragment.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));
textFragment.getTextState().setBackgroundColor(Color.getLightGray());
textFragment.getTextState().setForegroundColor(Color.getRed());

textFragment1.getTextState().setDrawTextRectangleBorder(true);
textFragment1.getTextState().setUnderline(true);
textFragment1.getTextState().setStrikeOut(true);

// Créer une nouvelle couleur avec l'espace colorimétrique du motif
Color color = new Color();
color.setPatternColorSpace(new GradientAxialShading(Color.getRed(), Color.getBlue()));		
textFragment1.getTextState().setForegroundColor(color);

// Créer un objet TextBuilder
TextBuilder textBuilder = new TextBuilder(page);

// Ajouter les fragments de texte à la page PDF
textBuilder.appendText(textFragment);
textBuilder.appendText(textFragment1);

// Enregistrez le document PDF
document.save("Generated-PDF.pdf");

Java Créer des fichiers PDF avec image

Voici les étapes pour insérer une image dans un fichier PDF en utilisant Aspose.PDF for Java.

  • Créez un objet Document pour créer ou ouvrir le document PDF.
  • Obtenez la page à laquelle vous souhaitez ajouter une image dans l’objet Page.
  • Ajoutez l’image dans la collection Page.getResources().
  • Utilisez des opérateurs pour placer l’image sur la page :
    • GSave operator to save the current graphical state.
    • ConcaténerMatrice operator to specify where the image is to be placed.
    • Fais operator to draw the image on the page.
    • Enfin, utilisez l’opérateur GRestore pour enregistrer l’état graphique mis à jour.
  • Enregistrez le fichier PDF.

L’exemple de code suivant montre comment insérer une image dans un fichier PDF en Java.

// Pour des exemples complets et des fichiers de données, rendez-vous sur https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Ouvrir un document
Document pdfDocument1 = new Document("input.pdf");

// Définir les coordonnées
int lowerLeftX = 100;
int lowerLeftY = 100;
int upperRightX = 200;
int upperRightY = 200;

// Obtenez la page à laquelle vous souhaitez ajouter l'image
Page page = pdfDocument1.getPages().get_Item(1);

// Charger l'image dans le flux
java.io.FileInputStream imageStream = new java.io.FileInputStream(new java.io.File("input_image1.jpg"));

// Ajouter une image à la collection Images des ressources de la page
page.getResources().getImages().add(imageStream);

// Utilisation de l'opérateur GSave : cet opérateur enregistre l'état actuel des graphiques
page.getContents().add(new Operator.GSave());

// Créer des objets Rectangle et Matrix
Rectangle rectangle = new Rectangle(lowerLeftX, lowerLeftY, upperRightX, upperRightY);
Matrix matrix = new Matrix(new double[] { rectangle.getURX() - rectangle.getLLX(), 0, 0, rectangle.getURY() - rectangle.getLLY(), rectangle.getLLX(), rectangle.getLLY() });

// Utilisation de l'opérateur ConcatenateMatrix (matrice de concaténation): définit comment l'image doit être placée
page.getContents().add(new Operator.ConcatenateMatrix(matrix));
XImage ximage = page.getResources().getImages().get_Item(page.getResources().getImages().size());

// Utilisation de l'opérateur Do : cet opérateur dessine l'image
page.getContents().add(new Operator.Do(ximage.getName()));

// Utilisation de l'opérateur GRestore : cet opérateur restaure l'état graphique
page.getContents().add(new Operator.GRestore());

// Enregistrez le nouveau PDF
pdfDocument1.save("Updated_document.pdf");

// Fermer le flux d'images
imageStream.close();

Créer un tableau dans un fichier PDF en Java

Le tableau est un bon moyen d’organiser les données sous forme de lignes et de colonnes. Aspose.PDF vous permet d’insérer assez facilement un tableau dans un document PDF. Voici les étapes pour créer une table.

  • Chargez le fichier source à l’aide de la classe Document.
  • Initialisez une Table et définissez ses colonnes et ses lignes.
  • Définissez les paramètres du tableau (par exemple, les bordures).
  • Remplissez le tableau en y ajoutant des lignes.
  • Ajouter le tableau à une page.
  • Enregistrez le fichier PDF.

L’exemple de code suivant montre comment créer une table dans des fichiers PDF en Java.

// Pour des exemples complets et des fichiers de données, rendez-vous sur https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Charger le document PDF source
Document doc = new Document(dataDir + "input.pdf");
// Initialise une nouvelle instance de la table
Table table = new Table();
// Définissez la couleur de la bordure du tableau sur LightGray
table.setBorder(new BorderInfo(BorderSide.All, .5f, Color.getLightGray()));
// définir la bordure des cellules du tableau
table.setDefaultCellBorder(new BorderInfo(BorderSide.All, .5f, Color.getLightGray()));
// créer une boucle pour ajouter 10 lignes
for (int row_count = 1; row_count < 10; row_count++) {
	// ajouter une ligne au tableau
	Row row = table.getRows().add();
	// ajouter des cellules de tableau
	row.getCells().add("Column (" + row_count + ", 1)");
	row.getCells().add("Column (" + row_count + ", 2)");
	row.getCells().add("Column (" + row_count + ", 3)");
}
// Ajouter un objet tableau à la première page du document d'entrée
doc.getPages().get_Item(1).getParagraphs().add(table);
// Enregistrer le document mis à jour contenant l'objet tableau
doc.save(dataDir + "document_with_table.pdf");

Créer un formulaire dans un fichier PDF en Java

Le format PDF prend également en charge l’ajout de formulaires pour recueillir les commentaires des utilisateurs. Le formulaire peut contenir différents types de champs tels que des zones de texte, des boutons radio, etc. Les étapes suivantes montrent comment insérer un formulaire simple dans le fichier PDF.

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

En savoir plus sur les champs de formulaire en utilisant ici.

Insérer des signets dans un fichier PDF en Java

Voici les étapes pour ajouter des signets dans un fichier PDF.

  • Ouvrez un document PDF à l’aide de l’objet Document.
  • Ajoutez des plans de documents à une collection OutlineItemCollection.
  • Définissez le numéro de la page de destination.
  • Ajoutez le signet dans la collection de plans du document.
  • Enregistrez le fichier PDF.

L’exemple de code suivant montre comment insérer des signets dans un PDF à l’aide de Java.

// Pour des exemples complets et des fichiers de données, rendez-vous sur https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Ouvrir le document PDF source
Document pdfDocument = new Document("input.pdf");

// Créer un objet signet
OutlineItemCollection pdfOutline = new OutlineItemCollection(pdfDocument.getOutlines());
pdfOutline.setTitle("Test Outline");
pdfOutline.setItalic(true);
pdfOutline.setBold(true);

// Définir le numéro de la page de destination
pdfOutline.setAction(new GoToAction(pdfDocument.getPages().get_Item(1)));

// Ajoutez un signet dans la collection de plans du document.
pdfDocument.getOutlines().add(pdfOutline);

// Enregistrer le document de mise à jour
pdfDocument.save("output.pdf");

Obtenez une licence gratuite

Vous pouvez obtenir une licence temporaire gratuite afin d’essayer l’API sans limitation d’évaluation.

Conclusion

Dans cet article, vous avez appris à créer des fichiers PDF à partir de zéro en Java. De plus, les exemples de code Java ont montré comment insérer du texte, des images, des tableaux, des formulaires et des signets dans des fichiers PDF nouveaux ou existants. Vous pouvez en savoir plus sur l’API Java PDF à l’aide de documentation.

Voir également