Rails 5中临时Wicked PDF文件的路径

时间:2018-01-04 13:34:32

标签: ruby-on-rails ruby-on-rails-5 wicked-pdf

我正在使用Wicked创建一个PDF文件:

pdf = WickedPdf.new.pdf_from_string('<h1>Hello There!</h1>')

我认为这会在某处创建一个临时文件。如何获取此临时文件的路径?

3 个答案:

答案 0 :(得分:1)

您可以在创建pdf时执行此操作,只有您可以传递所需临时路径的选项

pdf = WickedPdf.new.pdf_from_string('<h1>Hello There!</h1>', {temp_path: "your path here")

Refer this link for more inputs this contains the function that you are using and the inputs that can be passed

答案 1 :(得分:0)

检查WickedPDF的source,它有一个TempFile

临时文件应在optionsDir.tmpdir中定义的临时目录中创建。

答案 2 :(得分:0)

请参阅https://github.com/mileszs/wicked_pdf#super-advanced-usage的示例。

官方示例使用File

pdf = render_to_string pdf: "some_file_name", template: "templates/pdf", encoding: "UTF-8"

# then save to a file
save_path = Rails.root.join('pdfs','filename.pdf')
File.open(save_path, 'wb') do |file|
  file << pdf
end

您可以使用tempfile来完成

pdf_string = WickedPdf.new.pdf_from_string(...)

overlay = Tempfile.new('overlay')
overlay.binmode
overlay.write(pdf_string)
overlay.close
overlay.path # to get path