当我通过wkhtmltopdf将html转换为PDF时,我想避免在html中的表行内部分页.我使用page-break-inside:避免使用table-它的工作,但是我有很多行,然后没有工作.如果将tr的显示设置为块或其他内容,则会更改表的格式并插入双边框.或者可以在分割表的每个页面上插入表头.
这是我使用Wicked_pdf将我的html.erb页面转换为的结果pdf.
问题:看起来table的tr已分裂成两页.
我没有成功的尝试:
table,tr,td,th,tbody,thead,tfoot {page-break-inside:avoid!important; }
另一种选择:将每个tr放在自己的tbody中,然后将peage break css规则应用于tbody.表支持多个tbodys.一点额外的标记,但对我来说效果不错.
我正在使用Ruby on Rails 4.2.6,Wicked_pdf最新版本,bootstrap.
问:我怎样才能让table的tr不分割成两页.
我想制作我的大型报表的PDF渲染.但似乎phantomjs不支持该rowSpan属性.这是一个例子:
phantomjs rasterize.js "http://fiddle.jshell.net/eric777/SLtGa/show/" report.pdf A4
Run Code Online (Sandbox Code Playgroud)
这是jsfiddle
这是结果
这有解决方法吗?
编辑:
也许有人可以在webkit中解决这个问题?
我在Windows上使用wkhtmltopdf 0.12.3.2.
我知道围绕这个主题有很多问题和答案,但我仍然无法找到问题的答案; 我不知道在哪里放置相应的CSS - 或者CSS不能用于某些(其他)原因:
例如,我试图将与分页相关的CSS直接放入我想要呈现的html文件中.我试图<span class="break_here"></span>在我的强制分页符<body>:
<!-- ... -->
<head>
<style>
span.break_here {
page-break-after: always !important;
}
</style>
</head>
<!-- ... -->
Run Code Online (Sandbox Code Playgroud)
这没有做任何事情.
然后我也尝试将它放入@media print{}或者@media screen{}没有改变任何东西:
<style>
@media screen{
span.break_here {
page-break-after: always !important;
}
}
</style>
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
编辑:通过添加--user-style-sheet使用外部样式表的选项,甚至还有另一种可能性.
wkhtmltopdf ×3
css ×2
html ×2
html-table ×1
page-break ×1
pdf ×1
phantomjs ×1
qt4 ×1
qtwebkit ×1
wicked-pdf ×1