有谁知道是否可以通过本地 FDF 和 PDF 文件的命令行参数打开 PDF 并输入 FDF 文件。网上有几处参考资料表明这可以通过 http 完成。我需要跨文件系统执行此操作。以下示例不起作用,但可能是因为我的参数不正确:
....\acrobat.exe c:\temp\myPDF.pdf#fdf=c:\temp\myFDF.fdf
大约 15 分钟前,我对这个问题投了赞成票并加了星标,然后 5 分钟后我找到了解决方案。
没有关于如何通过命令行导入 FDF 的信息的原因是没有必要。要了解原因,我们需要查看 FDF 文件本身。
我一直在使用的 FDF 文件包含一行,其中所有字段及其值都为 <>。该行以;
/ID[<bit string><another bit string>]/UF(temp.pm.pdf)>>/Type/Catalog>>
我们感兴趣的 tl:dr 是文件名在 UF 之后的括号中。这就是 FDF 和 PDF 的关联方式。我已经用特殊字符包裹的标签替换了字段值和文件名值。当我的主应用程序写出 FDF 文件时, 它会使用值标签填充应该进入 PDF 中命名字段的数据,并将文件与 /uf 标签中命名的 PDF 相关联。我只测试了 Adobe Reader XI 和 FoxIt Reader v60,但我可以用任何一个阅读器打开 FDF,它会打开相关的 PDF 并填充它。输入错误的文件名,它会警告我找不到与此 FDF 关联的文件,并询问我是否要查找它。因此,如果您输入错误的文件名,甚至还有一些内置的恢复功能!
仅供参考,位字符串是第一次保存 PDF 时原始内容的表示,第二位字符串包含最近修改的版本。我真的不明白这一点,但它必须在那里。
此外,只要保持正确的语法,字段名和值可以按任何顺序排列。这很方便,因为您的字段不一定按逻辑顺序添加到文档中。
即使在我重新组织我的 FDF 并用我稍后处理的标签替换示例值之后,/ID[< >< >]的东西也需要在那里。不完全是人类可读的,并且似乎并不重要,但是如果没有它,它就会犹豫不决。
pdftk Example.pdf form_fill Example.fdf output ExampleFilled.pdf
会做你最初要求的。