【发布时间】:2021-03-13 22:26:43
【问题描述】:
我正在尝试将 pdf.js 集成到 Javafx 应用程序中。我使用来自https://mozilla.github.io/pdf.js/getting_started/ 的示例 viewer.html。所以我在 WebView 中加载带有空文件参数的 viewer.html(所以一开始没有呈现页面)。然后我从代码运行 PDFViewerApplication.open。这样做可以很好地呈现想要的 PDF。现在,如果我更改 PDF 中的某些内容并运行 PDFViewerApplication。打开查看器会重新加载,但会再次显示旧版本的 PDF。
我正在努力实现的最小示例:
public class Test extends Application {
@Override
public void start(Stage stage) throws Exception {
HBox root = new HBox();
Scene scene = new Scene(root);
WebView webView = new WebView();
root.getChildren().add(webView);
Button btn = new Button("load");
btn.setOnAction(event -> {
try {
webView.getEngine().executeScript("PDFViewerApplication.open(\"" + new File("latex/invoice.pdf").toURI().toURL().toString() + "\");");
} catch (MalformedURLException e) {
e.printStackTrace();
}
});
root.getChildren().add(btn);
stage.setScene(scene);
stage.show();
webView.getEngine().load(new File("js/web/viewer.html").toURI().toURL().toString());
}
public static void main(String[] args) {
launch(args);
}
}
我怀疑可能会发生两个问题:
- CORS 存在问题,这是极不可能的,因为 PDF 已加载一次
- pdf文件以任何方式缓存在pdf.js中
因为我怀疑问题 2 更可能是我的问题: pdf.js 是否缓存 PDF 文件,如果有,我怎样才能让它停止缓存文件?如果它确实没有缓存 PDF 文件,还有什么可能是我的问题的原因?
【问题讨论】:
标签: javascript java pdf webview pdf.js