使用远程 PDF 的 XDP 文件

发布于 2024-11-24 02:03:37 字数 872 浏览 2 评论 0原文

在我们的一个应用程序中,我们有一个脚本将数据库中的数据转储到格式良好的 XDP 文件中,用户可以下载该文件。 XDP 通过 标签包含对同一服务器上 PDF 的引用。这个想法是用户可以转储数据,获取 XDP,XDP 将下载 PDF 并自动填写数据,然后可以保存、打印或通过电子邮件发送。

问题是 Adob​​e Reader(或 Acrobat)会打开默认的 Web 浏览器来尝试下载 PDF,如果您从浏览器打开它,它不会自动填充从数据库转储的数据。如果我使用 XDP 并使用文本编辑器将 标记中的链接更改为本地下载的副本,则表单填充正常,因此 XDP 写入正确,但这不是一个实用的解决方案,因为大多数用户不知道如何做到这一点。

我的问题是是否有一种方法可以自动执行此过程,以便 Adob​​e Reader 或 Acrobat 自动下载 PDF 文件并填充数据,而不是尝试通过 Web 浏览器路由该过程。

编辑

使用 Seeker 的答案,我们在 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>

In one of our applications, we have a script dump data from a database into a well-formed XDP file, which the user can download. The XDP contains a reference to a PDF on the same server via the <pdf> tag. The idea is the user can dump the data, get the XDP, which will download the PDF and automatically fill in the data, which they can then save, print, or e-mail.

The problem is that Adobe Reader (or Acrobat) instead opens the default web browser to try to download the PDF, and if you open it from the browser it does not automatically populate the data dumped from the database. If I take the XDP and use a text editor to change the link in the <pdf> tag to a locally downloaded copy, the form populates fine, so the XDP is written correctly, however this is not a practical solution, as most users wouldn't know how to do that.

My question is if there is a way to automate this process, so that Adobe Reader or Acrobat downloads the PDF file and populates the data automatically, and doesn't try to route the process through the web browser.

EDIT

Using Seeker's answer we came up with the following short snippet in PHP:

$filename = ""; // Your file here
$contents = base64_encode(file_get_contents($filename));

Then in the PHP file that handles the XML:

<pdf xmlns="http://ns.adobe.com/xdp/pdf/">
    <document>
        <chunk><?php echo $contents ?></chunk>
    </document>
</pdf>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

演多会厌 2024-12-01 02:03:37

我今天正在处理完全相同的问题。您应该在 xdp 文件中包含使用 Base64 编码的 PDF 文件。

在您的 XDP 文件中将其替换为:

 <pdf xmlns="http://ns.adobe.com/xdp/pdf/"><document>
     <chunk>**CONTENT OF YOUR PDF IN BASE64 GOES HERE**</chunk>
    </document>
 </pdf>

这应该可以解决您的问题。

I was dealing with the exact same issue today. You should include the PDF file using Base64 encoding inside your xdp file.

in your XDP file replace this: <pdf href="http://.../form.pdf"> with :

 <pdf xmlns="http://ns.adobe.com/xdp/pdf/"><document>
     <chunk>**CONTENT OF YOUR PDF IN BASE64 GOES HERE**</chunk>
    </document>
 </pdf>

That should solve your problem.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文