gpt4 book ai didi

ruby - Wicked-PDF 不显示图像, 'wicked_pdf_image_tag' 未定义

转载 作者:数据小太阳 更新时间:2023-10-29 06:49:06 25 4
gpt4 key购买 nike

我想生成一个包含我们部门 Logo 的 PDF。当我尝试在我的 Controller 中使用 WickedPdf 类时(使用 https://github.com/mileszs/wicked_pdf 中描述的方法):

def some_action
image_tag_string = image_tag('logo.jpg')
pdf = WickedPdf.new.pdf_from_string(image_tag_string)

save_path = Rails.root.join('testpdfs','logotest.pdf')
File.open(save_path, 'wb') do |file|
file << pdf
end
end

...应用程序将 PDF 保存到目标目录,但它有一个蓝白色的“?”标记图像应该在的位置。

如果我这样做:

  image_tag_string = wicked_pdf_image_tag('logo.jpg')
pdf = WickedPdf.new.pdf_from_string(image_tag_string)

我收到以下错误:

NoMethodError:
undefined method `wicked_pdf_image_tag' for #<...

看起来我的 Rails 应用程序也丢失了/没有链接到属于 wicked-pdf gem 的帮助文件。

StackOverflow 上类似问题的答案建议编写自定义“图像标签”助手来定位图像或安装 wkhtmltopdf。对我来说,image-tag 将 Logo 放在 View (whatever.html.erb) 中时显示得很好。 “logo.jpg”已经位于 Assets 管道和#{RailsRoot}/public/images 中。最后,我在 Ubuntu 14.04 上使用 wkhtmltopdf 0.9.9、wicked-pdf 0.11.0 和 rails 4。

简而言之 - 我做错了什么导致 WickedPDF 无法渲染图像?

最佳答案

首先创建一个 pdf 模板以在该模板中呈现和使用您的 wicked_pdf 标签。例如-

app/views/layout/application.pdf.erb-

<!doctype html>
<html>
<head>
<meta charset='utf-8' />
</head>
<body onload='number_pages'>
<div id="content">
<%= yield %>
</div>
</body>
</html>

app/views/pdf/pdf_view.pdf.erb-

<div>
<%= wicked_pdf_image_tag 'logo.jpg' %>
</div>

改用这个模板

def save
pdf = WickedPdf.new.pdf_from_string(
render_to_string(
template: 'example/pdf_view.pdf.erb',
layout: 'layouts/application.pdf.erb'))
send_data(pdf,
filename: 'file_name.pdf',
type: 'application/pdf',
disposition: 'attachment')
end

这可能对你有帮助..

关于ruby - Wicked-PDF 不显示图像, 'wicked_pdf_image_tag' 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30110344/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com