这是asked in 2008。希望现在有更好的答案。
如何在ruby中组合PDF?
我正在使用pdf-stamper gem在PDF中填写表单。我想取n个PDF,在每个PDF中填写一张表格,然后将结果保存为n页文档。
你能用像对虾这样的原生库做到这一点吗?你能用rjb和iText做到这一点吗?pdf-stamper是iText上的一个包装器。
如果可能的话,我想避免使用两个库(即pdftk和iText)。
发布于 2010-10-21 01:31:41
为此,我编写了一个ruby gem - PDF::Merger。它使用iText。下面是你如何使用它:
pdf = PDF::Merger.new
pdf.add_file "foo.pdf"
pdf.add_file "bar.pdf"
pdf.save_as "combined.pdf"
发布于 2013-01-12 02:59:13
从2013年开始,你可以使用Prawn来合并pdf。要点:https://gist.github.com/4512859
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
发布于 2014-09-10 10:50:59
在花了很长时间寻找纯Ruby解决方案之后,我最终从头开始编写代码来解析和合并PDF文件。
(我觉得现在的工具太乱了--我想要一些原生,但它们似乎都有不同的问题和依赖关系……即使是对虾也放弃了他们曾经拥有的模板支持)
我发布了gem online,你也可以在GitHub上找到它。
您可以使用以下命令进行安装:
gem install combine_pdf
它非常容易使用(无论是否将PDF数据保存到文件)。
例如,下面是一个“一行”:
(CombinePDF.load("file1.pdf") << CombinePDF.load("file2.pdf") << CombinePDF.load("file3.pdf")).save("out.pdf")
如果你发现任何问题,请让我知道,我会努力修复。
https://stackoverflow.com/questions/3499563
复制相似问题