wkhtmltopdf与整页背景

Lor*_*ntz 27 wkhtmltopdf

我正在使用wkhtmltopdf生成一个PDF文件,该文件将转到打印机,并且在生成的PDF中使内容填满整个页面时会遇到一些麻烦.

在CSS中,我将宽度和高度设置为2480 X 3508像素(a4 300 dpi),在创建PDF时,我使用0作为边距,但最后仍然在右边和底部有一个小的白色边框.也尝试使用mm和百分比,但结果相同.

我需要有人请提供一个示例,说明如何设置HTML样式以及在命令行使用哪些选项,以便生成的PDF页面填满整个背景.一种方法可能是包括出血(这可能是必要的)但欢迎任何提示.目前我正在创建一个大的HTML页面(没有CSS分页符 - 可能有帮助?)但是如果需要,可以单独生成每个页面然后将它们全部提供给wkhtmltopdf.

Rya*_*n Q 36

wkhtmltopdf v 0.11.0 rc2

结束了什么:

wkhtmltopdf --margin-top 0 --margin-bottom 0 --margin-left 0 --margin-right 0 <url> <output>
Run Code Online (Sandbox Code Playgroud)

缩短为

wkhtmltopdf -T 0 -B 0 -L 0 -R 0 <url> <output>
Run Code Online (Sandbox Code Playgroud)

使用stdin中的html(注意破折号)

echo "<h1>Testing Some Html</h2>" | wkhtmltopdf -T 0 -B 0 -L 0 -R 0 - <output>
Run Code Online (Sandbox Code Playgroud)

使用从stdin到stdout的html

echo"测试一些Html"| wkhtmltopdf -T 0 -B 0 -L 0 -R 0 - test.pdf

echo"测试一些Html"| wkhtmltopdf -T 0 -B 0 -L 0 -R 0 - - > test.pdf

什么也没有工作:

  • 运用 --dpi
  • 运用 --page-width and --page-height
  • 运用 --zoom


sav*_*rio 8

我意识到这是旧的和冷的,但万一有人发现这个并且有相同/类似的问题,这是一个解决方法,经过一些试验和错误后,对我有用.

我创建了一个简单的filler.html:

<!DOCTYPE html>
<html>
<head>
</head>
<body style="margin: 0; padding: 0;">
<div style="height: 30mm; background-color: #F7EBD4;">
&nbsp;
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

使用有效的HTML(!DOCTYPE很重要)并且只使用内联样式.将背景颜色与主文档的颜色匹配,并使用等于或大于边距的高度.

我使用以下参数运行版本0.12.0:

wkhtmltopdf --print-media-type --orientation portrait --page-size A4
 --encoding UTF-8 --T 10mm --B 10mm --L 0mm --R 0mm
 --header-html filler.html --footer-html filler.html - - <file.html >file.pdf
Run Code Online (Sandbox Code Playgroud)

希望这有助于某人......


lme*_*urs 6

http://code.google.com/p/wkhtmltopdf/issues/detail?id=359,我发现更多的人"受苦".该--dpi 300解决方法并没有为我工作,我必须设置--zoom 1.045在一点这使得多余的右侧和底部边框消失放大...


sro*_*nie 6

我正在使用版本 0.12.2.1 并设置:

body { padding: 0; margin 0; }
div.page-layout { height: 295.5mm; width: 209mm;}
Run Code Online (Sandbox Code Playgroud)

为我工作。

当然需要通过以下方式添加 0 个边距:

wkhtmltopdf -T 0 -B 0 -L 0 -R 0
Run Code Online (Sandbox Code Playgroud)


ʍǝɥ*_*ʇɐɯ 5

使用-B 0 -L 0 -R 0 -T 0选项并使用你设置A4大小的div的技巧对我来说很好.

你还记得使用body {margin:0; 填充:0;}在CSS的顶部?

我无法帮助你解决CSS分页问题,​​因为我还没有试过错误的那些,但是,你可以在页面上运行脚本来做聪明的事情.这是一个jQuery示例,说明如何根据内容的长度将内容拆分为页面大小块.如果你可以使用wkhtmltopdf,那么请在这里发布!

http://www.script-tutorials.com/demos/79/index.html


han*_*ngy 5

我们只是通过使用--disable-smart-shrinking选项解决了相同的问题。