如何将Multipage pdf文件拆分为ruby中的多个pdf文件

时间:2017-07-03 12:28:53

标签: prawn ruby-on-rails-5.1 ruby-2.4

我想知道是否有任何ruby gem或脚本将多页pdf文件转换为ruby中每页的单独pdf文件。我尝试使用gems pdf-reader和prawn但无法解决问题。将非常感谢帮助。三江源。

1 个答案:

答案 0 :(得分:1)

命令行实用程序PDFtk可以轻松完成此操作

pdftk source.pdf cat 1-10 output first10.pdf
pdftk source.pdf cat 10-end output rest.pdf

pdftk source.pdf burst 
# By default, the output files are named pg_0001.pdf, pg_0002.pdf, etc.

构建一个像这样的实用工具方法:

def split_pdf(source_file, dest_dir)
  Dir.mkdir(dest_dir.to_s)
  exec("pdftk #{source_file} burst output #{dest_dir}/p%02d.pdf")
  Dir.entries(dest_dir.to_s)
    .select { |e| e.ends_with?('.pdf') }
    .map { |f| "#{dest_dir}/#{f} }
end

并称之为:

source_file = Rails.root.join('public', 'source.pdf')
dest_dir = Rails.root.join('public', 'docs', doc_id)
page_files = split_pdf(source_file, dest_dir)