【发布时间】: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();
}
}
}
【问题讨论】: