通过默认打印机打印rails生成的pdf

时间:2016-02-11 13:31:51

标签: ruby ubuntu printing

我有一个pdf文件,由wicked_pdf gem生成。

使用ruby 1.8.7,有没有办法自动连接到ubuntu中的默认打印机,以打印生成pdf。

我赞赏你的回复。

2 个答案:

答案 0 :(得分:0)

假设您的PDF文件已保存到文件中,这可能有效:

pdf_file_path = "/tmp/pdf_file.pdf"
`lpr "#{pdf_file_path}`

如果内容是Ruby字符串:

pdf_file = WickedPDF.create_the_pdf_somehow
IO.popen('lpr', 'r+') do |pipe|
  pipe.print pdf_file
  pipe.close_write
end

答案 1 :(得分:0)

如果您的操作系统是ubuntu(或者可能是Mac),您可以使用系统(' lpr')命令轻松完成。这是我的应用程序,它就像一个魅力。

 def general_receipt_export
     pdf = render_to_string pdf: "#{@ids.map(&:inspect).join(',').to_s + '_receipt.pdf'}", :template => 'officials/general_receipt_export.html.erb', encoding: 'utf8',orientation: 'Landscape',page_size: 'A4'
     render layout: false
     save_path = Rails.root.join('public','pdfs', "#{@ids.map(&:inspect).join(',').to_s + '_receipt.pdf'}")
     File.open(save_path, 'wb') do |file|
         file << pdf
     end
     system("lpr", "public/pdfs/#{@ids.map(&:inspect).join(',').to_s + '_receipt.pdf'}")
end