繁体   English   中英

PDF 在 javafx webview 中根本不加载

[英]PDF doesn't load at all in javafx webview

这段代码的目的是通过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();
               }

            }

        }

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

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

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

我不知道您使用的是哪个 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 中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM