使用客户端JavaScript将文件附加到PDF吗?

时间:2018-11-05 18:37:47

标签: javascript file pdf attachment

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

如果重要的话,XLSX是由用户使用输入文件按钮给出的,而PDF是从外部Web服务接收并以base64编码的。

我不是在寻找完整的解决方案(如果有的话,那会很好),但是您将如何以更高的层次来解决这个问题

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

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

1 个答案:

答案 0 :(得分:3)

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

  

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

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

  

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

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

是的,您必须写一些类似的东西。您必须意识到自己也必须编写代码以读取PDF文件。

替代解决方案

但是,如果这对您来说太困难或太多工作,那么您必须考虑在服务器端进行所有这些操作。您可以使用AJAX向服务器发送请求,然后服务器将请求发送回去。

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