Aprende Java Aprende Php Aprende C++ Aprende HTML 5 Aprende JavaScript Aprende JSON Aprende MySQL Aprende SQLServer Aprende Visual Basic 6 Aprende PostgreSQL Aprende SQLite Aprende Redis Aprende Kotlin Aprende XML Aprende Linux VSC Aprende Wordpress Aprende Laravel Aprende VueJS Aprende JQuery Aprende Bootstrap Aprende Netbeans Aprende Android
Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube Sigueme en TikTok Sigueme en Whatsapp
Home / Java / Convertir imágenes JPG a PDF

Convertir imágenes JPG a PDF

Por jc mouse miércoles, noviembre 27, 2019

En este post vemos un ejemplo de como convertir un archivo de imagen JPG en un archivo PDF utilizando para ellos la librería iText.

¿Qué es iText?

iText es una biblioteca Open Source para crear y manipular archivos PDF, RTF, y HTML en Java. Fue escrita por Bruno Lowagie, Paulo Soares, y otros; está distribuida bajo la Affero General Public License (AGPL). [Santa Wikipedia]

¿Qué Necesitamos?

  • Librería iText
  • Java 8 o superior
  • Una imagen JPG
  • Netbeans o Eclipse (o el IDE de tu preferencia)

Manos a la obra

La imagen que se utilizara tendrá una dimensión de 500×632 pixeles, la imagen es la siguiente:

Abuelo simpsons seguridad

El código para la conversión de JPG a PDF es el siguiente:

import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Jpeg;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.PdfWriter;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.imageio.ImageIO;

/**
 * @see https://www.jc-mouse.net/
 * @author mouse
 */
public class Main {

    public static void main(String[] args) {

        final int ANCHO = 500;
        final int ALTO = 632;
        final String DESTINO = "E:\\test.pdf";
        final String ORIGEN = "E:\\abesimpson.jpg";

        System.out.println("Inicio");
        //Se crea documento con un tamaño en especifico, 
        //tambien se puede usar PageSize.LETTER (carta) o similares
        Document document = new Document(new Rectangle(ANCHO, ALTO));
        //margenes
        document.setMargins(0, 0, 0, 0);

        try {
            //Se crea PDF
            PdfWriter.getInstance(document, new FileOutputStream(DESTINO));
            document.open();
            //se lee imagen origen
            BufferedImage image = ImageIO.read(new File(ORIGEN));
            //convierte la imagen en un array de bytes
            byte[] imageInByte;
            try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
                ImageIO.write(image, "jpg", baos);
                baos.flush();
                imageInByte = baos.toByteArray();

                //Un JPEG es la representacion de un elemento grafico (JPEG)
                //que debe insertarse en el documento
                document.add(new Jpeg(imageInByte, 640, 640));
                System.out.println("Fin");
            } catch (Exception e) {
                System.err.println(e.getMessage());
            }
        } catch (DocumentException | IOException e) {
            System.err.println(e.getMessage());
        } finally {
            if (document.isOpen()) {
                document.close();
            }
        }
    }
}

Ejecutando obtenemos:

convert jpg to pdf

enjoy!

Tags

Artículos similares

Ejemplo Cliente-Servidor en Android

Continuando con estos post de Cliente/Servidor, en esta oportunidad realizaremos un ejemplo usando un dispositivo móvil[...]

ANSI: Colorear consola de salida de Netbeans

Cuando realizamos proyectos java desde Netbeans, usamos System.out.println para imprimir datos en consola (para dep[...]

Qulqi: Convierte números a letras en java

Hola 🙂 publicando de tiempo les dejo esta chiti librería java para convertir números a su equivalente literal. La librer[...]

ExecutorService: Tareas asíncronas

Desde java 7 esta disponible la interface ExecutorService que se extiende de Executor y nos proporciona los métodos nece[...]

Introducción a MariaDB con Java

Maria DB  es un sistema de gestión de bases de datos derivado de MySQL con licencia GPL, pero con un rendimiento similar[...]

Proyecto de base de datos Firebird VB

En este proyecto realizaremos una aplicación de base de datos Firebird con el lenguaje de programación de Visual Basic d[...]