rails用pdfkit将html转化为pdf

rails html convert to pdf

gem ‘pdfkit’
gem ‘wkhtmltopdf-binary’

Github

安装

gemfile

gem ‘pdfkit’
gem ‘wkhtmltopdf-binary’

Configuration

config/initializers/pdfkit.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
PDFKit.configure do |config|
config.wkhtmltopdf = '/path/to/wkhtmltopdf'
config.default_options = {
:page_size => 'Legal',
:print_media_type => true
}
config.root_url = "http://localhost"
config.protocol = 'http'
config.verbose = false
end

config.wkhtmltopdf = ‘/path/to/wkhtmltopdf’
(路径为wkhtmltopdf的安装目录,linux 下用which wkhtmltopdf命令获取)
该文件自己手动创建,目录为: config/initializers/pdfkit.rb

application.rb(Rails3) or environment.rb(Rails2)

require ‘pdfkit’
config.middleware.use PDFKit::Middleware

该文件目录为:application.rb(Rails3) or environment.rb(Rails2)。修改如上即可

转出pdf 乱码问题

    1. 字符集编码问题 例如: 4/watch_onevideo_notes/724
    1. 系统未安装中文字体(因为pdfkit生成pdf功能其实调用的是webkit的子模块wkhtmltopdf(通过命令行方式),所以pdfkit生成中文乱码其实是wkhtmltopdf中文乱码导致的;而wkhtmltopdf中文乱码是因为系统中不存在中文字体导致的 )
    • 查看系统类型

      ​ cat /proc/version

    • 查看中文字体

      ​ fc-list :lang=zh-cn

    • 安装字体

      ​ sudo apt-get install -y –force-yes –no-install-recommends fonts-wqy-microhei

      ​ sudo apt-get install -y –force-yes –no-install-recommends ttf-wqy-zenhei