In questo articolo imparerai come creare file PDF da zero in modo programmatico in Java.
PDF è diventato un formato di file comunemente utilizzato per la creazione di diversi tipi di documenti. Vari settori hanno adottato l’automazione PDF per la generazione di documenti come ricevute, fatture, rapporti aziendali, ecc. Tenendo d’occhio tali scenari, questo articolo spiega come creare file PDF in Java. Gli esempi di codice dimostreranno come creare un file PDF da zero e inserire testo, immagini, tabelle e altri elementi in quel PDF in Java.
- API Java per creare file PDF
- Crea un file PDF utilizzando Java
- Applicare la formattazione del testo nel file PDF
- Inserisci un’immagine nel file PDF
- Crea una tabella in un file PDF
- Aggiungi un modulo in un file PDF
- Aggiungi segnalibri nel file PDF
- Ottieni licenza gratuita
API Java per creare PDF - Download gratuito
Aspose.PDF for Java è un’API di manipolazione dei file PDF che ti consente di creare file PDF dall’interno delle applicazioni Java. Utilizzando l’API, puoi creare documenti PDF semplici e complessi. Aspose.PDF per Java può essere scaricato come JAR o installato all’interno di applicazioni basate su 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>
Crea un file PDF in Java
Di seguito sono riportati i passaggi per generare un semplice file PDF da zero e inserirvi un pezzo di testo.
- Crea un’istanza della classe Document.
- Aggiungi una nuova pagina usando il metodo Document.getPages().add() e ottieni il suo riferimento nell’oggetto Page.
- Aggiungi testo alla pagina utilizzando il metodo Page.getParagraphs().add(new TextFragment(“Hello World!”)).
- Salvare il file PDF utilizzando il metodo Document.save(String).
L’esempio di codice seguente mostra come creare un file PDF utilizzando Java.
// Per esempi completi e file di dati, visitare https://github.com/aspose-pdf/Aspose.PDF-for-Java
// Inizializza oggetto documento
Document document = new Document();
//Aggiungi pagina
Page page = document.getPages().add();
// Aggiungi testo a una nuova pagina
page.getParagraphs().add(new TextFragment("Hello World!"));
// Salva PDF aggiornato
document.save("HelloWorld_out.pdf");
Crea file PDF con formattazione del testo in Java
Vediamo ora come applicare la formattazione al testo nel documento PDF. La formattazione del testo può includere carattere, dimensione del carattere, colore, posizione e così via. Di seguito sono riportati i passaggi per eseguire questa operazione.
- Usa la classe Document per creare un nuovo documento PDF o caricarne uno esistente.
- Accedi alla Pagina su cui vuoi inserire il testo.
- Crea un oggetto di TextFragment per impostare il testo e altre opzioni di formattazione come posizione, carattere, colore, dimensione, ecc.
- Usa la classe TextBuilder per aggiungere l’oggetto TextFragment alla pagina.
- Utilizzare il metodo Document.save(String) per salvare il documento PDF.
L’esempio di codice seguente mostra come creare un file PDF e applicare la formattazione del testo utilizzando Java.
// Carica documento PDF
Document document = new Document();
// Aggiungi pagina
Page page = document.getPages().add();
// Crea frammento di testo
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));
// Imposta le proprietà del testo
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);
// Crea un nuovo colore con lo spazio colore del modello
Color color = new Color();
color.setPatternColorSpace(new GradientAxialShading(Color.getRed(), Color.getBlue()));
textFragment1.getTextState().setForegroundColor(color);
// Crea oggetto TextBuilder
TextBuilder textBuilder = new TextBuilder(page);
// Aggiungi i frammenti di testo alla pagina PDF
textBuilder.appendText(textFragment);
textBuilder.appendText(textFragment1);
// Salva il documento PDF
document.save("Generated-PDF.pdf");
Java Crea file PDF con immagine
Di seguito sono riportati i passaggi per inserire un’immagine in un file PDF utilizzando Aspose.PDF per Java.
- Crea un oggetto Documento per creare o aprire il documento PDF.
- Ottieni la pagina a cui vuoi aggiungere un’immagine nell’oggetto Pagina.
- Aggiungi l’immagine alla raccolta Page.getResources().
- Utilizzare gli operatori per posizionare l’immagine sulla pagina:
- GSave operator to save the current graphical state.
- Concatenate Matrix operator to specify where the image is to be placed.
- Fare operator to draw the image on the page.
- Infine, utilizzare l’operatore GRstore per salvare lo stato grafico aggiornato.
- Salva il file PDF.
L’esempio di codice seguente mostra come inserire un’immagine in un file PDF in Java.
// Per esempi completi e file di dati, visitare https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Apri un documento
Document pdfDocument1 = new Document("input.pdf");
// Imposta le coordinate
int lowerLeftX = 100;
int lowerLeftY = 100;
int upperRightX = 200;
int upperRightY = 200;
// Ottieni la pagina a cui vuoi aggiungere l'immagine
Page page = pdfDocument1.getPages().get_Item(1);
// Carica l'immagine nello stream
java.io.FileInputStream imageStream = new java.io.FileInputStream(new java.io.File("input_image1.jpg"));
// Aggiungi un'immagine alla raccolta Immagini delle risorse della pagina
page.getResources().getImages().add(imageStream);
// Utilizzo dell'operatore GSave: questo operatore salva lo stato grafico corrente
page.getContents().add(new Operator.GSave());
// Crea oggetti Rettangolo e Matrice
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() });
// Utilizzo dell'operatore ConcatenateMatrix (matrice concatenata): definisce come deve essere posizionata l'immagine
page.getContents().add(new Operator.ConcatenateMatrix(matrix));
XImage ximage = page.getResources().getImages().get_Item(page.getResources().getImages().size());
// Usando l'operatore Do: questo operatore disegna l'immagine
page.getContents().add(new Operator.Do(ximage.getName()));
// Utilizzo dell'operatore GRestore: questo operatore ripristina lo stato grafico
page.getContents().add(new Operator.GRestore());
// Salva il nuovo PDF
pdfDocument1.save("Updated_document.pdf");
// Chiudi il flusso di immagini
imageStream.close();
Crea una tabella in un file PDF in Java
La tabella è un ottimo modo per organizzare i dati sotto forma di righe e colonne. Aspose.PDF ti consente di inserire una tabella in un documento PDF abbastanza facilmente. Di seguito sono riportati i passaggi per creare una tabella.
- Carica il file sorgente usando la classe Document.
- Inizializza una Tabella e imposta le sue colonne e righe.
- Imposta l’impostazione della tabella (es. bordi).
- Popolare la tabella aggiungendo righe al suo interno.
- Aggiungi la tabella a una pagina.
- Salva il file PDF.
L’esempio di codice seguente mostra come creare una tabella in file PDF in Java.
// Per esempi completi e file di dati, visitare https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Carica il documento PDF di origine
Document doc = new Document(dataDir + "input.pdf");
// Inizializza una nuova istanza della tabella
Table table = new Table();
// Imposta il colore del bordo della tabella come LightGray
table.setBorder(new BorderInfo(BorderSide.All, .5f, Color.getLightGray()));
// imposta il bordo per le celle della tabella
table.setDefaultCellBorder(new BorderInfo(BorderSide.All, .5f, Color.getLightGray()));
// crea un ciclo per aggiungere 10 righe
for (int row_count = 1; row_count < 10; row_count++) {
// aggiungi riga alla tabella
Row row = table.getRows().add();
// aggiungi celle di tabella
row.getCells().add("Column (" + row_count + ", 1)");
row.getCells().add("Column (" + row_count + ", 2)");
row.getCells().add("Column (" + row_count + ", 3)");
}
// Aggiungi l'oggetto tabella alla prima pagina del documento di input
doc.getPages().get_Item(1).getParagraphs().add(table);
// Salva il documento aggiornato contenente l'oggetto tabella
doc.save(dataDir + "document_with_table.pdf");
Crea modulo in un file PDF in Java
Il formato PDF supporta anche l’aggiunta di moduli per raccogliere input dagli utenti. Il modulo può contenere vari tipi di campi come caselle di testo, pulsanti di opzione, ecc. I passaggi seguenti mostrano come inserire un semplice modulo nel file PDF.
- Carica il documento PDF o creane uno nuovo utilizzando la classe Documento.
- Crea il campo modulo che desideri aggiungere come TextBoxField.
- Imposta le proprietà del campo.
- Aggiungi il campo al Modulo del PDF utilizzando il metodo pdfDocument.getForm().add(Field, Int).
- Salva il documento PDF.
L’esempio di codice seguente mostra come creare un modulo in un file PDF in Java.
// Per esempi completi e file di dati, visitare https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Apri un documento
Document pdfDocument = new Document("input.pdf");
// Crea un campo
TextBoxField textBoxField1 = new TextBoxField(pdfDocument.getPages().get_Item(1), new Rectangle(100, 200, 300, 300));
// Imposta il nome del campo
textBoxField1.setPartialName("textbox1");
// Imposta il valore del campo
textBoxField1.setValue("Text Box");
// Crea un oggetto bordo
Border border = new Border(textBoxField1);
// Imposta la larghezza del bordo
border.setWidth(5);
// Imposta lo stile del trattino del bordo
border.setDash(new Dash(1, 1));
// Imposta il bordo del campo
textBoxField1.setBorder(border);
// Aggiungi il campo al documento
pdfDocument.getForm().add(textBoxField1, 1);
// Salva il PDF modificato
pdfDocument.save("output.pdf");
Leggi di più sui campi del modulo usando qui.
Inserisci i segnalibri nel file PDF in Java
Di seguito sono riportati i passaggi per aggiungere segnalibri nel file PDF.
- Aprire un documento PDF utilizzando l’oggetto Documento.
- Aggiungi i contorni dei documenti a una raccolta OutlineItemCollection.
- Imposta il numero di pagina di destinazione.
- Aggiungi il segnalibro nella raccolta di bozze del documento.
- Salva il file PDF.
L’esempio di codice seguente mostra come inserire segnalibri in PDF utilizzando Java.
// Per esempi completi e file di dati, visitare https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Apri il documento PDF di origine
Document pdfDocument = new Document("input.pdf");
// Crea un oggetto segnalibro
OutlineItemCollection pdfOutline = new OutlineItemCollection(pdfDocument.getOutlines());
pdfOutline.setTitle("Test Outline");
pdfOutline.setItalic(true);
pdfOutline.setBold(true);
// Imposta il numero di pagina di destinazione
pdfOutline.setAction(new GoToAction(pdfDocument.getPages().get_Item(1)));
// Aggiungi un segnalibro nella raccolta di bozze del documento.
pdfDocument.getOutlines().add(pdfOutline);
// Salva il documento di aggiornamento
pdfDocument.save("output.pdf");
Ottieni una licenza gratuita
Puoi ottenere una licenza temporanea gratuita per provare l’API senza limitazioni di valutazione.
Conclusione
In questo articolo, hai imparato come creare file PDF da zero in Java. Inoltre, gli esempi di codice Java hanno dimostrato come inserire testo, immagini, tabelle, moduli e segnalibri in file PDF nuovi o esistenti. Puoi esplorare di più sull’API Java PDF utilizzando la documentazione.