[英]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.