Saltar al pie de página
USANDO IRONPDF PARA JAVA

Cómo Previsualizar Archivos PDF en Java

Este artículo demostrará cómo usar IronPDF para previsualizar archivos PDF dentro de una aplicación Java.

HierroPDF

IronPDF es una biblioteca de Java de alto rendimiento, que ofrece operaciones rápidas y precisas, convirtiéndose en una excelente opción para tareas relacionadas con PDF, como la lectura de archivos PDF, extracción de texto e imágenes, unión y división.

Con la ayuda de la biblioteca IronPDF, puedes crear PDFs desde HTML, URLs y cadenas con un renderizado preciso a nivel de píxel.

Requisitos previos

Para crear un visor de documentos para documentos PDF en Java, necesitas tener en su lugar lo siguiente.

  1. JDK (Java Development Kit) y el marco de UI Swing instalados.
  2. Un IDE de Java (Entorno de Desarrollo Integrado) como Eclipse, NetBeans o IntelliJ IDEA.
  3. Biblioteca IronPDF para Java (Puedes descargarla desde el sitio web de IronPDF e incluirla en tu proyecto).

Configuración

  1. Crea un nuevo proyecto Java en tu IDE elegido. Estoy usando IntelliJ IDEA y creé el proyecto utilizando Maven.
  2. Añade la biblioteca IronPDF a tu proyecto usando Maven agregando las dependencias que se muestran a continuación en el archivo pom.xml de tu proyecto:

    <!-- Add IronPDF dependency in your pom.xml -->
    <dependency>
        <groupId>com.ironsoftware</groupId>
        <artifactId>ironpdf</artifactId>
        <version>latest_version</version>
    </dependency>
    <!-- Add IronPDF dependency in your pom.xml -->
    <dependency>
        <groupId>com.ironsoftware</groupId>
        <artifactId>ironpdf</artifactId>
        <version>latest_version</version>
    </dependency>
    XML
  3. Añade las importaciones necesarias:

    import com.ironsoftware.ironpdf.PdfDocument;
    
    import javax.imageio.ImageIO;
    import javax.swing.*;
    import javax.swing.border.EmptyBorder;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    import java.nio.file.Paths;
    import java.util.ArrayList;
    import java.util.List;
    import com.ironsoftware.ironpdf.PdfDocument;
    
    import javax.imageio.ImageIO;
    import javax.swing.*;
    import javax.swing.border.EmptyBorder;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    import java.nio.file.Paths;
    import java.util.ArrayList;
    import java.util.List;
    JAVA

Carga del formato de archivo PDF

Para visualizar documentos PDF, el siguiente paso es cargar el archivo PDF en esta aplicación Java de visor de PDF utilizando la clase [PdfDocument](/java/object-reference/api/com/Iron Software/ironpdf/PdfDocument.html).

public class PDFPreview extends JFrame {

    private List<String> imagePaths = new ArrayList<>();

    private List<String> ConvertToImages() throws IOException {
        // Load the PDF document from a file
        PdfDocument pdfDocument = PdfDocument.fromFile(Paths.get("example.pdf"));
        // Convert the PDF pages to a list of BufferedImages
        List<BufferedImage> extractedImages = pdfDocument.toBufferedImages();
        int i = 1;
        // Iterate over the extracted images and save each to an image file
        for (BufferedImage extractedImage : extractedImages) {
            String fileName = "assets/images/" + i + ".png";
            ImageIO.write(extractedImage, "PNG", new File(fileName));
            // Store the file paths in the image paths list
            imagePaths.add("assets/images/" + i + ".png");
            i++;
        }
        return imagePaths;
    }
}
public class PDFPreview extends JFrame {

    private List<String> imagePaths = new ArrayList<>();

    private List<String> ConvertToImages() throws IOException {
        // Load the PDF document from a file
        PdfDocument pdfDocument = PdfDocument.fromFile(Paths.get("example.pdf"));
        // Convert the PDF pages to a list of BufferedImages
        List<BufferedImage> extractedImages = pdfDocument.toBufferedImages();
        int i = 1;
        // Iterate over the extracted images and save each to an image file
        for (BufferedImage extractedImage : extractedImages) {
            String fileName = "assets/images/" + i + ".png";
            ImageIO.write(extractedImage, "PNG", new File(fileName));
            // Store the file paths in the image paths list
            imagePaths.add("assets/images/" + i + ".png");
            i++;
        }
        return imagePaths;
    }
}
JAVA

Cómo Previsualizar Archivos PDF en Java, Figura 1: El archivo PDF de salida El archivo PDF de salida

Convertido a Imágenes:

Cómo Previsualizar Archivos PDF en Java, Figura 2: Convertir archivo PDF a imágenes Convertir archivo PDF a imágenes

Creación de una ventana de visualización de PDF

Ahora, puedes mostrar las imágenes convertidas en una ventana de previsualización utilizando componentes de Java Swing.

public class PDFPreview extends JFrame {
    private JPanel imagePanel;
    private JScrollPane scrollPane;

    public PDFPreview() {
        try {
            // Convert the PDF to images and store the image paths
            imagePaths = this.ConvertToImages();
        } catch (Exception e) {
            e.printStackTrace();
        }

        // Create imagePanel
        imagePanel = new JPanel();
        imagePanel.setLayout(new BoxLayout(imagePanel, BoxLayout.Y_AXIS));

        // Add images to the panel
        for (String imagePath : imagePaths) {
            ImageIcon imageIcon = new ImageIcon(imagePath);
            JLabel imageLabel = new JLabel(imageIcon);
            imageLabel.setBorder(new EmptyBorder(10, 10, 10, 10));
            imagePanel.add(imageLabel);
        }

        // Create the scroll pane and add imagePanel to it
        scrollPane = new JScrollPane(imagePanel);
        scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);

        // Set up the frame
        getContentPane().add(scrollPane);
        setTitle("PDF Viewer");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        pack();
        setLocationRelativeTo(null);
        setVisible(true);
    }
}
public class PDFPreview extends JFrame {
    private JPanel imagePanel;
    private JScrollPane scrollPane;

    public PDFPreview() {
        try {
            // Convert the PDF to images and store the image paths
            imagePaths = this.ConvertToImages();
        } catch (Exception e) {
            e.printStackTrace();
        }

        // Create imagePanel
        imagePanel = new JPanel();
        imagePanel.setLayout(new BoxLayout(imagePanel, BoxLayout.Y_AXIS));

        // Add images to the panel
        for (String imagePath : imagePaths) {
            ImageIcon imageIcon = new ImageIcon(imagePath);
            JLabel imageLabel = new JLabel(imageIcon);
            imageLabel.setBorder(new EmptyBorder(10, 10, 10, 10));
            imagePanel.add(imageLabel);
        }

        // Create the scroll pane and add imagePanel to it
        scrollPane = new JScrollPane(imagePanel);
        scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);

        // Set up the frame
        getContentPane().add(scrollPane);
        setTitle("PDF Viewer");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        pack();
        setLocationRelativeTo(null);
        setVisible(true);
    }
}
JAVA

Invocar el constructor de la clase Main

Finalmente, coloca el siguiente código en el método principal de la clase PDFPreview:

public static void main(String[] args) {
    // Run the PDF viewer in the Event Dispatch Thread
    SwingUtilities.invokeLater(
        PDFPreview::new
    );
}
public static void main(String[] args) {
    // Run the PDF viewer in the Event Dispatch Thread
    SwingUtilities.invokeLater(
        PDFPreview::new
    );
}
JAVA

Explicación del código

  1. PDFPreview extiende JFrame, un contenedor de nivel superior para la creación de ventanas.
  2. Variables de instancia declaradas: imagePanel, scrollPane y imagePaths.
  3. ConvertToImages() toma el archivo PDF example.pdf y lo convierte en una serie de imágenes. La PdfDocument carga el archivo PDF y convierte cada página en una BufferedImage, luego guarda cada una como un PNG en el directorio assets/images/ y añade las rutas a imagePaths.
  4. PDFPreview() inicializa la aplicación. Llama a ConvertToImages() para poblar imagePaths.
  5. imagePanel se inicializa y establece su diseño como un diseño de caja vertical.
  6. Itera sobre imagePaths y crea ImageIcon para cada imagen, los añade a JLabel y añade las etiquetas a imagePanel.
  7. El código fuente crea un JScrollPane y establece imagePanel como su área de visualización.
  8. A continuación, el código añade scrollPane al panel de contenido del marco, establece el título del marco, establece la operación de cierre por defecto, empaqueta los componentes, centra el marco en la pantalla y lo hace visible.
  9. main() es el punto de entrada del programa. Invoca el constructor de PDFPreview usando SwingUtilities.invokeLater() para asegurar que los componentes Swing se creen y modifiquen en el Hilo de Despacho de Eventos, el hilo dedicado a las operaciones de GUI.

Ahora, ejecuta el programa y el visor de archivos del documento PDF se mostrará con el documento PDF cargado.

Cómo Previsualizar Archivos PDF en Java, Figura 3: El archivo PDF de salida El archivo PDF de salida

Conclusión

Este artículo demostró cómo usar IronPDF para aplicaciones basadas en Java para previsualizar archivos PDF dentro de una aplicación Java, y cómo acceder y mostrar un archivo PDF.

Con IronPDF, puedes integrar fácilmente la funcionalidad de previsualización de PDF en tu aplicación Java. Para obtener orientación y ejemplos detallados sobre cómo utilizar IronPDF para Java, puedes consultar este ejemplo. Para el tutorial del lector de PDF de Java visita este artículo para leer archivos PDF.

IronPDF es gratuito para propósitos de desarrollo. Para obtener más información sobre los detalles de la licencia, puedes visitar la página de licencias proporcionada. También está disponible una prueba gratuita para uso comercial.

Preguntas Frecuentes

¿Cómo puedo previsualizar archivos PDF en una aplicación Java?

Puedes previsualizar archivos PDF en una aplicación Java utilizando IronPDF para convertir las páginas del PDF en imágenes y luego mostrando estas imágenes usando componentes de Java Swing. Esto implica cargar un PDF con la clase PdfDocument, convertir las páginas a BufferedImage, y usar un JPanel y JScrollPane para mostrarlas.

¿Cuáles son los pasos para integrar una biblioteca PDF en mi proyecto Java?

Para integrar IronPDF en tu proyecto Java, incluye la biblioteca en el archivo pom.xml de tu proyecto como una dependencia de Maven con el ID de grupo 'com.ironsoftware' y el ID de artefacto 'ironpdf'. Asegúrate de tener instalado el JDK y un IDE de Java.

¿Cómo convierto las páginas de PDF en imágenes usando Java?

Con IronPDF, puedes convertir las páginas de PDF en imágenes cargando el documento PDF usando la clase PdfDocument y convirtiendo cada página en un BufferedImage. Estas imágenes se pueden guardar como archivos PNG para su uso posterior.

¿Qué componentes de Java se necesitan para mostrar páginas de PDF como imágenes?

Para mostrar páginas de PDF como imágenes en Java, puedes usar componentes Java Swing, específicamente un JPanel para contener las imágenes y un JScrollPane para permitir el desplazamiento a través de las imágenes.

¿Por qué es importante el Event Dispatch Thread al crear un visor de PDF en Java?

El Event Dispatch Thread (EDT) es crucial porque asegura que todos los componentes de Swing se creen y modifiquen en un hilo dedicado para operaciones de GUI, evitando posibles problemas de hilos en una aplicación Java.

¿Puedo usar IronPDF for Java sin licencia para el desarrollo?

Sí, IronPDF se puede usar gratis durante el desarrollo. También hay una prueba gratuita disponible para fines comerciales, lo que te permite explorar sus características antes de comprar una licencia.

¿Dónde puedo encontrar recursos adicionales para usar IronPDF en Java?

Recursos adicionales, ejemplos, y tutoriales para usar IronPDF en Java están disponibles en el sitio web de IronPDF. Estos recursos incluyen guías para crear PDFs desde HTML y varias técnicas de manipulación de PDF.

¿Cuál es el proceso para convertir páginas de PDF a imágenes y mostrarlas en Java Swing?

Para convertir páginas de PDF a imágenes usando IronPDF, carga el PDF usando PdfDocument, convierte cada página en un BufferedImage, y guárdalas como archivos PNG. Muestra estas imágenes usando un JPanel y JScrollPane en una aplicación Java Swing.

Darrius Serrant
Ingeniero de Software Full Stack (WebOps)

Darrius Serrant tiene una licenciatura en Ciencias de la Computación de la Universidad de Miami y trabaja como Ingeniero de Marketing WebOps Full Stack en Iron Software. Atraído por la programación desde joven, vio la computación como algo misterioso y accesible, convirtiéndolo en el ...

Leer más