【问题标题】:How to catch and modify a pdf, before browser gives it to download在浏览器提供下载之前如何捕获和修改pdf
【发布时间】:2021-05-05 02:41:57
【问题描述】:

我有页面。该页面上有一个按钮,其中有

click.delegate="savePdf()"

当我正在编写插件/“Chrome 扩展”时,我无法进入此功能,也无法从除该 PDF 之外的其他地方获取数据。我想知道是否有办法在使用该“savePdf”功能下载该PDF之前获取该PDF,以便我可以对其进行修改并将一些数据放入其中?也许你还有其他的想法,怎么做?

【问题讨论】:

    标签: javascript add-on


    【解决方案1】:

    出于一个非常特殊的原因,即安全性,您无法进入此函数。

    将您认为合适的任何数据注入到下载的 PDF 中,对您来说不符合任何人的最大利益。这个场景的背景是什么?

    您是否托管 PDF?如果是这样,请在服务进程到达浏览器/客户端之前添加数据。

    您不拥有 PDF 吗?如果是这样,那么在数据到达用户之前将数据注入到其他人的内容中是非常不道德的。

    【讨论】:

    • 是的,我们是该 PDF 的所有者。您能否举例说明如何“在服务过程中添加数据”?
    • 您没有提供足够的信息让我回答这个问题。如果您希望以编程方式向 PDF 添加信息,则需要发布一个全新的问题,其中包含更多相关的技术细节。或者,也许用一些相关的代码 sn-ps 和信息来更新这个问题。另外,您是否对我的回答投了反对票?如果是这样,我相信您应该接受它,因为我已经根据给定的信息尽可能地处理了这个问题。
    • 谢谢。我没有投反对票,但我现在投赞成票了..
    • 您是否创建了另一个与为 PDF 服务的任何流程相关的问题?有了更多的细节,我可以提供更多的帮助。
    【解决方案2】:

    你不能用浏览器Javascript修改pdf,但你可以修改/拦截功能

    function savePdf() {
      console.log('downloading pdf')
    }
    
    var oldSavePdf = savePdf;
    
    savePdf = function() {
      console.log('downloading from other location')
      //oldSavePdf();
    }
    
    savePdf();

    【讨论】:

    • 谢谢。但是如果我不能得到那个旧功能(它是隐藏的)。那有没有办法呢?
    猜你喜欢
    • 1970-01-01
    • 2010-09-22
    • 2016-06-21
    • 1970-01-01
    • 2018-11-10
    • 1970-01-01
    • 2018-12-11
    • 2011-06-03
    • 1970-01-01
    相关资源
    最近更新 更多