ruby-on-rails - 如何修复错误:无法生成 PDF
问题描述
我正在我的项目中配置 wicked-pdf,但我无法使其工作,即使查看文档、旧问题也是如此。
该项目是 ruby 2.6.2、rails 6.0.0.rc1、wicked_pdf 1.4、wkhtmltopdf-binary 0.12.3 和 docker。这些是我来自 controller.rb 的代码
report = WickedPdf.new.pdf_from_string('some html here')
wicked_pdf.rb
WickedPdf.config = {
exe_path: Gem.bin_path('wkhtmltopdf-binary', 'wkhtmltopdf')}
解决方案
我没有使用与您完全相同的版本...
该方法不是最佳方法,并且会使跟踪问题变得更加困难,我建议尝试不同的方法:
respond_to do |f|
f.pdf do
pdf = render_to_string :pdf => "checklist",:encoding => "UTF-8", :layout => 'pdf.html.haml', :template => '/checklists/show.haml'
send_data(pdf,
:filename => "checklist.pdf",
:disposition => 'attachment',
:type => "application/pdf")
end
end
它运行良好,允许您在视图文件中制作 pdf 模板,让生活更轻松。
尝试将格式代码添加到您的表演操作或您为其创建的新操作。这将允许 Rails 为您提供更严格的错误,至少因为您还可以先在浏览器中查看 html 以确认代码没有错误。
推荐阅读
- session - 如果 ASP MVC 网络核心中的会话过期,则重定向到登录页面
- javascript - 更改 Date 对象中的日期格式
- javascript - JavaScript 1 分钟倒计时无法正常工作
- r - 从具有相似名称的所有对象中提取值到 R 中的表
- ffmpeg - 连接多个具有恒定帧速率 30 的 mp2 文件导致输出具有可变帧速率 29.xxx
- c# - 使用此代码时```Form1 form = new Form1();``` 出现问题
- javascript - 在 reactjs 中获取 axios 调用
- javascript - 反应式表单不更新表单字段Angular 7中的值
- kubernetes - 将字符串添加到列表项并在 Ansible 中将其转换为 JSON
- python - 在多列中使用聚合行值在 Python 中形成新列