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 o Maven, adicionando as dependências mostradas abaixo no arquivo
pom.xmldo seu projeto:<dependency> <groupId>com.ironsoftware</groupId> <artifactId>ironpdf</artifactId> <version>latest_version</version> </dependency><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;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 aplicativo 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;
}
}
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);
}
}
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.
Por fim, insira 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
);
}
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 contêiner de nível superior para criação de janelas.- Variáveis de instância declaradas:
imagePanel,scrollPaneeimagePaths. 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 um PNG no diretório assets/images/ e adiciona os caminhos paraimagePaths.PDFPreview()inicializa o aplicativo. Ele chamaConvertToImages()para preencherimagePaths.imagePanelé inicializado e define seu layout como um layout de caixa vertical.- Ele itera sobre
imagePathse criaImageIconpara cada imagem, adiciona-os aJLabele adiciona rótulos aimagePanel. - O código-fonte cria
JScrollPanee defineimagePanelcomo sua viewport. - Em seguida, o código adiciona
scrollPaneao painel de conteúdo do frame, define o título do frame, define a operação de fechamento padrão, agrupa 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 na Event Dispatch Thread, a thread dedicada 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.
Perguntas frequentes
Como posso visualizar arquivos PDF em um aplicativo Java?
É possível visualizar arquivos PDF em uma aplicação Java utilizando o IronPDF para converter as páginas do PDF em imagens e, em seguida, exibindo essas imagens com componentes Java Swing. Isso envolve carregar um PDF com a classe PdfDocument , converter as páginas para BufferedImage e usar um JPanel e JScrollPane para exibi-las.
Quais são os passos para integrar uma biblioteca PDF em meu projeto Java?
Para integrar o IronPDF ao seu projeto Java, inclua a biblioteca no arquivo pom.xml do seu projeto como uma dependência Maven com o ID de grupo 'com.ironsoftware' e o ID de artefato 'ironpdf'. Certifique-se de ter o JDK e uma IDE Java instalados.
Como faço para converter páginas de um PDF em imagens usando Java?
Com o IronPDF, você pode converter páginas de PDF em imagens carregando o documento PDF usando a classe PdfDocument e convertendo cada página em um BufferedImage . Essas imagens podem então ser salvas como arquivos PNG para uso posterior.
Quais componentes Java são necessários para exibir páginas PDF como imagens?
Para exibir páginas de um PDF como imagens em Java, você pode usar componentes Java Swing, especificamente um JPanel para conter as imagens e um JScrollPane para permitir a rolagem entre elas.
Por que a Thread de Despacho de Eventos é importante ao criar um visualizador de PDF em Java?
A Thread de Despacho de Eventos (EDT) é crucial porque garante que todos os componentes Swing sejam criados e modificados em uma thread dedicada para operações de GUI, evitando potenciais problemas de threading em uma aplicação Java.
Posso usar o IronPDF for Java sem licença para desenvolvimento?
Sim, o IronPDF pode ser usado gratuitamente durante o desenvolvimento. Há também uma versão de avaliação gratuita disponível para fins comerciais, permitindo que você explore seus recursos antes de adquirir uma licença.
Onde posso encontrar recursos adicionais para usar o IronPDF em Java?
Recursos adicionais, exemplos e tutoriais para usar o IronPDF em Java estão disponíveis no site do IronPDF. Esses recursos incluem guias sobre como criar PDFs a partir de HTML e várias técnicas de manipulação de PDFs.
Qual é o processo para converter páginas PDF em imagens e exibi-las em Java Swing?
Para converter páginas de um PDF em imagens usando o IronPDF, carregue o PDF com PdfDocument , converta cada página em um BufferedImage e salve-as como arquivos PNG. Exiba essas imagens usando um JPanel e JScrollPane em uma aplicação Java Swing.




