Сохраните файл PDF, показанный промежуточным программным обеспечением PDFKit

Если кто-то заинтересован в сохранении PDF-файла в файловой системе, которая показана в промежуточном программном обеспечении PDFKit, то вот оно...

  1. Переопределить call метод файла middleware.rb.
  2. В переопределении просто замените эту строку:

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

    с

    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
    

Вы также можете переопределить response-body и content-type, если не хотите давать pdf-ответ. Если у вас есть какие-либо дополнительные вопросы, тогда продолжайте.

Эта процедура действительно помогает полностью, потому что, когда у вас тяжелый JavaScript, CSS в вашем файле представления, то render_to_string метод не будет работать, т.е. он не будет отображать тяжелый JavaScript.

1 ответ

Если кто-то заинтересован в сохранении PDF-файла в файловой системе, которая показана в промежуточном программном обеспечении PDFKit, то вот оно...

  1. Переопределить call метод файла middleware.rb.
  2. В переопределении просто замените эту строку:

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

    с

    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
    

Вы также можете переопределить response-body и content-type, если не хотите давать pdf-ответ. Если у вас есть какие-либо дополнительные вопросы, тогда продолжайте.

Эта процедура действительно помогает полностью, потому что, когда у вас тяжелый JavaScript, CSS в вашем файле представления, то render_to_string метод не будет работать, т.е. он не будет отображать тяжелый JavaScript.

Другие вопросы по тегам