Afficher un fichier PDF avec Java

L'exemple montre comment ouvrir un fichier PDF avec Java.

Une WebView JavaFX est utilisée pour charger la librairie PDFJS. PDFJS est une visionneuse PDF utilisée normalement pour le Web.

Vous pouvez lire l'article sur les WebViews avec JavaFX et l'article sur PDFJS.

package fr.ronanlefichant.pdfviewer;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;

public class App extends Application {

 @Override
 public void start(Stage primaryStage) {

  /* Création de la WebView et du moteur */
  WebView webView = new WebView();
  WebEngine webEngine = webView.getEngine();

  /*
   * Le chemin absolu du viewer de pdfjs Vous pouvez télécharger pdfjs et le
   * viewer sur https://mozilla.github.io/pdf.js/getting_started
   */
  String pdfjsViewerPath = "file:///chemin/vers/pdfjs-2.6.347-dist/web/viewer.html";

  /* Le chemin absolu du fichier PDF à ouvrir */
  String pdfFilePath = "file:///chemin/vers/fichier.pdf";

  /* Concaténation des chemins absolus avec l'argument ?file= */
  String pdfjsAndFileConcat = pdfjsViewerPath + "?file=" + pdfFilePath;
  
  /* Charge le contenu HTML */
  webEngine.loadContent("<!DOCTYPE html>\n"
          + "<html lang=\"fr\">\n"
          + "\n"
          + "<head>\n"
          + "    <meta charset=\"UTF-8\">\n"
          + "    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n"
          + "    <title>Document PDF</title>\n"
          + "\n"
          + "    <style>\n"
          + "        html,\n"
          + "        body {\n"
          + "            /* reset */\n"
          + "            margin: 0;\n"
          + "            height: 100%;\n"
          + "            /* important pour enlever la barre de défilement verticale */\n"
          + "            overflow: hidden;\n"
          + "        }\n"
          + "\n"
          + "        #pdf-viewer {\n"
          + "            /* Plein écran */\n"
          + "            width: 100%;\n"
          + "            height: 100%;\n"
          + "            /* important pour enlever la barre de défilement verticale */\n"
          + "            border: none;\n"
          + "        }\n"
          + "    </style>\n"
          + "</head>\n"
          + "\n"
          + "<body>\n"
          + "\n"
          + "    <!--\n"
          + "    vous pouvez télécharger pdfjs et le viewer sur https://mozilla.github.io/pdf.js/getting_started/\n"
          + "    -->\n"
          + "    <iframe id=\"pdf-viewer\" src=\""+ pdfjsAndFileConcat  +"\"></iframe>\n"
          + "\n"
          + "</body>\n"
          + "\n"
          + "</html>");

  Scene scene = new Scene(webView, 1280, 720);
  primaryStage.setScene(scene);
  primaryStage.show();

 }

 public static void main(String[] args) {
  launch();
 }

}

Commentaires