wickedpdf是一个在Rails应用中用于生成PDF文件的Gem,它使用了wkhtmltopdf工具来将HTML转换为PDF格式。以下是使用wickedpdf gem生成PDF的一般步骤:
1.添加Gem依赖
在你的Gemfile文件中添加以下代码:
gem 'wicked_pdf'
gem 'wkhtmltopdf-binary'
然后运行bundle install来安装这些Gem。
2.创建PDF视图
在你的Rails应用中创建一个对应于PDF的视图文件,一般以.pdf.erb或.pdf.haml为扩展名。在该视图文件中,可以使用HTML和ERB或HAML来构建PDF的内容。
3.设置Controller动作
在对应的Controller中,创建一个动作来处理生成PDF的请求。该动作通常会使用wicked_pdf gem提供的render_pdf方法来生成PDF文件。
def generate_pdf
respond_to do |format|
format.pdf do
render pdf: 'filename', # 设置生成的PDF文件名
template: 'controller_name/generate_pdf.pdf.erb', # 指定PDF视图文件
layout: 'pdf.html', # 可选:指定PDF布局文件,默认为application.html.erb
locals: { variable_name: value } # 可选:传递变量给PDF视图文件
end
end
end
4.配置wkhtmltopdf选项(可选)
你可以通过在config/initializers/wicked_pdf.rb文件中设置wicked_pdf的配置选项来自定义PDF生成的行为。
WickedPdf.config = {
exe_path: '/usr/local/bin/wkhtmltopdf', # 定义wkhtmltopdf工具的路径
# 其他配置选项...
}
5.引用样式和字体(可选)
如果需要在生成的PDF中使用自定义的样式或字体,你可以在PDF视图文件中引用它们。你可以使用内联样式或链接外部样式表,并确保所需的字体文件可在生成PDF时访问到。
6.生成PDF
在浏览器或其他请求发送工具中,访问对应的生成PDF的URL。确保请求的响应格式为PDF(.pdf)。
使用wicked_pdf gem,你可以通过将HTML视图转换为高质量的PDF文件,使你的Rails应用能够方便地生成和提供PDF内容。
请注意,你需要在服务器上安装wkhtmltopdf工具,并确保与所使用的操作系统兼容。具体的安装过程可能因操作系统而异。
参考文档:
7.https://github.com/mileszs/wicked_pdf
8.https://github.com/mileszs/wicked_pdf/blob/master/README.md