Converti PNG in PDF usando Java

Converti PNG in PDF usando Java

PNG e PDF sono i formati di file più diffusi e più utilizzati al momento attuale. PNG è un formato di file immagine mentre PDF (Portable Document Format) offre una rappresentazione dei dati affidabile ed efficiente. È necessario convertire il formato del file immagine in PDF in alcuni scenari. Pertanto, in questo post del blog, impareremo come convertire PNG in PDF utilizzando Java PDF API. Scriveremo il frammento di codice e i passaggi per eseguire questa conversione in un’applicazione Java.

Tratteremo i seguenti argomenti in questo articolo:

Libreria PDF Java

Questa libreria Java PDF è facile da installare e offre documentazione relativa all’installazione. È un’API di livello aziendale che offre solide funzionalità di conversione e manipolazione. Tuttavia, puoi scaricare il JAR o installarlo 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-words</artifactId>
    <version>21.11</version>
    <type>pom</type>
</dependency>

Converti PNG in PDF usando Java

Utilizzeremo le classi e i metodi esposti da questa libreria PDF Java. Ti consente di eseguire la conversione da PNG a PDF scrivendo alcune righe di codice sorgente in Java.

Puoi seguire i passaggi e lo snippet di codice menzionato di seguito:

  1. Istanziare un’istanza della classe Document.
  2. Crea un oggetto della classe DocumentBuilder per semplificare l’aggiunta di contenuto al documento.
  3. Carica il file immagine di input chiamando il metodo createImageInputStream e assegnalo all’oggetto di ImageInputStream.
  4. Richiama il metodo getImageReaders che restituisce un Iterator contenente tutti gli ImageReader attualmente registrati e lo assegna all’oggetto della classe ImageReader.
  5. Chiama il metodo setInput che imposta l’origine di input da usare su ImageInputStream specificato.
  6. Ottieni il numero di fotogrammi nell’immagine chiamando il metodo getNumImages.
  7. Passa attraverso tutti i fotogrammi.
  8. Seleziona un frame attivo e assegnalo all’oggetto della classe BufferedImage.
  9. Richiamare il metodo getPageSetup per accedere all’impostazione di pagina corrente e assegnarla all’oggetto della classe PageSetup.
  10. Imposta l’altezza della pagina chiamando il metodo setPageWidth.
  11. Richiamare il metodo setPageHeight per impostare la larghezza della pagina.
  12. Inserisci l’immagine nel documento e posizionala nell’angolo in alto a sinistra della pagina chiamando il metodo insertImage.
  13. Salvare il file in formato PDF chiamando il metodo save.
public static void ConvertImageToPDF(String inputFileName, String outputFileName) throws Exception {

    // Istanziare un'istanza della classe Document  
    Document doc = new Document();
    // Crea un oggetto della classe DocumentBuilder per semplificare l'aggiunta di contenuto al documento.  
    DocumentBuilder builder = new DocumentBuilder(doc);

    // Carica le immagini dal disco utilizzando il lettore appropriato.
    // I formati di file che possono essere caricati dipendono dai lettori di immagini disponibili sulla macchina.
    // Carica il file immagine di input chiamando il metodo createImageInputStream e assegnalo all'oggetto di ImageInputStream.
    ImageInputStream iis = ImageIO.createImageInputStream(new File(inputFileName));
    // Richiamare il metodo getImageReaders che restituisce un Iterator contenente tutti gli ImageReader attualmente registrati e lo assegna all'oggetto della classe ImageReader.
    ImageReader reader = ImageIO.getImageReaders(iis).next();
    // Chiama il metodo setInput che imposta l'origine di input da usare per l'oggetto ImageInputStream o un altro oggetto specificato. 
    reader.setInput(iis, false);

    // Ottieni il numero di fotogrammi nell'immagine chiamando il metodo getNumImages  
    int framesCount = reader.getNumImages(true);

    // Passa attraverso tutti i fotogrammi.
    for (int frameIdx = 0; frameIdx < framesCount; frameIdx++) {
        // Inserisci un'interruzione di sezione prima di ogni nuova pagina, nel caso di un'immagine a più fotogrammi.
        if (frameIdx != 0)
            builder.insertBreak(BreakType.SECTION_BREAK_NEW_PAGE);

        // Seleziona il frame attivo e assegnalo all'oggetto della classe BufferedImage 
        BufferedImage image = reader.read(frameIdx);

        // Vogliamo che la dimensione della pagina sia la stessa della dimensione dell'immagine.
	      // Converti pixel in punti per ridimensionare la pagina alle dimensioni effettive dell'immagine.
	      // Richiamare il metodo getPageSetup per accedere all'impostazione di pagina corrente e assegnarlo all'oggetto della classe PageSetup   
        PageSetup ps = builder.getPageSetup();
        // Imposta l'altezza della pagina chiamando il metodo setPageWidth 
        ps.setPageWidth(ConvertUtil.pixelToPoint(image.getWidth()));
        // Richiamare il metodo setPageHeight per impostare la larghezza della pagina 
        ps.setPageHeight(ConvertUtil.pixelToPoint(image.getHeight()));

        // Inserisci l'immagine nel documento e posizionala nell'angolo in alto a sinistra della pagina chiamando il metodo insertImage.
        builder.insertImage(
                image,
                RelativeHorizontalPosition.PAGE,
                0,
                RelativeVerticalPosition.PAGE,
                0,
                ps.getPageWidth(),
                ps.getPageHeight(),
                WrapType.NONE);
    }

    if (iis != null) {
        iis.close();
        reader.dispose();
    }
    // Salva il file come formato di file PDF chiamando il metodo di salvataggio
    doc.save(outputFileName);
}

Puoi vedere l’output nell’immagine qui sotto:

Conversione da PNG a PDF

Conversione da PNG a PDF

Ottieni una licenza gratuita

Puoi ottenere una licenza temporanea gratuita per provare l’API oltre i limiti di valutazione.

Riassumendo

Possiamo terminare questo post sul blog qui. Abbiamo dimostrato l’implementazione della libreria PDF Java per convertire PNG in PDF utilizzando Java in modo programmatico. Questa libreria ti consente di creare un convertitore da PNG a PDF utilizzando poche righe di codice. Inoltre, puoi visitare la documentazione di questa API di conversione da PNG a PDF. conholdate.com scrive continuamente su nuovi argomenti interessanti. Pertanto, rimani connesso per gli ultimi aggiornamenti.

Fai una domanda

Puoi farci sapere le tue domande o richieste sul nostro forum.

Domande frequenti

Come si converte un PNG in un PDF?

Puoi usare questa libreria per convertire PNG in PDF in Java in modo programmatico. Offre una documentazione completa per quanto riguarda il suo utilizzo.

Come faccio a salvare un PNG come PDF senza perdere la qualità?

Passa attraverso questa sezione per sapere come salvare un PNG come file PDF utilizzando una libreria Java. Puoi invocare il metodo save per salvare un file PNG come file PDF.

Guarda anche