【问题标题】:Does pdf.js cache PDF files?pdf.js 是否缓存 PDF 文件?
【发布时间】: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);
    }
}

我怀疑可能会发生两个问题:

  1. CORS 存在问题,这是极不可能的,因为 PDF 已加载一次
  2. pdf文件以任何方式缓存在pdf.js中

因为我怀疑问题 2 更可能是我的问题: pdf.js 是否缓存 PDF 文件,如果有,我怎样才能让它停止缓存文件?如果它确实没有缓存 PDF 文件,还有什么可能是我的问题的原因?

【问题讨论】:

    标签: javascript java pdf webview pdf.js


    【解决方案1】:

    如何让它停止缓存文件?

    这个问题很老,但我添加了一个答案,因为我最近遇到了同样的问题,为了停止缓存文件,我只是在 pdf URL 之后添加了一个随机字符串,例如:

    {url}/100207300003.pdf?v678281
    

    这解决了一次又一次加载相同文件的问题。

    【讨论】:

      【解决方案2】:

      您说您正在更改 PDF 内容,但不清楚如何使用 PDF 编辑器将更改保存到完全打开的文件。

      编辑需要缓存完整的文件,以便在添加或删除 PDF 对象时计算它们之间的内部文件长度。

      当然,我们可以在浏览器中添加注释,然后可以将缓存的完整长度以及末尾的更改写入新的文件名。

      然后可以关闭缓存以便使用新文件名打开。打开旧文件名不会包含任何更改。

      【讨论】:

        猜你喜欢
        • 2019-07-18
        • 2016-11-21
        • 2014-01-24
        • 2013-03-10
        • 1970-01-01
        • 2015-12-30
        • 2021-03-27
        • 2016-04-02
        • 2011-11-24
        相关资源
        最近更新 更多