
Como visualizar arquivos PDF em Java
Este artigo demonstrará como usar o IronPDF para visualizar arquivos PDF em um aplicativo Java.
IronPDF
IronPDF é uma biblioteca Java de alto desempenho, que oferece operações rápidas e precisas, tornando-a uma excelente escolha para tarefas relacionadas a PDFs, como leitura de arquivos PDF , extração de texto e imagens , mesclagem e divisão .
Com a ajuda da biblioteca IronPDF , você pode criar PDFs a partir de HTML , URLs e strings com renderização precisa e perfeita em cada pixel.
Pré-requisitos
Para criar um visualizador de documentos PDF em Java, você precisa configurar os seguintes elementos.
- JDK (Java Development Kit) e framework de interface gráfica Swing instalados.
- Um ambiente de desenvolvimento integrado (IDE) Java, como Eclipse, NetBeans ou IntelliJ IDEA.
- Biblioteca IronPDF for Java (Você pode baixá-la do site da IronPDF e incluí-la em seu projeto).
Configurando
-
Crie um novo projeto Java na sua IDE preferida. Eu estou usando o IntelliJ IDEA e criei o projeto usando o Maven.
-
Adicione a biblioteca IronPDF ao seu projeto usando Maven, adicionando as dependências mostradas abaixo no arquivo
pom.xmldo seu projeto:<!-- Add IronPDF dependency in your pom.xml --> <dependency> <groupId>com.ironsoftware</groupId> <artifactId>ironpdf</artifactId> <version>latest_version</version> </dependency>XML -
Adicione as importações necessárias:
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
Carregando o formato de arquivo PDF
Para visualizar documentos PDF, o próximo passo é carregar o arquivo PDF neste visualizador de PDF em Java usando a classe 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;
}
}
O arquivo PDF de saída
Convertido em imagens:
Converter arquivo PDF em imagens
Criando uma janela de visualização de PDF
Agora, você pode exibir as imagens convertidas em uma janela de pré-visualização usando componentes 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);
}
}
Invoque o construtor da classe principal.
Finalmente, coloque o seguinte código no método principal da classe PDFPreview:
public static void main(String[] args) {
// Run the PDF viewer in the Event Dispatch Thread
SwingUtilities.invokeLater(
PDFPreview::new
);
}
Explicação do código
PDFPreviewestendeJFrame, um container de nível superior para criação de janelas.- Variáveis de instância declaradas:
imagePanel,scrollPane, eimagePaths. ConvertToImages()recebe o arquivo PDFexample.pdfe o converte em uma série de imagens. OPdfDocumentcarrega o arquivo PDF e converte cada página em umBufferedImage, depois salva cada um como PNG no diretório assets/images/ e adiciona os caminhos aimagePaths.PDFPreview()inicializa a aplicação. ChamaConvertToImages()para popularimagePaths.imagePanelé inicializado e define seu layout como um layout de caixa vertical.- Ele itera sobre
imagePathse criaImageIconpara cada imagem, adiciona-os aJLabel, e adiciona rótulos aimagePanel. - O código-fonte cria
JScrollPanee defineimagePanelcomo seu viewport. - Em seguida, o código adiciona
scrollPaneao content pane do frame, define o título do frame, configura a operação de fechamento padrão, empacota os componentes, centraliza o frame na tela e o torna visível. main()é o ponto de entrada do programa. Ele invoca o construtorPDFPreviewusandoSwingUtilities.invokeLater()para garantir que os componentes Swing sejam criados e modificados no Event Dispatch Thread, o thread dedicado para operações de GUI.
Agora, execute o programa e o visualizador de arquivos PDF será exibido com o documento PDF carregado.
O arquivo PDF de saída
Conclusão
Este artigo demonstrou como usar o IronPDF para aplicações baseadas em Java para visualizar arquivos PDF dentro de uma aplicação Java, e como acessar e exibir um arquivo PDF.
Com o IronPDF, você pode integrar facilmente a funcionalidade de visualização de PDF em sua aplicação Java. Para obter orientações detalhadas e exemplos sobre como utilizar o IronPDF for Java, você pode consultar este exemplo . Para um tutorial sobre como ler arquivos PDF usando o leitor de PDF em Java, visite este artigo .
O IronPDF é gratuito para fins de desenvolvimento. Para obter mais detalhes sobre o licenciamento, você pode visitar a página de licenciamento fornecida. Está disponível também uma versão de teste gratuita para uso comercial.

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.
Artigos relacionados


