我正在使用wkhtmltopdf(通过'pdfkit'ruby gem)从html生成pdf。页面中有一个部分,文本内容很长,通常跨越2(或更多)页面。有时会发生的是,一行文本被分割成页面。这是一张图片,可以帮助您理解我的意思:
现在我已经对此进行了相当多的研究:例如,我已经尝试了CSS修复了周围的div(在其他一些stackoverflow问题中提出过),如下所示:
page-break-inside:avoid !important;
和/或
page-break-before: always !important;
没用。
我也尝试过:
display: block !important;
也不起作用。
有谁知道如何解决这个问题?
仅供参考:我使用的是最新版本的wkhtmltopdf:wkhtmltopdf-0.11.0_rc1
答案 0 :(得分:1)
在我的情况下,通过注释掉以下css来解决问题:
html, body {
overflow-x: hidden;
}
正如El Kopyto中对先前答案的评论之一所述:
检查此div或父div是否将溢出设置为隐藏。如果是这样,请将其更改为可见。
就我而言,删除溢出属性完成了这项工作。
答案 1 :(得分:0)
此解决方案适用于wicked-pdf
和wkhtmltopdf
。
遇到类似问题但通过将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
位于正确的位置。
希望这会有所帮助:)