So I am trying to embed a PNG image of canvas to PDF using Prawn gem. Base64 string is generated by using canvas' toDataURL() function. As the image is only needed in PDF I'm trying to avoid saving it on the server. Params[:base64string] is correctly passed to the server.
However, I am trying to use
image = Prawn::Images::PNG.new(base64string)
to create the image but I get NoMethodError: undefined method `unpack' for nil:NilClass.
Any ideas what I'm doing wrong or how this should be done correctly?
found here:
Prawn wants a file path rather than encoded image data. You could use a tempfile:
require 'prawn'
require 'tempfile'
require 'active_support' # for base64
Prawn::Document.generate('/tmp/test.pdf') do
file = Tempfile.new('image')
file.write ActiveSupport::Base64.decode64(image)
file.close
image file.path
end
Hope this helps!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With