Convierte PNG a PDF usando Java

Convierte PNG a PDF usando Java

PNG y PDF son los formatos de archivo populares y más utilizados en la actualidad. PNG es un formato de archivo de imagen, mientras que PDF (formato de documento portátil) ofrece una representación de datos confiable y eficiente. Debe convertir el formato de archivo de imagen a PDF en algunos escenarios. Por lo tanto, en esta publicación de blog, aprenderemos cómo convertir PNG a PDF utilizando Java PDF API. Escribiremos el fragmento de código y los pasos para realizar esta conversión en una aplicación Java.

Cubriremos los siguientes temas en este artículo:

Biblioteca PDF de Java

Esta biblioteca PDF de Java es fácil de instalar y ofrece documentación relacionada con la instalación. Es una API de nivel empresarial que ofrece funciones robustas de conversión y manipulación. Sin embargo, puede descargar el JAR o instalarlo usando las siguientes configuraciones de 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>

Convierte PNG a PDF usando Java

Vamos a utilizar las clases y métodos expuestos por esta biblioteca PDF de Java. Le permite realizar la conversión de PNG a PDF escribiendo unas pocas líneas de código fuente en Java.

Puede seguir los pasos y el fragmento de código mencionado a continuación:

  1. Crea una instancia de la clase Document.
  2. Cree un objeto de la clase DocumentBuilder para simplificar la adición de contenido al documento.
  3. Cargue el archivo de imagen de entrada llamando al método createImageInputStream y asígnelo al objeto de ImageInputStream.
  4. Invoque el método getImageReaders que devuelve un iterador que contiene todos los ImageReaders actualmente registrados y lo asigna al objeto de la clase ImageReader.
  5. Llame al método setInput que establece la fuente de entrada para usar en el ImageInputStream dado.
  6. Obtén el número de fotogramas de la imagen llamando al método getNumImages.
  7. Bucle a través de todos los fotogramas.
  8. Seleccione un marco activo y asígnelo al objeto de la clase BufferedImage.
  9. Invoque el método getPageSetup para acceder a la configuración de la página actual y asígnela al objeto de la clase PageSetup.
  10. Configure la altura de la página llamando al método setPageWidth.
  11. Invoque el método setPageHeight para establecer el ancho de la página.
  12. Inserte la imagen en el documento y colóquela en la esquina superior izquierda de la página llamando al método insertImage.
  13. Guarde el archivo como formato de archivo PDF llamando al método save.
public static void ConvertImageToPDF(String inputFileName, String outputFileName) throws Exception {

    // Instanciar una instancia de la clase Document  
    Document doc = new Document();
    // Cree un objeto de la clase DocumentBuilder para simplificar la adición de contenido al documento.  
    DocumentBuilder builder = new DocumentBuilder(doc);

    // Cargue imágenes desde el disco usando el lector apropiado.
    // Los formatos de archivo que se pueden cargar dependen de los lectores de imágenes disponibles en la máquina.
    // Cargue el archivo de imagen de entrada llamando al método createImageInputStream y asígnelo al objeto de ImageInputStream.
    ImageInputStream iis = ImageIO.createImageInputStream(new File(inputFileName));
    // Invoque el método getImageReaders que devuelve un iterador que contiene todos los ImageReaders actualmente registrados y lo asigna al objeto de la clase ImageReader.
    ImageReader reader = ImageIO.getImageReaders(iis).next();
    // Llame al método setInput que establece la fuente de entrada para usar en ImageInputStream u otro objeto dado. 
    reader.setInput(iis, false);

    // Obtenga el número de cuadros en la imagen llamando al método getNumImages  
    int framesCount = reader.getNumImages(true);

    // Bucle a través de todos los fotogramas.
    for (int frameIdx = 0; frameIdx < framesCount; frameIdx++) {
        // Inserte un salto de sección antes de cada página nueva, en el caso de una imagen de varios fotogramas.
        if (frameIdx != 0)
            builder.insertBreak(BreakType.SECTION_BREAK_NEW_PAGE);

        // Seleccione el cuadro activo y asígnelo al objeto de la clase BufferedImage 
        BufferedImage image = reader.read(frameIdx);

        // Queremos que el tamaño de la página sea el mismo que el tamaño de la imagen.
	      // Convierta píxeles en puntos para cambiar el tamaño de la página al tamaño real de la imagen.
	      // Invoque el método getPageSetup para acceder a la configuración de la página actual y asígnela al objeto de la clase PageSetup   
        PageSetup ps = builder.getPageSetup();
        // Establezca la altura de la página llamando al método setPageWidth 
        ps.setPageWidth(ConvertUtil.pixelToPoint(image.getWidth()));
        // Invoque el método setPageHeight para establecer el ancho de la página 
        ps.setPageHeight(ConvertUtil.pixelToPoint(image.getHeight()));

        // Inserte la imagen en el documento y colóquela en la esquina superior izquierda de la página llamando al método insertImage.
        builder.insertImage(
                image,
                RelativeHorizontalPosition.PAGE,
                0,
                RelativeVerticalPosition.PAGE,
                0,
                ps.getPageWidth(),
                ps.getPageHeight(),
                WrapType.NONE);
    }

    if (iis != null) {
        iis.close();
        reader.dispose();
    }
    // Guarde el archivo como formato de archivo PDF llamando al método de guardar
    doc.save(outputFileName);
}

Puedes ver la salida en la siguiente imagen:

Conversión de PNG a PDF

Conversión de PNG a PDF

Obtenga una licencia gratis

Puede obtener una licencia temporal gratuita para probar la API más allá de las limitaciones de evaluación.

Resumiendo

Podemos terminar esta publicación de blog aquí. Hemos demostrado la implementación de la biblioteca Java PDF para convertir PNG a PDF utilizando Java mediante programación. Esta biblioteca le permite crear un convertidor de PNG a PDF utilizando unas pocas líneas de código. Además, puede visitar la documentación de esta API de conversión de PNG a PDF. conholdate.com escribe continuamente sobre nuevos temas interesantes. Por lo tanto, manténgase conectado para obtener las últimas actualizaciones.

Hacer una pregunta

Puede informarnos acerca de sus preguntas o consultas en nuestro foro.

preguntas frecuentes

¿Cómo se convierte un PNG a un PDF?

Puede usar esta biblioteca para convertir PNG a PDF en Java mediante programación. Ofrece documentación completa sobre su uso.

¿Cómo guardo un PNG como PDF sin perder calidad?

Lea esta sección para aprender cómo guardar un PNG como un archivo PDF utilizando una biblioteca Java. Puede invocar el método guardar para guardar un archivo PNG como archivo PDF.

Ver también