¿Echó un vistazo a la biblioteca CombinePDF?
Es una solución de rubí puro que permite cierta manipulación de PDF, como extraer páginas, superponer una página PDF a otra, numeración de páginas, escribir texto básico y tablas, etc. '
Aquí hay un ejemplo para copiar un archivo PDF existente con un logotipo. El ejemplo lee un archivo PDF, extrae una página para usarla como sello y estampara otro archivo 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"
También puede estampar texto, número de páginas o uso:
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"
No es la intención de operaciones complejas, pero que complementa la mayoría de las bibliotecas PDF de creación y permite el uso de plantillas de PDF en lugar de escribir la Todo desde cero.
posible duplicado de [Ruby PDF-analizando gema/biblioteca] (http://stackoverflow.com/questions/320621/ruby-pdf-parsing-gem-library) –