In questo articolo imparerai come creare file PDF da zero in modo programmatico in Java.

Crea documenti PDF utilizzando 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 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.

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.

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.

Guarda anche