ruby-on-rails ruby pdf prawn

ruby on rails - Marca de agua en PDF existente en Ruby



ruby-on-rails prawn (5)

Me gustaría añadir un texto generado dinámicamente. ¿Hay alguna forma de filtrar un PDF existente en Ruby?



Esto lo hará:

PDF::Reader para contar el número de páginas en el archivo.

Prawn para crear un nuevo documento PDF utilizando cada página del PDF de entrada como plantilla.

require ''prawn'' require ''pdf-reader'' input_filename = ''input.pdf'' output_filename = ''output.pdf'' page_count = PDF::Reader.new(input_filename).page_count Prawn::Document.generate(output_filename, :skip_page_creation => true) do |pdf| page_count.times do |num| pdf.start_new_page(:template => input_filename, :template_page => num+1) pdf.text(''WATERMARK'') end end

Sin embargo, en mi prueba, el tamaño del archivo de salida fue enorme con la última versión de Gema de Prawn (0.12), pero después de apuntar mi Gemfile a la rama maestra en github, todo funcionó bien.


Otra opción es utilizar PDFTK. Se puede usar para agregar una marca de agua y crear un nuevo PDF. Tal vez la gamba hará lo mismo con sus plantillas.

pdftk in.pdf background arecibo.pdf output wmark1.pdf

Un poco más de información: http://rhodesmill.org/brandon/2009/pdf-watermark-margins/

Hay una gema de active_pdftk llamada active_pdftk que admite el fondo, por lo que no tiene que hacer usted mismo los comandos de shell.


Prawn ya no soporta plantillas ...

Intente la gema combine_pdf .

Puede combinar, marca de agua, número de página y agregar texto simple a los archivos PDF existentes (incluida la creación de una tabla de contenido simple sin enlaces PDF).

Es una biblioteca de PDF muy simple y básica, escrita en Ruby puro sin dependencias.

Este ejemplo puede adaptarse a su situación (es del archivo Léame):

# load the logo as a pdf page company_logo = CombinePDF.load("company_logo.pdf").pages[0] # load the content file pdf = CombinePDF.load "content_file.pdf" # inject the logo to each page in the content pdf.pages.each {|page| page << company_logo} # save to a new file, with the logo. pdf.save "content_with_logo.pdf"


Utilice Ruport .

1er resultado para Google ruby pdf watermark .