我用 jQuery 获取我的 DOM 并发送一个 AJAX 请求来创建 PDF:
// store html in variable
var html = '<html>' + $('html').html() + '</html>';
// create pdf
$.ajax({
url: '/quotes/generate_pdf',
data: { html : html, quote_id : quote_id },
type: "POST",
cache: false,
success: function(data) {
},
error: function() {
alert('An error occurred, please refresh the page and try again');
}
});
然后,在 Rails 中:
def generate_pdf
if request.post?
kit = PDFKit.new(params[:html])
kit.stylesheets << RAILS_ROOT + '/public/stylesheets/portal/pdf.css'
file = kit.to_file(RAILS_ROOT + '/pdfs/' + params[:quote_id] + '.pdf')
render :text => '1'
end
end
pdf.css
是将我页面中的样式表合并到一个文件中。
生成的 PDF 看起来很完美,只是由于某种原因在它上面有某种灰色覆盖。在花时间尝试查看是什么导致它之后,它似乎是内部的东西,bootstrap.css
但我不知道是什么,所以只是希望其他人解决了同样的问题,但我似乎找不到任何东西。
当打开 PDF 时,它在 Adobe Reader 中似乎是完美的一秒钟,但随后出现了覆盖,所以我认为这是软件的问题,但在不同的程序中打开它会得到相同的结果,并且缩略图预览也有覆盖,另外,当我发现它是引导程序中的某些东西时,它消除了有问题的软件。