与在ColdFusion上使用CFDOCUMENT类似,获取超文本标记语言并将其转换为PDF的最佳和最简单的方法是什么?
更新:到目前为止,我真的很感谢人们给出的所有评论和建议,但我觉得人们留下的答案没有抓住要点。
1)解决方案必须是免费或开源的。一个人建议使用pricexml,另一个人建议使用pd4ml。这两种解决方案都需要花钱(昂贵的over需要一只手臂和一条腿),我不是为了解决这个问题。
2)它们必须能够接收html (来自文件、url或字符串变量),然后生成pdf。像prawn,rprf,rtex这样的库是使用它们自己的方法生成的,而不是接受html。
请不要认为我对这些建议是忘恩负义的,只是对于像我这样使用ColdFusion但想要转换到Rails的人来说,pdf生成似乎是一个真正的问题。
发布于 2009-12-06 04:55:41
gem WickedPDF就是这样做的。
发布于 2011-04-10 01:29:29
对于这项工作,现在最棒的是PDFKit:
发布于 2015-10-07 20:26:13
PDF生成器(从Try WickedPDF )插件。
下面是一个例子
gem 'wicked_pdf'
gem 'wkhtmltopdf-binary'
#wicked_pdf is a wrapper for wkhtmltopdf, you'll need to install that, too
在你的控制器中(我假设你在show方法中):
respond_to do |format|
format.html
format.pdf do
pdf = render_to_string :pdf => 'test',
layout: 'pdf.html.erb',
template: 'show.pdf.slim',
header: { :right => '[page] of [topage]'},
margin: {top: 0,
bottom: 0,
left: 0,
right: 0},
outline: {outline: true,
outline_depth: 2}
end
end
在PDF链接的视图中
= link_to 'Download Pdf', you_show_path(@uour_object, format: :pdf)
如果你想在电子邮件附件中发送pdf文件,首先将pdf文件保存在public或temp文件夹中,然后保存在mailer类中(例如,在mailers/e_mailer.rb中)
attachments["test.pdf"] = File.read(Rails.root.join('public',"test.pdf"))
mail(:to => to, :cc => cc , :subject => "subject")
发送电子邮件后,您可以删除文件
File.delete(Rails.root.join("public", "test.pdf"))
https://stackoverflow.com/questions/357212
复制相似问题