Как я могу разбить многостраничный pdf файл на несколько pdf файлов в ruby
Я хотел бы знать, есть ли какой-нибудь рубиновый гем или скрипт для преобразования многостраничного pdf-файла в отдельные pdf-файлы на страницах в ruby. Я пытался с gems pdf-reader и prawn, но не смог решить проблему. Помощь будет принята с благодарностью. Спасибо.
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)