ruby-on-rails – 将外部PDF插入到Prawn生成的文档中
如何将现有PDF插入到Prawn生成的文档中?我正在为账单生成pdf(作为视图),该账单可以包含许多附件(png,jpg或pdf).如何在生成的文档中插入/嵌入/包含这些外部pdf附件?我已经阅读了手册,查看了源代码,并在线搜索,但到目前为止还没有运气.
我发现最接近的提示是使用ImageMagick或类似的东西将pdf转换为另一种格式,但由于我不需要调整/操作文档,这似乎很浪费.旧方法似乎是通过模板,但我的理解是模板的代码是不稳定的. 有谁知道如何在Prawn生成的PDF中包含PDF页面?如果Prawn不会这样做,你知道任何补充宝石吗?如果有人能指出我喜欢虾模板但更可靠的东西,那就太棒了. 编辑:我正在使用prawnto和prawn在Rails 4.2.0中使用Ruby 2.2.0呈现PDF视图. 我发现但似乎不适用/太乱的策略: >在上传时创建PDF的jpg预览,包括生成的文档中的内容(缺点:没有文本选择/搜索,昂贵).这是目前我最喜欢的选择,但我不喜欢它. 解决方法
你对此缺乏现有文档是对的 – 我发现只有
this issue from 2010使用你描述的过时方法.我还发现
this SO answer现在不起作用,因为Prawn放弃了对模板的支持.
然而,好消息是有一种方法可以用Ruby做你想做的事!您将要做的是将PDF合并在一起,而不是将PDF插入到原始PDF中. 我建议这个库,combine_pdf,这样做.文档很好,所以做你想做的事情就像这样简单: my_prawn_pdf = CombinePDF.new my_prawn_pdf << CombinePDF.new("my_bill_pdf.pdf") my_prawn_pdf << CombinePDF.new("attachment.pdf") my_prawn_pdf.save "combined.pdf" 编辑 回答你的问题:
你做!如果你看一下documentation for combine_pdf,你会发现从内存加载是使用gem的最快方法 – 文档甚至明确地说Prawn可以用作输入.
combine_pdf gem isn’t just for adding pages on the end.如文档所示,您可以根据需要循环浏览PDF添加页面,例如: my_pdf # previously defined new_pdf = CombinePDF.new my_pdf.pages.each.do |page| i += 1 new_pdf << my_pdf if i == bill_number # or however you want to handle this logic end new_pdf.save "new_pdf.pdf" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |