因此,我尝试使用Prawn gem将 Canvas 的PNG图像嵌入到PDF中。 Base64字符串是通过使用canvas的toDataURL()函数生成的。由于仅在PDF中需要图像,因此我试图避免将其保存在服务器上。参数[:base64string]已正确传递到服务器。
但是,我正在尝试使用
image = Prawn::Images::PNG.new(base64string)
创建图像,但是我得到了NoMethodError:nil:NilClass的未定义方法'unpack'。
有什么想法我做错了或者应该如何正确地做吗?
最佳答案
找到here:
Prawn需要文件路径而不是编码的图像数据。您可以使用一个临时文件:
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
希望这可以帮助!
关于ruby-on-rails - 如何在不保存Rails的服务器的情况下使用Prawn将base64字符串转换为PNG,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13256723/