我有一个用户可以下载的PDF。但是,我需要在PDF上的文本中下载它的日期。
有没有办法在PDF上插入“立即约会”标记,以便在开场时动态添加?
也许您可以将javascript添加到PDF?
答案 0 :(得分:0)
您可以在将PDF提供给用户之前对其进行签名和时间戳。签名可以每天执行一次(除非您需要更精细的粒度,如果时间戳时间)。这是将时间戳添加到PDF的唯一可靠方法。此外,签名可以删除,如果你想添加一个不容易删除的水印,这是一个不同的故事。
答案 1 :(得分:0)
JS听起来像是要走的路......主要是。
您可以在希望显示日期的位置添加空文本字段。当有人第一次打开PDF时,您可以设置字段的值。
问题:
如果您确实要标记下载时间,则需要在服务器上执行此操作。再次使用字段,这次只使用一些字节偏移量。
将关键字(或作者,无论是......您未使用的其中一个文档信息字段)设置为一堆空格......足以容纳您的最大时间戳。在脚本中,当窗体打开时,您始终将该信息字段写入时间戳字段。不用担心读者的使用。
现在,要实际编写时间戳,您需要知道PDF中该信息字段的确切字节偏移量,并且您需要知道必须使用多少空白空间,这样您就不会意外溢出(会很糟糕)。当提供PDF时,您可以获取字节数,更改时间戳记的字节数,并为这些修改后的字节提供服务。
这是最有效(和最脆弱)的方式。
如果您更愿意做正确的方法,请使用您喜欢的PDF库来更改表单值并提供生成的PDF。不需要脚本,但服务器的工作量要大得多。
注意:多个字段可以共享相同的名称。它们自动共享相同的价值。因此,如果您希望时间戳显示在每个页面上,则不需要“timestamp1”,“timestamp2”等。您可以为所有字段指定相同的名称,然后将值设置一次。 “你最喜欢的PDF库”可能无法很好地处理这个问题。 iText确实如此,我相信其他人也会这样做。