Divers types de publications telles que des magazines, des journaux, des articles de recherche, etc. utilisent des mises en page à plusieurs colonnes. Lors de la génération de tels documents par programmation, vous devrez peut-être créer des PDF à plusieurs colonnes. Dans de tels cas, cet article explique comment créer des fichiers PDF multi-colonnes à l’aide de Java.
API pour créer un PDF multi-colonnes en Java
Aspose.PDF for Java est une API de manipulation PDF riche en fonctionnalités qui vous permet de créer des fichiers PDF simples et complexes à partir de zéro. Nous utiliserons cette API pour créer des fichiers PDF à plusieurs colonnes à l’aide de Java. Vous pouvez soit télécharger le JAR de l’API, soit l’installer dans votre application Java en utilisant les configurations Maven suivantes.
<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>21.9</version>
</dependency>
Créer un PDF multi-colonnes en Java
Aspose.PDF for Java vous permet de créer plus facilement un fichier PDF multi-colonnes. Voici les étapes pour y parvenir.
- Tout d’abord, créez un nouvel objet Document.
- Ensuite, définissez les marges de la page à l’aide des méthodes Document.getPageInfo().getMargin().setLeft() et Document.getPageInfo().getMargin().setRight().
- Ajoutez une nouvelle page dans le PDF à l’aide de la méthode Document.getPages().add() et récupérez sa référence dans un objet Page.
- Créez un nouvel objet Graph et ajoutez-le à la collection de paragraphes à l’aide de la méthode Page.getParagraphs().add().
- Créez une nouvelle Line et ajoutez-la à la collection Graph.getShapes().
- Ajoutez du texte d’en-tête à la page à l’aide de la méthode Page.getParagraphs().add().
- Créez une nouvelle FloatingBox et spécifiez le nombre de colonnes, l’espacement des colonnes et la largeur des colonnes.
- Créez un autre objet Graph.
- Ajoutez une nouvelle Ligne à la collection Graph.getShapes().
- Ajoutez Graph à la collection FloatingBox.getParagraphs().
- Créez un nouveau TextFragment et ajoutez-le à la collection FloatingBox.getParagraphs().
- Ajoutez FloatingBox à la page en utilisant la méthode Page.getParagraphs().add().
- Enfin, enregistrez le fichier PDF en utilisant la méthode Document.save(string).
L’exemple de code suivant montre comment créer un PDF à deux colonnes à l’aide de Java.
// Créer un nouveau document
Document doc = new Document();
// Spécifiez les informations de marge gauche pour le fichier PDF
doc.getPageInfo().getMargin().setLeft(40);
// Spécifiez les informations de marge droite pour le fichier PDF
doc.getPageInfo().getMargin().setRight(40);
// Ajouter une nouvelle page et obtenir sa référence
Page page = doc.getPages().add();
// Créer un nouveau graphique
com.aspose.pdf.drawing.Graph graph1 = new com.aspose.pdf.drawing.Graph(500, 2);
// Ajouter le graphique à la collection de paraphraphes
page.getParagraphs().add(graph1);
// Ajouter une ligne au graphique
float[] posArr = new float[] { 1, 2, 500, 2 };
com.aspose.pdf.drawing.Line l1 = new com.aspose.pdf.drawing.Line(posArr);
graph1.getShapes().add(l1);
// Créer une variable de chaîne avec du texte contenant du contenu HTML
String s = "<span style=\"font-family: \"Times New Roman\", Times, serif;\" font-size=\"14pt\" \">"
+"<strong> How to Steer Clear of money scams</<strong> </span>";
// Créer un fragment de texte et l'initialiser avec du texte HTML
HtmlFragment heading_text = new HtmlFragment(s);
page.getParagraphs().add(heading_text);
// Créer une boîte flottante
FloatingBox box = new FloatingBox();
// Ajouter des colonnes dans la section
box.getColumnInfo().setColumnCount(2);
// Définir l'espacement entre les colonnes
box.getColumnInfo().setColumnSpacing("5");
// Définir la largeur de la colonne
box.getColumnInfo().setColumnWidths("105 105");
// Créer un nouveau fragment de texte
TextFragment text1 = new TextFragment("By A Googler (The Official Google Blog)");
text1.getTextState().setFontSize (8);
text1.getTextState().setLineSpacing (2);
text1.getTextState().setFontSize (10);
text1.getTextState().setFontStyle (FontStyles.Italic);
// Ajouter du texte au paragraphe
box.getParagraphs().add(text1);
// Créer un objet graphique pour tracer une ligne
com.aspose.pdf.drawing.Graph graph2 = new com.aspose.pdf.drawing.Graph(50, 10);
// Spécifiez les coordonnées de la ligne
float[] posArr2 = new float[] { 1, 10, 100, 10 };
// Créer une ligne
com.aspose.pdf.drawing.Line l2 = new com.aspose.pdf.drawing.Line(posArr2);
// Ajouter une ligne au graphique
graph2.getShapes().add(l2);
// Ajouter la ligne à la collection de paragraphes de l'objet section
box.getParagraphs().add(graph2);
// Créer un nouveau fragment de texte to set content of the document
TextFragment text2 = new TextFragment("Sed augue tortor, sodales id, luctus et, pulvinar ut, eros. Suspendisse vel dolor. "
+"Sed quam. Curabitur ut massa vitae eros euismod aliquam. Pellentesque sit amet elit. Vestibulum interdum pellentesque augue."
+"Cras mollis arcu sit amet purus. Donec augue. Nam mollis tortor a elit. Nulla viverra nisl vel mauris. Vivamus sapien. nascetur "
+"ridiculus mus. Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et,nAenean "
+"posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. "
+"Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, "
+"risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam justo lorem, aliquam "
+"luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, "
+"sodales et, semper sed, enim nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, "
+"pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut,"
+"iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus "
+"mus. Sed urna. . Duis convallis ultrices nisi. Maecenas non ligula. Nunc nibh est, tincidunt in, placerat sit amet, vestibulum a, nulla."
+"Praesent porttitor turpis eleifend ante. Morbi sodales.nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam,"
+"iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique"
+"ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus."
+"Sed urna. . Duis convallis ultrices nisi. Maecenas non ligula. Nunc nibh est, tincidunt in, placerat sit amet, vestibulum a, nulla. "
+"Praesent porttitor turpis eleifend ante. Morbi sodales.");
// Ajouter du texte à la zone flottante
box.getParagraphs().add(text2);
// Ajouter une boîte flottante à la page
page.getParagraphs().add(box);
// Enregistrer le fichier PDF
doc.save("multicolumn-pdf.pdf");
Voici la capture d’écran du PDF multi-colonnes généré par Aspose.PDF for Java.
Obtenez une licence gratuite
Vous pouvez utiliser Aspose.PDF for Java sans limitation d’évaluation à l’aide d’une licence temporaire.
Conclusion
La mise en page multi-colonnes dans les documents PDF est utilisée pour différents types de publications. Dans cet article, vous avez appris à créer des fichiers PDF multi-colonnes à partir de zéro en utilisant Java. En outre, vous pouvez en savoir plus sur l’API Java PDF en utilisant la documentation. Si vous avez des questions, n’hésitez pas à les poser via notre forum.