【问题标题】:PDF doesn't load at all in javafx webviewPDF 在 javafx webview 中根本不加载
【发布时间】:2018-01-21 19:43:38
【问题描述】:

这段代码的目的是通过webview显示一个pdf文件。
pdf 在按钮单击时被读取,但屏幕保持白色并永远加载。一旦我单击按钮,pdf 查看器会在 web 视图中加载,没有任何错误,并且没有任何反应。

    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();
               }

            }

        }

【问题讨论】:

    标签: java javafx pdf.js


    【解决方案1】:

    Javafx 不是 JDK 11(LTS) 及更高版本的一部分,它可作为单独的独立版本使用。

    OpenJavaFX : https://gluonhq.com/products/javafx/

    Javafx 13 中包含对 PDF 加载问题的修复。

    【讨论】:

      【解决方案2】:

      我不知道你有哪个 Java 版本,但是使用 java 1.8_131 和更高版本的 JavaFX 和 pdf.js 的 WebView 存在一个已知错误:https://bugs.openjdk.java.net/browse/JDK-8180825。是字体问题。

      正如错误票中所指出的,Java 9 中包含了一个修复程序。我刚刚尝试过,它可以工作。

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

      编辑:该修复也包含在 java 1.8_152 中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-09-03
        • 2019-02-13
        • 1970-01-01
        • 2013-10-05
        • 2014-07-04
        • 2012-05-18
        • 1970-01-01
        • 2016-02-24
        相关资源
        最近更新 更多