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

7

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

如果有影响的话,XLSX是由用户使用输入文件按钮提供的,PDF是从外部网络服务接收并以base64编码的。

我不是在寻求完整的解决方案(如果有那就太好了),但你会如何以更高层次的方式来解决这个问题呢?

文件是使用二进制文件流附加的,看起来就像在PDF文件中:

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

PDF 正在被查看吗? - joelgeraci
在向用户显示PDF之前,应将文件附加到PDF中。 - Victor
你希望如何处理这个xlsx文件?成功的解决方案会做什么? - Katie.Sun
@Victor,如果您对我下面的答案感到满意,请在我的答案左侧将其标记为已接受并/或点赞。 - Bharata
@Bharata 是的,你是对的。我很抱歉。 - Victor
1个回答

3
你可以使用 JSPdf库 来实现此功能。你需要查看此库中的 JavaScript插件addImage插件 的源代码,以了解如何进行文件附件操作。我认为 JavaScript 插件的源代码更容易理解。

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

是的,因为目前这个库不支持自定义文件附件,所以你需要自己编写完整的解决方案。

Files are attached using binary file streams, that looks like this in the PDF file:

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库的扩展版本,该库具有插件附件


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接