因此,我尝试使用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/

10-09 22:27