Class: WickedPdf
- Inherits:
-
Object
- Object
- WickedPdf
- Defined in:
- lib/wicked_pdf.rb,
lib/wicked_pdf_version.rb,
lib/wicked_pdf_middleware.rb
Defined Under Namespace
Classes: Middleware
Constant Summary collapse
- EXE_NAME =
"wkhtmltopdf"
- VERSION =
'0.9.4'
- @@config =
{}
Instance Method Summary collapse
-
#initialize(wkhtmltopdf_binary_path = nil) ⇒ WickedPdf
constructor
A new instance of WickedPdf.
- #pdf_from_string(string, options = {}) ⇒ Object
Constructor Details
#initialize(wkhtmltopdf_binary_path = nil) ⇒ WickedPdf
Returns a new instance of WickedPdf.
26 27 28 29 30 31 |
# File 'lib/wicked_pdf.rb', line 26 def initialize(wkhtmltopdf_binary_path = nil) @exe_path = wkhtmltopdf_binary_path || find_wkhtmltopdf_binary_path raise "Location of #{EXE_NAME} unknown" if @exe_path.empty? raise "Bad #{EXE_NAME}'s path" unless File.exists?(@exe_path) raise "#{EXE_NAME} is not executable" unless File.executable?(@exe_path) end |
Instance Method Details
#pdf_from_string(string, options = {}) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/wicked_pdf.rb', line 33 def pdf_from_string(string, ={}) temp_path = .delete(:temp_path) string_file = WickedPdfTempfile.new("wicked_pdf.html", temp_path) string_file.write(string) string_file.close generated_pdf_file = WickedPdfTempfile.new("wicked_pdf_generated_file.pdf", temp_path) command = "\"#{@exe_path}\" #{'-q ' unless on_windows?}#{()} \"file:///#{string_file.path}\" \"#{generated_pdf_file.path}\" " # -q for no errors on stdout print_command(command) if in_development_mode? err = Open3.popen3(command) do |stdin, stdout, stderr| stderr.read end generated_pdf_file.rewind generated_pdf_file.binmode pdf = generated_pdf_file.read raise "PDF could not be generated!" if pdf and pdf.rstrip.length == 0 pdf rescue Exception => e raise "Failed to execute:\n#{command}\nError: #{e}" end |