繁体   English   中英

如何在 Prawn PDF 中嵌入 Active Storage 中的图像?

[英]How to embed an image from Active Storage in Prawn PDF?

我正在尝试将 Rails 的Active Storage 中的图像嵌入到 Prawn PDF 中。

这是我在 Prawn PDF 课上的内容:

path = @view.rails_blob_url(@logo, :host => "localhost:3000", :protocol => "http", :locale => nil)
image(path, :vposition => :center)

当我尝试打开 PDF 时,出现此错误:

InvoicesController 中的 ArgumentError#show http://localhost:3000/rails/active_storage/blobs/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBGdz09IiwiZXhwIjxudWxsHCJwdXIiOiJibG9iX236d7000000iJibG9iX236c701fpbHMiOnsibWVzc2FnZSI6IkJBaHBGdz09IiwiZXhwIjxudWxsHCJwdXIiOiJibG9iX236dc701a7fpbHMiOnsibWVzc2FnZSI6iX236dc701fpbHMiOnsibWVzc2FnZSI6

当我将完全相同的 URL 复制到浏览器中时,图像会按预期显示。 5 分钟后它会过期(?)。

我在这里缺少什么?

如何在我的 PDF 中显示图像?

为什么图像可以在浏览器中呈现,而不能在我的 PDF 中呈现?

我花了一整天的时间试图让它今天起作用,但无济于事。

试一试:

image ActiveStorage::Blob.service.send(:path_for, @company.logo_image.key), at: [X, Y], width: DESIRED_WIDTH

其中logo_image是实际的 ActiveStorage::Attached::One 对象。 例如

class Company
  has_one_attached :logo_image
end

另外,我相信截至目前,仅支持 2 种类型:png 和 jpg。

这对我有用:

def initialize_globals
  logo_from_object = @organization.logo
  @logo = StringIO.open(logo_from_object.download)
  ..
  ..
  ..
end

def print_header
  image @logo, scale: 0.10
end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM