
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.
IronPDF
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.
- JDK (Java Development Kit) y el marco de UI Swing instalados.
- Un IDE de Java (Entorno de Desarrollo Integrado) como Eclipse, NetBeans o IntelliJ IDEA.
- Biblioteca IronPDF for Java (Puedes descargarla desde el sitio web de IronPDF e incluirla en tu proyecto).
Configuración
-
Crea un nuevo proyecto Java en tu IDE elegido. Estoy usando IntelliJ IDEA y creé el proyecto utilizando Maven.
-
Añade la biblioteca IronPDF a tu proyecto utilizando Maven, añadiendo las dependencias que se muestran a continuación en el archivo
pom.xmlde tu proyecto:<!-- Add IronPDF dependency in your pom.xml --> <dependency> <groupId>com.ironsoftware</groupId> <artifactId>ironpdf</artifactId> <version>latest_version</version> </dependency>XML -
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;Java
Carga del formato de archivo PDF
Para ver documentos PDF, el siguiente paso es cargar el archivo PDF en esta aplicación de visualización de PDF for Java utilizando la clase PdfDocument.
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;
}
}
El archivo PDF de salida
Convertido 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);
}
}
Invocar el constructor de la clase Main
Por último, coloca el siguiente código en el método main de la clase PDFPreview:
public static void main(String[] args) {
// Run the PDF viewer in the Event Dispatch Thread
SwingUtilities.invokeLater(
PDFPreview::new
);
}
Explicación del código
PDFPreviewextiendeJFrame, un contenedor de nivel superior para la creación de ventanas.- Variables de instancia declaradas:
imagePanel,scrollPaneyimagePaths. ConvertToImages()toma el archivo PDFexample.pdfy lo convierte en una serie de imágenes. ElPdfDocumentcarga el archivo PDF y convierte cada página en unBufferedImage, luego guarda cada una como un PNG en el directorio assets/images/ y añade las rutas aimagePaths.PDFPreview()inicializa la aplicación. Llama aConvertToImages()para rellenarimagePaths.imagePanelse inicializa y establece su diseño como un diseño de cuadro vertical.- Recorre
imagePathsy creaImageIconpara cada imagen, las añade aJLabely añade etiquetas aimagePanel. - El código fuente crea
JScrollPaney estableceimagePanelcomo su ventana de visualización. - A continuación, el código añade
scrollPaneal panel de contenido del marco, establece el título del marco, configura la operación de cierre predeterminada, empaqueta los componentes, centra el marco en la pantalla y lo hace visible. main()es el punto de entrada del programa. Invoca el constructorPDFPreviewutilizandoSwingUtilities.invokeLater()para garantizar que los componentes Swing se crean y modifican en el hilo de envío de eventos, el hilo dedicado a las operaciones de la interfaz gráfica de usuario.
Ahora, ejecuta el programa y el visor de archivos del documento PDF se mostrará con el documento PDF cargado.
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 for 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.

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien estructurados y visualmente atractivos.
Artículos Relacionados


