lib/fn/pdf/writer.rb in fn_document-0.9.13 vs lib/fn/pdf/writer.rb in fn_document-0.9.14

- old
+ new

@@ -1,9 +1,10 @@ require "rubygems" require "PDFlib" require "RMagick" require "tempfile" # Built into ruby +require "open-uri" # So we can download remote files Dir[File.dirname(__FILE__) + "/node/*.rb"].each do |f| require f.sub(/\.rb$/, '') end module FN module PDF @@ -110,21 +111,24 @@ doc.photo_blocks.each do |block| image = nil begin context.inject_at_page(block.page_number) do - image = doc.resource(block.src).path_from(root) - tmp = Magick::Image::read(image).first + # image = doc.resource(block.src).path_from(root) + # tmp = Magick::Image::read(image).first + # http://stackoverflow.com/questions/7264895/rmagick-can-not-read-remote-image + urlimage = open(block.src) + tmp = Magick::Image::from_blob(urlimage.read) dims = [tmp.columns.to_f, tmp.rows.to_f] x, y, width, height = calculate(block, dims) context.add LoadImage(image, "tmp") context.add FitImage("{tmp}", x, y, :fitmethod => "meet", :boxsize => [width, height]) end rescue Magick::ImageMagickError => e $stderr.puts e.message $stderr.puts e.backtrace.join("\n") - raise WriterError.new("Couldn't load '#{block.src}', given by #{doc.resource(block.src).node}") + raise WriterError.new("Couldn't load remote photo '#{block.src}', given by #{doc.resource(block.src).node}") end end doc.pages.each do |page| context.add EndPageExt(page["number"]) \ No newline at end of file