在我的Ruby(1.9.2)Rails(3.0.x)中,我想使用wicked_pdf将网页呈现为PDF,我想控制分页的位置。我控制分页符的CSS代码如下:
<style>
@media print
{
h1 {page-break-before:always}
}
</style>
但是,当我使用wicked_pdf呈现页面时,它不会将文档分成两页。还有其他一些我必须做的就是用wicked_pdf来分页?
答案 0 :(得分:58)
出于某种原因,“@ media print”并没有这么做。我跟你一起去了
.page-break { display:block; clear:both; page-break-after:always; }
对于CSS规则,然后我将以下内容粘贴在我的页面中以进行分页:
<div class="page-break"></div>
这才有效。
答案 1 :(得分:10)
试过Jay的解决方案,但无法让它工作(可能与其他css发生冲突)
我得到了它的工作:
<p style='page-break-after:always;'></p>
答案 2 :(得分:4)
我遇到了同样的问题,我发现了一些可能有用的东西。这是我的分页CSS代码:
.page-break {
display: block;
clear: both;
page-break-after: always;
}
由于两个原因,这不起作用:
<强>予。在其中一个SASS导入的文件中,我有这行代码:
html, body overflow-x: hidden !important
<强> II。另一个问题是bootstrap
@import "bootstrap"
看起来好像是因为float: left
:
.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
float: left;
}
分页符不再有效。因此,只需在之后添加导入bootstrap。
.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
float: initial !important;
}
答案 3 :(得分:2)
如果您使用外部样式表,请确保样式表链接标记包含media ='print'或media ='all':
<%= stylesheet_link_tag 'retailers_pdf',media: 'all' %>
或
<%= stylesheet_link_tag 'retailers_pdf',media: 'print' %>
否则wicked_pdf将无法接收它。
另请注意,如果您位于带有边框的表格或div的中间,则分页符属性将不起作用。在这种情况下,是时候打破jQuery并开始分裂。这个答案:https://stackoverflow.com/a/13394466/2016616有一个很好的位置测量片段。我正在研究干净且可重复的表格分割代码,并在完成后发布它。
答案 4 :(得分:2)
这些解决方案都不适合我。我确实找到了一个适用于宝石问题的许多人的解决方案 - https://github.com/wkhtmltopdf/wkhtmltopdf/issues/1524
您想在需要分页符的元素上添加CSS。就我而言,它是表行,所以我补充说:
tr {
page-break-inside: avoid;
}
答案 5 :(得分:1)
我有同样的问题,最终为我工作的是确保我的元素
page-break: always;
位于文档的根目录上,似乎当它嵌套在其他元素内部时,特别是高度分配的元素时,声明会被忽略。
希望这有助于某人。