Cómo guardar el archivo pdf en el interior de la carpeta pública con wicked_pdf

Ahora mismo estoy usando Rails 3.0.0.ya he instalado la gema wicked_pdf.Ahora desea guardar el archivo pdf en el interior de la carpeta pública.por favor me ayude.

3 Kommentare

  1. 8

    Si sólo necesita crear un archivo pdf y no se muestra:

    # create a pdf from a string
    pdf = WickedPdf.new.pdf_from_string('<h1>Hello There!</h1>')
    
    # create a pdf from string using templates, layouts and content option for header or footer
    WickedPdf.new.pdf_from_string(
        render_to_string(:pdf => "pdf_file.pdf", :template => 'templates/pdf.html.erb', :layout => 'pdfs/layout_pdf'), 
        :footer => {:content => render_to_string({:template => 'templates/pdf_footer.html.erb', :layout => 'pdfs/layout_pdf'})}
    
    # or from your controller, using views & templates and all wicked_pdf options as normal
    pdf = render_to_string :pdf => "some_file_name"
    
    # then save to a file
    save_path = Rails.root.join('pdfs','filename.pdf')
    File.open(save_path, 'wb') do |file|
      file << pdf
    end
  2. 7

    Esta es la respuesta en Cómo convertir la cadena en pdf en ruby on rails

    Y, si no contra la pongo uno de la respuesta:

    Algunos de los servicios devuelve pdf como un aguijón como JVBERi0xLjQKJeLjz9MKNCAwIG9iago8PC9Ue. . .

    Usted puede crear un archivo pdf a partir de la picadura, con:

    f = File.new("/tmp/file.pdf", "w")
    f.write(Base64.decode64(invoice[:file]).force_encoding('UTF-8'))
    f.close

    Y, a continuación, puede abrir el archivo pdf con AcrobatReader o en otro lector de pdf.

    Deseo que te ayudarán.

  3. 5

    También, usted puede hacer esto:

    render :pdf          => 'foo',
           :save_to_file => Rails.root.join('public', "foo.pdf"),
           :save_only    => true
    • un amor instantáneo para esta respuesta <3
    • ¿qué pasa si ejecuto este comando en algo como Heroku ? Le tiro un error o se bloquea, ya que heroku no proporcionar escribir en un sistema de archivos.
    • Usted puede escribir en el sistema de archivos en la mayoría de los modernos Heroku pilas, pero no se puede garantizar que se pegará en torno a si el ensayo se presenta reinicia. En ese tipo de situación, sería mejor guardar el archivo en un depósito de Amazon S3 o algo por el estilo. Si usted necesita para guardar el archivo de sistema temporalmente, puede ser mejor utilizar /tmp.
    • ¿sabes qué ruta debe agregarse a ser capaz de acceder o abrir los archivos guardados en /tmp? Gracias.
    • Usted no quiere una ruta para acceder a /tmp, que sería bastante malo desde un punto de vista de seguridad. Yo sólo lo utiliza para la ilustración de un lugar para guardar en el ejemplo anterior. En una aplicación real, sería probable que quieras guardar public o S3 o donde quiera que mantener archivos para su posterior recuperación.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea