Konvertieren Sie PNG in PDF mit Java

Konvertieren Sie PNG in PDF mit Java

PNG und PDF sind beliebte und derzeit am weitesten verbreitete Dateiformate. PNG ist ein Bilddateiformat, während PDF (Portable Document Format) eine zuverlässige und effiziente Datendarstellung bietet. In einigen Szenarien müssen Sie das Bilddateiformat in PDF konvertieren. Daher werden wir in diesem Blogbeitrag lernen, wie man PNG in PDF mit Java PDF API konvertiert. Wir werden das Code-Snippet und die Schritte zur Durchführung dieser Konvertierung in einer Java-Anwendung schreiben.

Wir werden die folgenden Themen in diesem Artikel behandeln:

Java-PDF-Bibliothek

Diese Java-PDF-Bibliothek ist einfach zu installieren und bietet Dokumentation zur Installation. Es ist eine API auf Unternehmensebene, die robuste Konvertierungs- und Manipulationsfunktionen bietet. Sie können das JAR jedoch herunterladen oder es mit den folgenden Maven-Konfigurationen installieren:

<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>

Konvertieren Sie PNG in PDF mit Java

Wir werden die Klassen und Methoden verwenden, die von dieser Java-PDF-Bibliothek bereitgestellt werden. Sie können eine PNG-zu-PDF-Konvertierung durchführen, indem Sie einige Zeilen Quellcode in Java schreiben.

Sie können die Schritte und das unten erwähnte Code-Snippet befolgen:

  1. Instanziieren Sie eine Instanz der Klasse Document.
  2. Erstellen Sie ein Objekt der Klasse DocumentBuilder, um das Hinzufügen von Inhalten zum Dokument zu vereinfachen.
  3. Laden Sie die Eingabebilddatei, indem Sie die Methode createImageInputStream aufrufen, und weisen Sie sie dem Objekt von ImageInputStream zu.
  4. Rufen Sie die Methode getImageReaders auf, die einen Iterator zurückgibt, der alle derzeit registrierten ImageReader enthält, und weist ihn dem Objekt der ImageReader-Klasse zu.
  5. Rufen Sie die Methode setInput auf, die die zu verwendende Eingabequelle auf den angegebenen ImageInputStream festlegt.
  6. Rufen Sie die Anzahl der Frames im Bild ab, indem Sie die Methode getNumImages aufrufen.
  7. Alle Frames durchlaufen.
  8. Wählen Sie einen aktiven Frame aus und weisen Sie ihn dem Objekt der Klasse BufferedImage zu.
  9. Rufen Sie die Methode getPageSetup auf, um auf die aktuelle Seiteneinrichtung zuzugreifen, und weisen Sie sie dem Objekt der Klasse PageSetup zu.
  10. Legen Sie die Seitenhöhe fest, indem Sie die Methode setPageWidth aufrufen.
  11. Rufen Sie die Methode setPageHeight auf, um die Breite der Seite festzulegen.
  12. Fügen Sie das Bild in das Dokument ein und positionieren Sie es in der oberen linken Ecke der Seite, indem Sie die Methode insertImage aufrufen.
  13. Speichern Sie die Datei im PDF-Dateiformat, indem Sie die Methode save aufrufen.
public static void ConvertImageToPDF(String inputFileName, String outputFileName) throws Exception {

    // Instanziieren Sie eine Instanz der Document-Klasse  
    Document doc = new Document();
    // Erstellen Sie ein Objekt der DocumentBuilder-Klasse, um das Hinzufügen von Inhalten zum Dokument zu vereinfachen.  
    DocumentBuilder builder = new DocumentBuilder(doc);

    // Laden Sie Bilder von der Festplatte mit dem entsprechenden Lesegerät.
    // Welche Dateiformate geladen werden können, hängt von den auf dem Gerät verfügbaren Bildlesegeräten ab.
    // Laden Sie die Eingabebilddatei, indem Sie die Methode createImageInputStream aufrufen, und weisen Sie sie dem Objekt von ImageInputStream zu.
    ImageInputStream iis = ImageIO.createImageInputStream(new File(inputFileName));
    // Rufen Sie die getImageReaders-Methode auf, die einen Iterator zurückgibt, der alle derzeit registrierten ImageReader enthält, und weist ihn dem Objekt der ImageReader-Klasse zu.
    ImageReader reader = ImageIO.getImageReaders(iis).next();
    // Rufen Sie die setInput-Methode auf, die die zu verwendende Eingabequelle auf den angegebenen ImageInputStream oder ein anderes Objekt festlegt. 
    reader.setInput(iis, false);

    // Rufen Sie die Anzahl der Frames im Bild ab, indem Sie die Methode getNumImages aufrufen  
    int framesCount = reader.getNumImages(true);

    // Alle Frames durchlaufen.
    for (int frameIdx = 0; frameIdx < framesCount; frameIdx++) {
        // Fügen Sie bei einem Bild mit mehreren Frames vor jeder neuen Seite einen Abschnittsumbruch ein.
        if (frameIdx != 0)
            builder.insertBreak(BreakType.SECTION_BREAK_NEW_PAGE);

        // Wählen Sie den aktiven Rahmen und weisen Sie ihn dem Objekt der BufferedImage-Klasse zu 
        BufferedImage image = reader.read(frameIdx);

        // Wir möchten, dass die Größe der Seite der Größe des Bildes entspricht.
	      // Wandeln Sie Pixel in Punkte um, um die Seite an die tatsächliche Bildgröße anzupassen.
	      // Rufen Sie die getPageSetup-Methode auf, um auf die aktuelle Seiteneinrichtung zuzugreifen, und weisen Sie sie dem Objekt der PageSetup-Klasse zu   
        PageSetup ps = builder.getPageSetup();
        // Legen Sie die Seitenhöhe fest, indem Sie die Methode setPageWidth aufrufen 
        ps.setPageWidth(ConvertUtil.pixelToPoint(image.getWidth()));
        // Rufen Sie die Methode setPageHeight auf, um die Breite der Seite festzulegen 
        ps.setPageHeight(ConvertUtil.pixelToPoint(image.getHeight()));

        // Fügen Sie das Bild in das Dokument ein und positionieren Sie es in der oberen linken Ecke der Seite, indem Sie die Methode insertImage aufrufen.
        builder.insertImage(
                image,
                RelativeHorizontalPosition.PAGE,
                0,
                RelativeVerticalPosition.PAGE,
                0,
                ps.getPageWidth(),
                ps.getPageHeight(),
                WrapType.NONE);
    }

    if (iis != null) {
        iis.close();
        reader.dispose();
    }
    // Speichern Sie die Datei im PDF-Dateiformat, indem Sie die save-Methode aufrufen
    doc.save(outputFileName);
}

Sie können die Ausgabe im folgenden Bild sehen:

Umwandlung von PNG in PDF

Umwandlung von PNG in PDF

Holen Sie sich eine kostenlose Lizenz

Sie können eine kostenlose temporäre Lizenz erwerben, um die API über die Evaluierungseinschränkungen hinaus zu testen.

Zusammenfassen

Wir können diesen Blogbeitrag hier beenden. Wir haben die Implementierung der Java-PDF-Bibliothek zum programmgesteuerten Konvertieren von PNG in PDF unter Verwendung von Java demonstriert. Mit dieser Bibliothek können Sie mit wenigen Codezeilen einen PNG-zu-PDF-Konverter erstellen. Außerdem können Sie die Dokumentation dieser PNG-zu-PDF-Konvertierungs-API aufrufen. conholdate.com schreibt ständig über neue interessante Themen. Bleiben Sie daher bitte in Verbindung, um die neuesten Updates zu erhalten.

Stelle eine Frage

Sie können uns Ihre Fragen oder Anliegen in unserem Forum mitteilen.

Häufig gestellte Fragen

Wie konvertiert man ein PNG in ein PDF?

Sie können diese Bibliothek verwenden, um PNG programmgesteuert in PDF in Java zu konvertieren. Es bietet eine umfassende Dokumentation zur Verwendung.

Wie speichere ich ein PNG als PDF ohne Qualitätsverlust?

Gehen Sie diesen Abschnitt durch, um zu erfahren, wie Sie ein PNG mithilfe einer Java-Bibliothek als PDF-Datei speichern. Sie können die Methode save aufrufen, um eine PNG-Datei als PDF-Datei zu speichern.

Siehe auch