2017-08-14 7 views
0

このコードの目的は、webviewを通じてpdfファイルを表示することです。
pdfはボタンクリックで読み込まれますが、画面は白のままで、永久に読み込まれます。一度ボタンをクリックすると、Webビューにpdfビューアがロードされるのでエラーはありません。何も起こりません。javafx webview

public class customFXMLController implements Initializable { 

      @FXML 
      private TabPane tabPane; 
      @FXML 
      private WebView web; 

      @FXML 
      private Button btn; 

      WebEngine engine; 

      @Override 
      public void initialize(URL location, ResourceBundle rb) { 
       engine = web.getEngine(); 
       String url = getClass().getResource("/web/viewer.html").toExternalForm(); 
       engine.setUserStyleSheetLocation(getClass().getResource("/web/viewer.css").toExternalForm()); 
       engine.setJavaScriptEnabled(true); 
       engine.load(url);  
      } 

      public void getWebView() { 
       startPDF(); 
       tabPane.getSelectionModel().select(1); 

      } 

//this is the button click event 
      public void startPDF() { 
       try { 
        byte[] data = Files.readAllBytes(new File("C:/Users/dan1223/Desktop/TelevisionMan.pdf").toPath()); 
        String base64 = Base64.getEncoder().encodeToString(data); 
        web.getEngine().executeScript("openFileFromBase64('" + base64 + "')"); 

       } catch (Exception e) { 
        e.printStackTrace(); 
       } 

      } 

     } 

答えて

0

は、私はあなたが持っているかどのバージョンのJavaを知らないが、JavaFXののWebViewのとJava 1.8_131と高い使用pdf.jsと既知のバグがあります:https://bugs.openjdk.java.net/browse/JDK-8180825が。フォントの問題です。

バグのチケットで指摘されているように、Java 9に修正が含まれています。私はそれを試してみました。

のJava JDK 9:http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.html

EDIT:修正プログラムはまた、Java 1.8_152に含まれています。

関連する問題