wkhtmltopdf文本分为2页

时间:2014-01-16 08:06:19

标签: css ruby-on-rails pdf-generation wkhtmltopdf pdfkit

我正在使用wkhtmltopdf(通过'pdfkit'ruby gem)从html生成pdf。页面中有一个部分,文本内容很长,通常跨越2(或更多)页面。有时会发生的是,一行文本被分割成页面。这是一张图片,可以帮助您理解我的意思:

enter image description here

现在我已经对此进行了相当多的研究:例如,我已经尝试了CSS修复了周围的div(在其他一些stackoverflow问题中提出过),如下所示:

page-break-inside:avoid !important;

和/或

page-break-before: always !important;

没用。

我也尝试过:

display: block !important;

也不起作用。

有谁知道如何解决这个问题?

仅供参考:我使用的是最新版本的wkhtmltopdf:wkhtmltopdf-0.11.0_rc1

2 个答案:

答案 0 :(得分:1)

在我的情况下,通过注释掉以下css来解决问题:

html, body {
  overflow-x: hidden;
} 

正如El Kopyto中对先前答案的评论之一所述:

  

检查此div或父div是否将溢出设置为隐藏。如果是这样,请将其更改为可见。

就我而言,删除溢出属性完成了这项工作。

答案 1 :(得分:0)

此解决方案适用于wicked-pdfwkhtmltopdf

遇到类似问题但通过将configuration文件夹wicked_pdf.rb文件中的内容更改为

来修复
WickedPdf.config = {
    :layout => "pdf.html",
    :margin => {    :top=> 60, #previously 40
                    :bottom => 40, #previously 20
                    :left=> 30,
                    :right => 30},
    :header => {:html => { :template=> 'layouts/pdf_header.html'}},
    :footer => {:html => { :template=> 'layouts/pdf_footer.html'}},
    :exe_path => '/usr/bin/wkhtmltopdf'
}

previous to new values更改,它在本地计算机上运行良好。

每当您在wicked_pdf.rb进行更改时,必须重新启动服务器,并确保page-break-before: always位于正确的位置。

希望这会有所帮助:)