我正在尝试将pdf.js集成到javafx应用程序中。我使用的示例viewer.html来自https://mozilla.github.io/pdf.js/getting_started/. 因此,我在webview中加载了带有空文件参数的viewer.html(因此最初不会呈现任何页面)。然后从代码运行pdfviewerapplication.open。这样做所需的pdf呈现良好。现在,如果我更改了pdf中的某些内容并运行pdfviewerapplication.open,查看器将重新加载,但会再次显示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文件还有什么可能是我的问题的原因?
暂无答案!
目前还没有任何答案,快来回答吧!