use*_*705 5 ruby ruby-on-rails prawn
所以我正在尝试使用 Prawn gem 将画布的 PNG 图像嵌入到 PDF 中。Base64 字符串是通过使用 canvas 的 toDataURL() 函数生成的。由于图像仅在 PDF 中需要,我试图避免将其保存在服务器上。Params[:base64string] 正确传递到服务器。
但是,我正在尝试使用
image = Prawn::Images::PNG.new(base64string)
Run Code Online (Sandbox Code Playgroud)
创建图像,但我得到 NoMethodError: undefined method `unpack' for nil:NilClass。
任何想法我做错了什么或应该如何正确完成?
在这里找到:
虾想要一个文件路径而不是编码的图像数据。您可以使用临时文件:
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
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!