如何仅使用客户端浏览器JavaScript将任意文件(例如XLSX)附加/嵌入到PDF文件中?
如果重要的话,XLSX是由用户使用输入文件按钮给出的,而PDF是从外部Web服务接收并以base64编码的。
我不是在寻找完整的解决方案(如果有的话,那会很好),但是您将如何以更高的层次来解决这个问题
使用二进制文件流附加文件,在PDF文件中如下所示:
32 0 obj
<</Type /EmbeddedFile /Subtype /{mimetype} /Length 72>>
stream
{file data}
endstream
endobj
答案 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 。