业务系统中,经常有导出PDF的需求,现使用prawn
来实现这一功能。
-
gem install prawn
; -
bundle exec rake manual
生成manual.pdf帮助文档; - 将自己需要的字体拷贝至
"#{Prawn::DATADIR}/fonts/"
路径下;
目前的需求很简单,只需要将文字内容转化成pdf:
def generate_pdf(content)
Prawn::Document.generate("test.pdf") do
file = "#{Prawn::DATADIR}/fonts/gkai00mp.ttf"
font_families["Kai"] = {
:normal => { :file => file, :font => "Kai" }
}
text content, :fallback_fonts => ["Times-Roman", "Kai"]
end
end
现在想实现这样的一个功能:将markdown
编写个人简历导出成pdf
格式。然而prawn
无法转化html
格式,因此放弃使用,选择pdfkit
。
Gemfile
中添加gem 'pdfkit'
和gem 'wkhtmltopdf-binary'
,然后执行bundle install
;-
定义路由:
get 'download', to: 'welcome#download_resume'
-
代码实现:
# app/controllers/welcome_controller.rb def download_resume resume = current_user.resume content = resume.content_html.nil? ? resume.content : resume.content_html kit = PDFKit.new(content, page_size: 'Letter') pdf = kit.to_pdf file_name = "#{current_user.username}的个人简历.pdf" send_data(pdf, filename: file_name) end