wkhtmltopdf 自动分页符

Posted

技术标签:

【中文标题】wkhtmltopdf 自动分页符【英文标题】:wkhtmltopdf automatic page breaks 【发布时间】:2012-07-22 16:47:59 【问题描述】:

我通过wicked_pdf 在Rails 应用程序中使用wkhtmltopdf v0.11.0 rc1(我知道wicked_pdf 不支持新的命令行参数表示法,我使用的是我自己的gem 分支)。我认为不适合页面的内容应该自动溢出到下一个页面,但事实并非如此 - 我看到文本刚刚被截断,有时在一行的中间。

我知道我可以使用 page-break-after:always 来布局我的页面,但这看起来像是肮脏的硬编码,而且 HTML 来自 ERB 模板,因此在哪里放置分页符并不总是很明显。

可以做些什么来自动插入分页符吗?我是否错过了有关其工作原理的一些信息?

生成的命令行如下所示

\"c:/program files (x86)/wkhtmltopdf/wkhtmltopdf.exe\"
   --header-html \"file:///C:Users/bleak/AppData/Local/Temp/campaign_report.header.pdf_pdf_1580_0.html\" 
   --footer-html \"file:///C:/Users/bleak/AppData/Local/Temp/campaign_report.footer.pdf_pdf_1580_0.html\"
   --margin-top 20 --margin-bottom 15 --margin-left 5 --margin-right 40
   --page-size \"A4\"   
   page \"file:///C:/Users/bleak/AppData/Local/Temp/campaign_report_cover.pdf_pdf_1580_0.html\" --disable-javascript  
   toc --xsl-style-sheet \"c:/work/morizo/admoney/app/views/layouts/campaign_report.xsl\"  - - 

【问题讨论】:

尝试删除底部边距,边距在 PDF 上,而不是生成的页面,所以我认为它正在运行到边距,因此您看到它被切断了。 试过了。没关系,内容还是被截断了。我知道我不需要底部边距... 【参考方案1】:

事实证明,这是因为 divs 用于包装文档部分的固定大小:

div.page 
  width: 180mm;
  height: 277mm;
  overflow: hidden;
  page-break-after: always;

一旦我删除了widthheight,自动中断就开始按预期工作。很简单。

【讨论】:

接受这个答案确实是解决方案:) 你能把链接发布到你的 wicked_pdf fork 吗?与 0.11.0 rc1 一起使用会很棒 @HargrimmTheBleak 为什么是 180mm 和 277mm 而不是其他数字? 这是不久前的事了,所以我对细节不再那么清楚了。我的猜测是,这些数字最初是经过定制的,以便为页眉和页脚留出足够的空间。

以上是关于wkhtmltopdf 自动分页符的主要内容,如果未能解决你的问题,请参考以下文章

避免表格行内的分页符

HTML/CSS - 分页符上的表头(Webkit) Laravel PDF

如何在Word中插入分页符

渲染的 PDF 在生产中看起来不同 - Rails、PDFKit、wkhtmltopdf

WORD中怎样设置分页符

windows分页符分节符