如何在不保存Rails服务器的情况下使用Prawn将base64字符串转换为PNG
所以我试图使用Prawn gem将Photoshop的PNG图像嵌入到PDF中。 Base64字符串是使用canvas’toDataURL()函数生成的。 由于图像仅在PDF中需要,我试图避免将其保存在服务器上。 Params [:base64string]正确传递给服务器。
但是,我正在尝试使用
image = Prawn::Images::PNG.new(base64string)
创建图像,但我得到NoMethodError:nil的未定义方法`unpack’:NilClass。
我有什么想法或者应该如何正确地做到这一点?
在这里找到:
Prawn想要文件路径而不是编码图像数据。 你可以使用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
希望这可以帮助!