Convertir PNG en PDF en utilisant Java

Convertir PNG en PDF en utilisant Java

PNG et PDF sont les formats de fichiers populaires et les plus largement utilisés à l’heure actuelle. PNG est un format de fichier image tandis que PDF (Portable Document Format) offre une représentation des données fiable et efficace. Vous devez convertir le format de fichier image au format PDF dans certains scénarios. Par conséquent, dans cet article de blog, nous apprendrons comment convertir PNG en PDF à l’aide de Java PDF API. Nous allons écrire l’extrait de code et les étapes pour effectuer cette conversion dans une application Java.

Nous aborderons les sujets suivants dans cet article :

Bibliothèque Java PDF

Cette bibliothèque Java PDF est facile à installer et offre une documentation concernant l’installation. Il s’agit d’une API de niveau entreprise qui offre des fonctionnalités de conversion et de manipulation robustes. Cependant, vous pouvez télécharger le JAR ou l’installer en utilisant les configurations Maven suivantes :

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

Convertir PNG en PDF en utilisant Java

Nous allons utiliser les classes et les méthodes exposées par cette bibliothèque Java PDF. Il vous permet d’effectuer une conversion PNG en PDF en écrivant quelques lignes de code source en Java.

Vous pouvez suivre les étapes et l’extrait de code mentionnés ci-dessous :

  1. Instanciez une instance de la classe Document.
  2. Créez un objet de la classe DocumentBuilder pour simplifier l’ajout de contenu au document.
  3. Chargez le fichier image d’entrée en appelant la méthode createImageInputStream et affectez-le à l’objet de ImageInputStream.
  4. Appelez la méthode getImageReaders qui renvoie un Iterator contenant tous les ImageReaders actuellement enregistrés et l’affecte à l’objet de la classe ImageReader.
  5. Appelez la méthode setInput qui définit la source d’entrée à utiliser sur le ImageInputStream donné.
  6. Obtenez le nombre d’images dans l’image en appelant la méthode getNumImages.
  7. Boucle à travers toutes les images.
  8. Sélectionnez un cadre actif et affectez-le à l’objet de la classe BufferedImage.
  9. Appelez la méthode getPageSetup pour accéder à la mise en page actuelle et affectez-la à l’objet de la classe PageSetup.
  10. Définissez la hauteur de la page en appelant la méthode setPageWidth.
  11. Appelez la méthode setPageHeight pour définir la largeur de la page.
  12. Insérez l’image dans le document et positionnez-la dans le coin supérieur gauche de la page en appelant la méthode insertImage.
  13. Enregistrez le fichier au format de fichier PDF en appelant la méthode save.
public static void ConvertImageToPDF(String inputFileName, String outputFileName) throws Exception {

    // Instancier une instance de la classe Document  
    Document doc = new Document();
    // Créez un objet de la classe DocumentBuilder pour simplifier l'ajout de contenu au document.  
    DocumentBuilder builder = new DocumentBuilder(doc);

    // Chargez les images du disque à l'aide du lecteur approprié.
    // Les formats de fichiers pouvant être chargés dépendent des lecteurs d'images disponibles sur la machine.
    // Chargez le fichier image d'entrée en appelant la méthode createImageInputStream et affectez-le à l'objet de ImageInputStream.
    ImageInputStream iis = ImageIO.createImageInputStream(new File(inputFileName));
    // Appelez la méthode getImageReaders qui renvoie un Iterator contenant tous les ImageReaders actuellement enregistrés et l'affecte à l'objet de la classe ImageReader.
    ImageReader reader = ImageIO.getImageReaders(iis).next();
    // Appelez la méthode setInput qui définit la source d'entrée à utiliser sur le ImageInputStream ou un autre Object donné. 
    reader.setInput(iis, false);

    // Obtenez le nombre d'images dans l'image en appelant la méthode getNumImages  
    int framesCount = reader.getNumImages(true);

    // Boucle à travers toutes les images.
    for (int frameIdx = 0; frameIdx < framesCount; frameIdx++) {
        // Insérez un saut de section avant chaque nouvelle page, dans le cas d'une image multi-frame.
        if (frameIdx != 0)
            builder.insertBreak(BreakType.SECTION_BREAK_NEW_PAGE);

        // Sélectionnez le cadre actif et affectez-le à l'objet de la classe BufferedImage 
        BufferedImage image = reader.read(frameIdx);

        // Nous voulons que la taille de la page soit la même que la taille de l'image.
	      // Convertissez les pixels en points pour dimensionner la page à la taille réelle de l'image.
	      // Appelez la méthode getPageSetup pour accéder à la configuration de page actuelle et affectez-la à l'objet de la classe PageSetup   
        PageSetup ps = builder.getPageSetup();
        // Définissez la hauteur de la page en appelant la méthode setPageWidth 
        ps.setPageWidth(ConvertUtil.pixelToPoint(image.getWidth()));
        // Appelez la méthode setPageHeight pour définir la largeur de la page 
        ps.setPageHeight(ConvertUtil.pixelToPoint(image.getHeight()));

        // Insérez l'image dans le document et positionnez-la dans le coin supérieur gauche de la page en appelant la méthode insertImage.
        builder.insertImage(
                image,
                RelativeHorizontalPosition.PAGE,
                0,
                RelativeVerticalPosition.PAGE,
                0,
                ps.getPageWidth(),
                ps.getPageHeight(),
                WrapType.NONE);
    }

    if (iis != null) {
        iis.close();
        reader.dispose();
    }
    // Enregistrez le fichier au format de fichier PDF en appelant la méthode save
    doc.save(outputFileName);
}

Vous pouvez voir la sortie dans l’image ci-dessous :

Conversion PNG en PDF

Conversion PNG en PDF

Obtenez une licence gratuite

Vous pouvez obtenir une licence temporaire gratuite pour essayer l’API au-delà des limites d’évaluation.

Résumé

Nous pouvons terminer ce billet de blog ici. Nous avons démontré l’implémentation de la bibliothèque Java PDF pour convertir PNG en PDF en utilisant Java par programmation. Cette bibliothèque vous permet de créer un convertisseur PNG en PDF en utilisant quelques lignes de code. De plus, vous pouvez consulter la documentation de cette API de conversion PNG en PDF. conholdate.com écrit continuellement sur de nouveaux sujets intéressants. Par conséquent, veuillez rester connecté pour les dernières mises à jour.

poser une question

Vous pouvez nous faire part de vos questions ou requêtes sur notre forum.

FAQ

Comment convertir un PNG en PDF ?

Vous pouvez utiliser cette bibliothèque pour convertir PNG en PDF en Java par programmation. Il offre une documentation complète concernant son utilisation.

Comment enregistrer un PNG au format PDF sans perdre en qualité ?

Parcourez cette section pour savoir comment enregistrer un PNG en tant que fichier PDF à l’aide d’une bibliothèque Java. Vous pouvez invoquer la méthode save pour enregistrer un fichier PNG en tant que fichier PDF.

Voir également