У вас есть библиотека CombinePDF?
Это чисто рубиновое решение, которое позволяет обрабатывать PDF-файлы, такие как извлечение страниц, наложение одной страницы PDF поверх другой, нумерация страниц, написание основного текста и таблиц и т. Д. ».
Вот пример для прядения существующего файла PDF с логотипом. В примере читается файл PDF, извлекается одна страница для использования в качестве штампа и штампы другого файла PDF.
require 'combine_pdf'
company_logo = CombinePDF.load("company_logo.pdf").pages[0]
pdf = CombinePDF.load "content_file.pdf"
pdf.pages.each {|page| page << company_logo}
pdf.save "content_with_logo.pdf"
Вы также можете отпечатать текст, количество страниц или использование:
require 'combine_pdf'
pdf = CombinePDF.load "content_file.pdf"
pdf.number_pages #adds page numbers. you can add formatting and placement options.
pdf.pages.each {|page| page.textbox "One Way To Stamp"}
#you can a shortcut method to stamp pages
pdf.stamp_pages "Another way to stamp"
#you can use the shortcut method for both text and PDF stamps
company_logo = CombinePDF.load("company_logo.pdf").pages[0]
pdf.stamp_pages company_logo
# you can use write simple tables
pdf.pages[0].write_table headers: ['first name', 'surname'], table_data: [['John', 'Doe'], ['Mr.', 'Smith']]
pdf.save "content_with_logo.pdf"
Это не предназначено для сложных операций, но она дополняет большинство библиотек PDF авторинга и позволяет использовать шаблоны PDF вместо написания цельное с нуля.
Возможный дубликат [Ruby PDF-parsing gem/library] (http://stackoverflow.com/questions/320621/ruby-pdf-parsing-gem-library) –