Visualiser un fichier PDF avec l'api Acrobat viewer JavaBean

Heureusement, la société Acrobat a développé une API pour visualiser un document PDF en Java. Acrobat viewer permet d'ouvrir et imprimer des fichiers PDF à partir d'une application Java, JavaBean ou les applets java. Dans ce tutoriel, on va intégrer Acrobat viewer dans notre application faite avec JFrame.

L'api Acrobat viewer est disponible dans http://www.java2s.com/Code/JarDownload/acrobat/acrobat-1.1.jar.zip. Téléchargez la et extrayez le fichier Acrobat.jar dans votre projet, puis importez la bibliothèque dans votre IDE Eclipse ou Netbeans.

Maintenant, comment procéder pour ouvrir un fichier PDF? L'API Java Beans fournit des étapes simples à suivre et faciles pour visualiser un document PDF dans l'application Java. Voici les étapes pour la création du lecteur PDF:
  1. Créer le JFrame dont le visualiseur Acrobat va être ajouté;
  2. Créer l'objet Viewer(une classe de java.awt.Component) pour afficher le PDF et l'ajouter dans JFrame:
    • Viewer viewer = new Viewer();
    • frame.add(viewer, BorderLayout.CENTER);
    1. Choisir le document
      • FileInputStream fis = new FileInputStream(nomfichier);
      1. Définir le FileInputStream comme argument dans viewer:
        • viewer.setDocumentInputStream(fis);
        1. Créer la mise en page qui fait apparaître le document:
          • viewer.activate();
        Le chemin du fichier peut être indiqué aussi par la méthode:

        setDocumentURL(java.lang.String url)
        Exemple:

        import java.awt.BorderLayout;
        import java.io.FileInputStream;
        import javax.swing.JFrame;
        import javax.swing.JPanel;
        import com.adobe.acrobat.Viewer;
        /*
        * www.codeurjava.com
        */
        public class lecteurPDF extends JPanel{

        private Viewer viewer;

        public lecteurPDF(String nomfichier) throws Exception{
        this.setLayout(new BorderLayout());

        //créer le viewer qui va servir à afficher le contenu du pdf
        viewer = new Viewer();
        this.add(viewer, BorderLayout.CENTER);
        FileInputStream fis = new FileInputStream(nomfichier);
        viewer.setDocumentInputStream(fis);
        viewer.activate();
        }

        public static void main(String[] args) throws Exception {

        String nomfichier = "delphi.pdf";
        lecteurPDF lecteur = new lecteurPDF(nomfichier);
        //créer le JFrame
        JFrame f = new JFrame("Lecteur PDF");
        f.setSize(1024,768);
        f.setLocationRelativeTo(null);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);
        f.getContentPane().add(lecteur);
        }
        }
        Visualiser un fichier PDF en java avec acrobat viewer

        Récupérer le nombre de page et la page courante

        Le nombre de page et la page courante sont obtenues avec les méthodes getPageCount() et getCurrentPage().Par exemple, on veut afficher le nombre total des pages et le numéro de la page courante:

        System.out.println("Nombre de pages: "+viewer.getPageCount());
        System.out.println("Page courante: "+viewer.getCurrentPage());
        Page Count: 50
        Current Page: 0

        Modifier le Zoom

        Pour régler le niveau du zoom de la page courante, utilisez la méthode zoomTo(double). Le zoom à 100% correspond à 1.0 dans la méthode zoomTo().

        viewer.zoomTo(0.5);

        Obtenir le titre du PDF en Java

        Le titre est obtenu avec la méthode getTitle() 

        PDFBookmark bookmark=viewer.getRootBookmark();
        String titre=bookmark.getTitle();
        Référence