在我们的一个应用程序中,我们将数据库中的脚本转储数据转换为格式良好的XDP文件,用户可以下载该文件。 XDP通过<pdf>
标记包含对同一服务器上的PDF的引用。想法是用户可以转储数据,获取XDP,它将下载PDF并自动填写数据,然后可以保存,打印或发送电子邮件。
问题是Adobe Reader(或Acrobat)会打开默认Web浏览器以尝试下载PDF,如果从浏览器打开它,它不会自动填充从数据库转储的数据。如果我使用XDP并使用文本编辑器将<pdf>
标记中的链接更改为本地下载的副本,则表单填充正常,因此XDP写入正确,但这不是一个实际的解决方案,因为大多数用户不知道该怎么做。
我的问题是,是否有办法自动执行此过程,以便Adobe Reader或Acrobat下载PDF文件并自动填充数据,并且不会尝试通过Web浏览器路由该过程。
使用搜索者的答案,我们在PHP中提出了以下简短代码:
$filename = ""; // Your file here
$contents = base64_encode(file_get_contents($filename));
然后在处理XML的PHP文件中:
<pdf xmlns="http://ns.adobe.com/xdp/pdf/">
<document>
<chunk><?php echo $contents ?></chunk>
</document>
</pdf>
答案 0 :(得分:2)
我今天正在处理完全相同的问题。您应该在xdp文件中使用Base64编码包含PDF文件。
在您的XDP文件中将此<pdf href="http://.../form.pdf">
替换为:
<pdf xmlns="http://ns.adobe.com/xdp/pdf/"><document>
<chunk>**CONTENT OF YOUR PDF IN BASE64 GOES HERE**</chunk>
</document>
</pdf>
那应该可以解决你的问题。