首页 > 解决方案 > 使用客户端 JavaScript 将文件附加到 PDF?

问题描述

如何仅使用客户端浏览器 JavaScript 将任意文件(例如 XLSX)附加/嵌入到 PDF 文件?

如果重要,用户可以使用输入文件按钮和从外部 Web 服务接收并以 base64 编码的 PDF 来提供 XLSX。

我不是在寻找一个完整的解决方案(如果它存在那就太好了),但是你将如何以更高层次的方式解决这个问题

文件使用二进制文件流附加,在 PDF 文件中如下所示:

32 0 obj
 <</Type /EmbeddedFile /Subtype /{mimetype} /Length 72>>
 stream
 {file data}
 endstream
 endobj

标签: javascriptfilepdfattachment

解决方案


对于这种情况,您可以使用JSPdf 库。您必须学习JavaScript 插件和该库的addImage 插件源代码,以了解如何完成文件附件。对于这种情况,我认为 JavaScript 插件源代码更容易理解。

我不是在寻找完整的解决方案

是的,你必须自己编写一个完整的解决方案,因为现在这个库不支持自定义文件附件。

文件使用二进制文件流附加,在 PDF 文件中如下所示:

32 0 obj
<</Type /EmbeddedFile /Subtype /{mimetype} /Length 72>>
stream
{file data}
endstream
endobj

是的,像这样的一些你必须写。你必须意识到你也必须编写一个从 PDF 文件中读取的代码。

替代解决方案

但是,如果这对您来说太难或工作量太大,那么您必须考虑在服务器端完成所有这些工作。您可以使用 AJAX 向您的服务器发送请求,服务器会执行此操作并返回一个新的 PDF。

在这种情况下,您可以使用免费的 PHP 库(例如FPDI )编辑 PDF 服务器端。使用 FPDI 可以阅读和编辑 PDF 文档(使用createByFile()阅读 PDF 的方法)。FPDI 是FPDF库的扩展版本,具有附件插件


推荐阅读