我正在尝试将pdf.js集成到Javafx应用程序中。我使用来自https://mozilla.github.io/pdf.js/getting_started/的示例https://mozilla.github.io/pdf.js/getting_started/。因此,我在一个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);
}
}
我怀疑有两个问题可能会发生:
中缓存时,都会加载
因为我怀疑问题2更有可能,我的问题是: pdf.js缓存PDF文件吗?如果有,我如何使它停止缓存文件?如果它不缓存PDF文件,还有什么原因会导致我的问题呢?
发布于 2021-08-14 11:11:31
您说您正在更改PDF内容,但不清楚PDF编辑器是如何将更改保存到完全打开的文件中。
编辑需要缓存完整文件,以便在添加或删除PDF对象时计算它们之间的内部文件长度。
当然,我们可以在浏览器中添加注释,然后可以将整个缓存长度随末尾的变化写入一个新的文件名。
然后可以关闭缓存,以便使用新的文件名打开缓存。打开旧文件名将不包括任何更改。
https://stackoverflow.com/questions/65099999
复制相似问题