2011-03-01 22 views
6

Si alguien está interesado en ahorrar el archivo PDF en el sistema de archivos que se muestra por PDFKit joya middleware, entonces aquí está ...archivo PDF Guardar mostrada por el middleware PDFKit

  1. reemplazar el método de middleware call. archivo rb
  2. En anulando basta con sustituir esta línea:

    body = PDFKit.new(translate_paths(body, env), @options).to_pdf 
    

    con

    pdf = PDFKit.new(translate_paths(body, env), @options) 
    file = pdf.to_file('Your/file/name/path') 
    Mymodel.my_method()  #You can write your method here to use that file 
    body = pdf.to_pdf #Here you can change the response body 
    

También puede anular la respuesta de cuerpo y de tipo de contenido si no quiere dar pdf respuesta. Si tiene alguna otra consulta, adelante.

Este procedimiento es realmente útil porque cuando se tiene JavaScript pesado, un CSS en su archivo de vista entonces el método render_to_string no funcionará, es decir, no representará el JavaScript pesado.

+0

Es posible que haya sido mejor publicar esto en forma de pregunta, luego responda y acepte su propia pregunta. Esto ahora está listado permanentemente como una pregunta sin respuesta. –

+0

Simplemente otro divertido recordatorio para convertir tu edición en una respuesta :) – Ryan

+0

He editado parte de la pregunta y la he añadido como respuesta. –

Respuesta

1

Si alguien está interesado en ahorrar el archivo PDF en el sistema de archivos que se muestra mediante joya PDFKit middleware, entonces aquí está ...

  1. reemplazar el método de archivo middleware.rb call.
  2. En anulando basta con sustituir esta línea:

    body = PDFKit.new(translate_paths(body, env), @options).to_pdf 
    

    con

    pdf = PDFKit.new(translate_paths(body, env), @options) 
    file = pdf.to_file('Your/file/name/path') 
    Mymodel.my_method()  #You can write your method here to use that file 
    body = pdf.to_pdf #Here you can change the response body 
    

También puede anular la respuesta de cuerpo y de tipo de contenido si no quiere dar pdf respuesta. Si tiene alguna otra consulta, adelante.

Este procedimiento es realmente útil porque cuando se tiene JavaScript pesado, un CSS en su archivo de vista entonces el método render_to_string no funcionará, es decir, no representará el JavaScript pesado.

+0

Esta respuesta fue proporcionada por el propio asker. Lo estoy cambiando a formato de preguntas y respuestas –

Cuestiones relacionadas