Stampa PDF con Java in modo programmatico

La stampa di documenti PDF è spesso una funzione chiave in diverse aziende e organizzazioni. Puoi facilmente stampare un file PDF a livello di codice utilizzando il linguaggio Java. Puoi lavorare con l’API Aspose.PDF for Java configurandola nel tuo ambiente. Esaminiamo i diversi scenari di stampa PDF che sono possibili nelle tue applicazioni Java:

Stampa file PDF utilizzando Java

È possibile stampare facilmente un file PDF utilizzando il codice Java seguendo i passaggi seguenti:

  1. Crea un oggetto PdfViewer.
  2. Carica il file PDF di input
  3. Stampa il file PDF

Il frammento di codice seguente mostra come stampare file PDF a livello di codice utilizzando Java:

//Crea oggetto PdfViewer
PdfViewer viewer = new PdfViewer();
//Apri il file PDF di input
viewer.bindPdf(dataDir + "Test.pdf");
//Stampa documento PDF
viewer.printDocument();
//Chiudi file PDF
viewer.close();

Stampa di più documenti PDF utilizzando Java

La stampa di più file o la stampa in batch di file PDF è un processo semplice che utilizza il linguaggio Java. È possibile stampare un certo numero di file PDF seguendo i passaggi seguenti:

  1. Inizializza un elenco di tipo String
  2. Aggiungi più file PDF da stampare
  3. Stampa documenti PDF

Il codice seguente mostra come stampare più file PDF utilizzando il linguaggio Java:

// Inizializza un elenco di tipo String
List<String> files = new ArrayList<>();

// Aggiungi più file da stampare
files.add(dataDir + "First.pdf");
files.add(dataDir + "Second.pdf");

// Elabora ogni file da stampare
for (String file : files)
{
    //Crea oggetto PdfViewer
    PdfViewer viewer = new PdfViewer();
    //Apri il file PDF di input
    viewer.bindPdf(file);
    //Stampa documento PDF
    viewer.printDocument();
    //Chiudi file PDF
    viewer.close();
}

Stampa pagine specifiche o intervallo di pagine utilizzando Java

L’API ti offre molto controllo durante la stampa di file PDF. Puoi lavorare con diversi campi e metodi durante la stampa di file, secondo le tue esigenze. Ad esempio, se non si desidera stampare tutte le pagine di un file PDF e solo alcune pagine. Potrebbe essere un intervallo di pagine continuo come dalla pagina numero 3 fino alla pagina numero 7, oppure potrebbero essere pagine casuali come la pagina numero 1,5 e 6. Puoi coprire entrambi gli scenari con i seguenti passaggi:

  1. Inizializza l’oggetto PdfViewer.
  2. Imposta gli attributi per la stampa
  3. Crea oggetti per le impostazioni della stampante e della pagina
  4. Specificare se si desidera stampare tutte le pagine, pagine specifiche o un intervallo di pagine continue
  5. Stampa il documento PDF utilizzando la stampante e le impostazioni della pagina

Il codice seguente mostra come stampare pagine specifiche o un intervallo di pagine in un documento PDF con Java:

// Crea oggetto PdfViewer
PdfViewer viewer = new PdfViewer();
// Apri il file PDF di input
viewer.bindPdf(dataDir + "test.pdf");
// Imposta gli attributi per la stampa
viewer.setAutoResize(true); // Print the file with adjusted size
viewer.setAutoRotate(true); // Print the file with adjusted rotation
viewer.setPrintPageDialog(false); // Do not produce the page number dialog when printing

// Crea oggetti per le impostazioni della stampante e della pagina e PrintDocument
PrintPageSettings pgs = new PrintPageSettings();
PdfPrinterSettings ps = new PdfPrinterSettings();
// Imposta il nome della stampante
ps.setPrinterName("Microsoft Print to PDF");

// ps.setPrintRange(2); // 0 = tutte le pagine; 1 = selezione; 2 = alcune pagine
// ps.setFromPage(1);
// ps.setToPage(2);


ps.setPrintRange(1); // 0 = all pages; 1 = selection; 2 = some pages
ps.setSelectedPages(new int[]{1, 3, 5});


// Stampa il documento utilizzando le impostazioni della stampante e della pagina
viewer.printDocumentWithSettings(pgs, ps);

Stampa PDF protetto utilizzando Java

A volte i file PDF sono protetti o crittografati con password per garantire l’accesso autorizzato ai dati. Puoi facilmente accedere e stampare il file PDF protetto o crittografato utilizzando il codice Java e stampare il file secondo le tue esigenze. È necessario seguire i passaggi seguenti:

  1. Carica il file di input PDF protetto da password con la password
  2. Inizializza l’oggetto PdfViewer.
  3. Stampa il documento PDF

Il codice seguente si basa su questi passaggi che spiegano come stampare i file PDF protetti utilizzando il codice Java:

//Carica un documento PDF protetto specificando la password Utente o Proprietario
Document document = new Document(dataDir + "Password.pdf" , "userORowner");
//Crea oggetto PdfViewer
PdfViewer viewer = new PdfViewer();
//Apri il file PDF di input
viewer.bindPdf(document);
//Stampa documento PDF
viewer.printDocument();
//Chiudi file PDF
viewer.close();

Verifica lo stato dell’attività di stampa durante la stampa di PDF utilizzando Java

È possibile tenere d’occhio lo stato del lavoro di stampa dopo che il file è stato inviato alla coda di stampa della stampante. Ciò consente all’applicazione di decidere se la stampa è andata a buon fine o meno. La classe PdfViewer espone il metodo getPrintStatus che aiuta a controllare lo stato del lavoro di stampa. Ad esempio, durante la stampa di un PDF in formato XPS, è possibile ottenere lo stato seguendo i passaggi seguenti:

  1. Carica il file PDF di input
  2. Imposta gli attributi per la stampa
  3. Crea oggetti per le impostazioni della stampante e della pagina
  4. Imposta il nome della stampante
  5. Stampa l’output su file
  6. Controllare lo stato di stampa

Il codice seguente mostra come controllare lo stato dell’attività di stampa durante la stampa di PDF utilizzando il codice Java:

// Crea oggetto PdfViewer
PdfViewer viewer = new PdfViewer();
// Apri il file PDF di input
viewer.bindPdf(dataDir + "test.pdf");
// Imposta gli attributi per la stampa
viewer.setAutoResize(true); // Print the file with adjusted size
viewer.setAutoRotate(true); // Print the file with adjusted rotation
viewer.setPrintPageDialog(false); // Do not produce the page number dialog when printing

// Crea oggetti per le impostazioni della stampante e della pagina e PrintDocument
PrintPageSettings pgs = new PrintPageSettings();
PdfPrinterSettings ps = new PdfPrinterSettings();

// Imposta il nome della stampante
ps.setPrinterName("Microsoft Print to PDF");


// Nome della stampa risultante
ps.setPrintFileName(dataDir + "ResultantPrintout.xps");

// Stampa l'output su file
ps.setPrintToFile(true);

// Stampa il documento con le impostazioni specificate sopra
viewer.printDocumentWithSettings(pgs, ps);

// Controllare lo stato di stampa
if (viewer.getPrintStatus() != null)
{
    // È stata generata un'eccezione
    Exception ex = (Exception)viewer.getPrintStatus();
    if (ex != null)
    {
        // Ricevi messaggio di eccezione
    }
}
else
{
    // Non sono stati trovati errori. Il lavoro di stampa è stato completato correttamente
    System.out.println("printing completed without any issue..");
}

Conclusione

Abbiamo esplorato diversi scenari relativi alla stampa di file PDF nelle tue applicazioni Java. Puoi facilmente integrare queste funzionalità nelle tue applicazioni web, applicazioni console o qualsiasi altro tipo di progetto con cui stai lavorando, utilizzando il linguaggio Java. Puoi esplorare ulteriormente l’API imparando da Riferimenti API o Documentazione prodotto. Ci sono molti più scenari possibili relativi alla stampa di PDF e puoi discutere liberamente con noi tramite il Forum di supporto gratuito. Saremo lieti di aiutarti!

Guarda anche