Vari tipi di pubblicazioni come riviste, giornali, articoli di ricerca, ecc. utilizzano layout di pagina a più colonne. Durante la generazione di tali documenti in modo programmatico, potrebbe essere necessario creare PDF a più colonne. In questi casi, questo articolo spiega come creare file PDF a più colonne utilizzando Java.

API per creare PDF multicolonna in Java

Aspose.PDF for Java è un’API di manipolazione PDF ricca di funzionalità che ti consente di creare file PDF semplici e complessi da zero. Utilizzeremo questa API per creare file PDF a più colonne utilizzando Java. Puoi scaricare il JAR dell’API o installarlo all’interno della tua applicazione Java utilizzando le seguenti configurazioni 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>21.9</version>
</dependency>

Crea un PDF multicolonna in Java

Aspose.PDF per Java semplifica notevolmente la creazione di un file PDF a più colonne. Di seguito sono riportati i passaggi per raggiungere questo obiettivo.

L’esempio di codice seguente mostra come creare un PDF a due colonne utilizzando Java.

// Crea un nuovo documento
Document doc = new Document();

// Specificare le informazioni sul margine sinistro per il file PDF
doc.getPageInfo().getMargin().setLeft(40);

// Specificare le informazioni sul margine destro per il file PDF
doc.getPageInfo().getMargin().setRight(40);

// Aggiungi una nuova pagina e ottieni il suo riferimento
Page page = doc.getPages().add();

// Crea un nuovo grafico
com.aspose.pdf.drawing.Graph graph1 = new com.aspose.pdf.drawing.Graph(500, 2);

// Aggiungi il grafico alla raccolta di parafrasi
page.getParagraphs().add(graph1);

// Aggiungi una linea al grafico
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);

// Crea una variabile stringa con testo contenente contenuto 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>";

// Crea un frammento di testo e inizializzalo con testo HTML
HtmlFragment heading_text = new HtmlFragment(s);
page.getParagraphs().add(heading_text);

// Crea una scatola mobile
FloatingBox box = new FloatingBox();

// Aggiungi colonne nella sezione
box.getColumnInfo().setColumnCount(2);
// Imposta la spaziatura tra le colonne
box.getColumnInfo().setColumnSpacing("5");
// Imposta la larghezza della colonna
box.getColumnInfo().setColumnWidths("105 105");

// Crea un nuovo frammento di testo
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);

// Aggiungi testo al paragrafo
box.getParagraphs().add(text1);

// Crea un oggetto grafico per disegnare una linea
com.aspose.pdf.drawing.Graph graph2 = new com.aspose.pdf.drawing.Graph(50, 10);
// Specificare le coordinate per la linea
float[] posArr2 = new float[] { 1, 10, 100, 10 };

// Crea una linea
com.aspose.pdf.drawing.Line l2 = new com.aspose.pdf.drawing.Line(posArr2);
// Aggiungi linea al grafico
graph2.getShapes().add(l2);

// Aggiungi la riga alla raccolta di paragrafi dell'oggetto sezione
box.getParagraphs().add(graph2);

// Crea un nuovo frammento di testo 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.");

// Aggiungi testo alla casella mobile
box.getParagraphs().add(text2);

// Aggiungi una casella mobile alla pagina
page.getParagraphs().add(box);

// Salva file PDF
doc.save("multicolumn-pdf.pdf");

Quello che segue è lo screenshot del PDF multicolonna generato da Aspose.PDF per Java.

Crea PDF a più colonne Java

Ottieni una licenza gratuita

È possibile utilizzare Aspose.PDF per Java senza limitazioni di valutazione utilizzando una licenza temporanea.

Conclusione

Il layout a più colonne nei documenti PDF viene utilizzato per vari tipi di pubblicazioni. In questo post, hai imparato come creare file PDF multicolonna da zero usando Java. Inoltre, puoi saperne di più sull’API Java PDF utilizzando la documentazione. In caso di domande, non esitare a chiedere tramite il nostro forum.

Guarda anche