5

所以我正在尝试使用 Prawn gem 将画布的 PNG 图像嵌入到 PDF 中。Base64 字符串是使用 canvas 的 toDataURL() 函数生成的。由于图像仅在 PDF 中需要,我试图避免将其保存在服务器上。Params[:base64string] 已正确传递给服务器。

但是,我正在尝试使用

image = Prawn::Images::PNG.new(base64string)

创建图像,但我得到 NoMethodError: undefined method `unpack' for nil:NilClass。

任何想法我做错了什么或应该如何正确完成?

4

1 回答 1

2

这里找到:

大虾想要一个文件路径而不是编码的图像数据。您可以使用临时文件:

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

希望这可以帮助!

于 2012-11-06T18:06:57.587 回答