首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在ruby中组合PDF?

如何在ruby中组合PDF?
EN

Stack Overflow用户
提问于 2010-08-17 13:28:24
回答 8查看 15.2K关注 0票数 16

这是asked in 2008。希望现在有更好的答案。

如何在ruby中组合PDF?

我正在使用pdf-stamper gem在PDF中填写表单。我想取n个PDF,在每个PDF中填写一张表格,然后将结果保存为n页文档。

你能用像对虾这样的原生库做到这一点吗?你能用rjb和iText做到这一点吗?pdf-stamper是iText上的一个包装器。

如果可能的话,我想避免使用两个库(即pdftk和iText)。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2010-10-21 01:31:41

为此,我编写了一个ruby gem - PDF::Merger。它使用iText。下面是你如何使用它:

代码语言:javascript
复制
pdf = PDF::Merger.new
pdf.add_file "foo.pdf"
pdf.add_file "bar.pdf"
pdf.save_as "combined.pdf"
票数 5
EN

Stack Overflow用户

发布于 2013-01-12 02:59:13

从2013年开始,你可以使用Prawn来合并pdf。要点:https://gist.github.com/4512859

代码语言:javascript
复制
class PdfMerger

  def merge(pdf_paths, destination)

    first_pdf_path = pdf_paths.delete_at(0)

    Prawn::Document.generate(destination, :template => first_pdf_path) do |pdf|

      pdf_paths.each do |pdf_path|
        pdf.go_to_page(pdf.page_count)

        template_page_count = count_pdf_pages(pdf_path)
        (1..template_page_count).each do |template_page_number|
          pdf.start_new_page(:template => pdf_path, :template_page => template_page_number)
        end
      end

    end

  end

  private

  def count_pdf_pages(pdf_file_path)
    pdf = Prawn::Document.new(:template => pdf_file_path)
    pdf.page_count
  end

end
票数 20
EN

Stack Overflow用户

发布于 2014-09-10 10:50:59

在花了很长时间寻找纯Ruby解决方案之后,我最终从头开始编写代码来解析和合并PDF文件。

(我觉得现在的工具太乱了--我想要一些原生,但它们似乎都有不同的问题和依赖关系……即使是对虾也放弃了他们曾经拥有的模板支持)

我发布了gem online,你也可以在GitHub上找到它。

您可以使用以下命令进行安装:

代码语言:javascript
复制
gem install combine_pdf

它非常容易使用(无论是否将PDF数据保存到文件)。

例如,下面是一个“一行”:

代码语言:javascript
复制
(CombinePDF.load("file1.pdf") << CombinePDF.load("file2.pdf") << CombinePDF.load("file3.pdf")).save("out.pdf")

如果你发现任何问题,请让我知道,我会努力修复。

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3499563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档