mirror of
https://github.com/LucasVbr/LecteurPdfDoubleAffichage.git
synced 2026-07-09 20:57:44 +00:00
Ajout commentaires PDF, Page et Fenêtre
Modification recharger/charger => charger uniquement Ajout affichage Vertical/Horizontal Methodes de Tests pour Page et Fenêtre
This commit is contained in:
@@ -23,27 +23,19 @@ import java.io.IOException;
|
||||
*/
|
||||
public class PDF extends JPanel {
|
||||
|
||||
/**
|
||||
* Espacement entre chaque page
|
||||
*/
|
||||
public static final int OFFSET_PAGES = 10; // px
|
||||
|
||||
/**
|
||||
* Document PDF chargé
|
||||
*/
|
||||
/** Document chargé */
|
||||
private final PDDocument document;
|
||||
|
||||
/**
|
||||
* Les pages du PDF sous forme de JLabel contenant des images
|
||||
*/
|
||||
/** Les pages chargés */
|
||||
private final Page[] pages;
|
||||
|
||||
/** Le zoom des pages du document */
|
||||
private float zoom;
|
||||
|
||||
/**
|
||||
* Crée un document PDF qui est capable d’être affiché dans une fenêtre
|
||||
* Crée un document PDF affichable dans une fenêtre
|
||||
*
|
||||
* @param fichier Le fichier PDF que l’on veut ouvrir
|
||||
* @param fichier Le fichier que l’on veut ouvrir
|
||||
* @throws IllegalArgumentException si le fichier n’existe pas
|
||||
*/
|
||||
public PDF(File fichier, boolean vertical) throws IOException {
|
||||
@@ -67,18 +59,15 @@ public class PDF extends JPanel {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
System.out.println("PDF: Loaded successfully");
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Le nombre de pages chargées
|
||||
* Défini le zoom des pages du document
|
||||
*
|
||||
* @param zoom la nouvelle valeur du zoom (1.0f == 100%)
|
||||
*/
|
||||
public int getNbPages() {
|
||||
return document.getNumberOfPages();
|
||||
}
|
||||
|
||||
public void setZoom(float zoom) {
|
||||
this.zoom = zoom;
|
||||
loadPages();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,12 +30,6 @@ public class Page extends JLabel {
|
||||
/** Zoom de la page (1.0f == 100 %, 0.5 == 50%, ...) */
|
||||
private final float ZOOM;
|
||||
|
||||
/** Hauteur de la page */
|
||||
private int hauteur;
|
||||
|
||||
/** Largeur de la page */
|
||||
private int largeur;
|
||||
|
||||
/** Image de la page générée */
|
||||
private final ImageIcon IMAGE_ICON;
|
||||
|
||||
@@ -74,15 +68,13 @@ public class Page extends JLabel {
|
||||
public Page(PDDocument document, int index, float zoom) throws
|
||||
IllegalArgumentException,
|
||||
IOException {
|
||||
if (!isValid(document, index)) {
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
if (!isValid(document, index)) throw new IllegalArgumentException();
|
||||
|
||||
this.INDEX = index;
|
||||
this.ZOOM = zoom;
|
||||
this.IMAGE_ICON = generateImage(document);
|
||||
this.IMAGE_ICON = generateImage(document); // Génère la page
|
||||
|
||||
/* Render */
|
||||
/* Fait le rendu de la page */
|
||||
this.setIcon(IMAGE_ICON);
|
||||
}
|
||||
|
||||
@@ -109,30 +101,20 @@ public class Page extends JLabel {
|
||||
*/
|
||||
private ImageIcon generateImage(PDDocument document) throws IOException {
|
||||
|
||||
/* Défini la qualité de l’image par rapport au zoom */
|
||||
final int DPI = 120;
|
||||
int imageScale = (ZOOM > 1.0f) ? Image.SCALE_SMOOTH : Image.SCALE_FAST;
|
||||
|
||||
/* Crée une image de la page à afficher */
|
||||
PDFRenderer pdfRenderer = new PDFRenderer(document);
|
||||
BufferedImage bufferedImage = pdfRenderer.renderImageWithDPI(INDEX, DPI);
|
||||
|
||||
this.largeur = (int)(bufferedImage.getWidth() * ZOOM);
|
||||
this.hauteur = (int)(bufferedImage.getHeight() * ZOOM);
|
||||
/* Redimensionne l'image */
|
||||
final int LARGEUR = (int)(bufferedImage.getWidth() * ZOOM);
|
||||
final int HAUTEUR = (int)(bufferedImage.getHeight() * ZOOM);
|
||||
|
||||
return new ImageIcon(bufferedImage.getScaledInstance(largeur, hauteur,
|
||||
/* Retourne l’image à la bonne taille */
|
||||
return new ImageIcon(bufferedImage.getScaledInstance(LARGEUR, HAUTEUR,
|
||||
imageScale));
|
||||
}
|
||||
|
||||
/**
|
||||
* @return La hauteur de la page
|
||||
*/
|
||||
public int getHauteur() {
|
||||
return hauteur;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return La largeur de la page
|
||||
*/
|
||||
public int getLargeur() {
|
||||
return largeur;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user