Comment prévisualiser des fichiers PDF en Java
Cet article démontrera comment utiliser IronPDF pour prévisualiser des fichiers PDF dans une application Java.
IronPDF
IronPDF est une bibliothèque Java haute performance, offrant des opérations rapides et précises, ce qui en fait un excellent choix pour les tâches liées aux PDF telles que la lecture de fichiers PDF, l'extraction de texte et d'images, la fusion et la division.
Avec l'aide de la bibliothèque IronPDF, vous pouvez créer des PDF à partir de HTML, d'URLs et de chaînes avec un rendu pixel parfait précis.
Prérequis
Pour créer un visionneur de documents pour les documents PDF en Java, vous avez besoin des éléments suivants en place.
- JDK (Java Development Kit) et framework UI Swing installés.
- Un IDE Java (Environnement de Développement Intégré) tel que Eclipse, NetBeans ou IntelliJ IDEA.
- Bibliothèque IronPDF for Java (Vous pouvez la télécharger depuis le site web IronPDF et l'inclure dans votre projet).
Configuration
- Créez un nouveau projet Java dans votre IDE choisi. J'utilise IntelliJ IDEA et j'ai créé le projet en utilisant Maven.
-
Ajoutez la bibliothèque IronPDF à votre projet en utilisant Maven en ajoutant les dépendances indiquées ci-dessous dans le fichier
pom.xmlde votre projet :<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 -
Ajoutez les imports nécessaires :
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
Chargement du format de fichier PDF
Pour visualiser les documents PDF, l'étape suivante consiste à charger le fichier PDF dans cette application de visualisation PDF Java en utilisant la 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;
}
}
Le fichier PDF de sortie
Converti en images :
Convertir un fichier PDF en images
Création de la fenêtre du visionneur PDF
Maintenant, vous pouvez afficher les images converties dans une fenêtre de prévisualisation en utilisant les composants 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);
}
}
Invoquer le constructeur de la classe principale
Enfin, placez le code suivant dans la méthode main de la 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
);
}
Explication du code
PDFPreviewétendJFrame, un conteneur de niveau supérieur pour la création de fenêtres.- Variables d'instance déclarées :
imagePanel,scrollPaneetimagePaths. ConvertToImages()prend en entrée le fichier PDFexample.pdfet le convertit en une série d'images. LePdfDocumentcharge le fichier PDF et convertit chaque page en unBufferedImage, puis enregistre chacune en tant que PNG dans le répertoire assets/images/ et ajoute les chemins àimagePaths.PDFPreview()initialise l'application. Il appelleConvertToImages()pour remplirimagePaths.imagePanelest initialisé et définit sa disposition comme une disposition de boîte verticale.- Il itère sur
imagePathset créeImageIconpour chaque image, les ajoute àJLabelet ajoute des étiquettes àimagePanel. - Le code source crée
JScrollPaneet définitimagePanelcomme sa fenêtre d'affichage. - Ensuite, le code ajoute
scrollPaneau volet de contenu du cadre, définit le titre du cadre, définit l'opération de fermeture par défaut, regroupe les composants, centre le cadre sur l'écran et le rend visible. main()est le point d'entrée du programme. Il invoque le constructeurPDFPreviewen utilisantSwingUtilities.invokeLater()pour garantir que les composants Swing sont créés et modifiés sur le thread de répartition des événements, le thread dédié aux opérations d'interface graphique.
Maintenant, exécutez le programme et le lecteur de fichiers de document PDF sera affiché avec le document PDF chargé.
Le fichier PDF de sortie
Conclusion
Cet article a démontré comment utiliser IronPDF pour les applications basées sur Java afin de prévisualiser des fichiers PDF dans une application Java, et comment accéder et afficher un fichier PDF.
Avec IronPDF, vous pouvez facilement intégrer la fonctionnalité de prévisualisation PDF dans votre application Java. Pour des conseils détaillés et des exemples sur l'utilisation de IronPDF for Java, vous pouvez vous référer à cet exemple. Pour le tutoriel de lecteur PDF Java, visitez cet article pour lire des fichiers PDF.
IronPDF est gratuit à des fins de développement. Pour en savoir plus sur les détails de la licence, vous pouvez visiter la page de licence fournie. Une version d'essai gratuite à des fins commerciales est également disponible.
Questions Fréquemment Posées
Comment puis-je prévisualiser des fichiers PDF dans une application Java?
Vous pouvez prévisualiser des fichiers PDF dans une application Java en using IronPDF pour convertir les pages de PDF en images, puis en affichant ces images en utilisant les composants Java Swing. Cela implique de charger un PDF avec la classe PdfDocument, de convertir les pages en BufferedImage, et d'utiliser un JPanel et un JScrollPane pour les afficher.
Quelles sont les étapes pour intégrer une bibliothèque PDF dans mon projet Java?
Pour intégrer IronPDF dans votre projet Java, incluez la bibliothèque dans votre fichier pom.xml du projet comme dépendance Maven avec l'ID du groupe 'com.ironsoftware' et l'ID de l'artéfact 'ironpdf'. Assurez-vous d'avoir installé JDK et un IDE Java.
Comment convertir des pages PDF en images en utilisant Java?
Avec IronPDF, vous pouvez convertir des pages PDF en images en chargeant le document PDF à l'aide de la classe PdfDocument et en convertissant chaque page en un BufferedImage. Ces images peuvent ensuite être enregistrées sous forme de fichiers PNG pour une utilisation ultérieure.
Quels composants Java sont nécessaires pour afficher les pages PDF en tant qu'images?
Pour afficher les pages PDF en tant qu'images en Java, vous pouvez utiliser les composants Swing Java, notamment un JPanel pour contenir les images et un JScrollPane pour permettre de faire défiler les images.
Pourquoi le Event Dispatch Thread est-il important lors de la création d'un visualisateur PDF en Java?
Le Event Dispatch Thread (EDT) est crucial car il garantit que tous les composants Swing sont créés et modifiés sur un thread dédié aux opérations d'interface utilisateur, évitant ainsi les problèmes de threading potentiels dans une application Java.
Puis-je utiliser IronPDF for Java sans licence pour le développement?
Oui, IronPDF peut être utilisé gratuitement pendant le développement. Il existe également un essai gratuit pour les usages commerciaux, vous permettant d'explorer ses fonctionnalités avant d'acheter une licence.
Où puis-je trouver des ressources supplémentaires pour utiliser IronPDF en Java?
Des ressources supplémentaires, des exemples et des tutoriels pour utiliser IronPDF en Java sont disponibles sur le site Web de IronPDF. Ces ressources incluent des guides sur la création de PDF à partir de HTML et diverses techniques de manipulation de PDF.
Quel est le processus pour convertir des pages PDF en images et les afficher dans Java Swing?
Pour convertir des pages PDF en images en using IronPDF, chargez le PDF à l'aide de PdfDocument, convertissez chaque page en BufferedImage et enregistrez-les en tant que fichiers PNG. Affichez ces images à l'aide d'un JPanel et d'un JScrollPane dans une application Java Swing.



