A Micro Toolbox

ソフトウェアのニッチな問題の対処記録です

wkhtmltopdf: ハガキサイズのPDFを余白なしで作る

Windows版のwkhtmltopdf 0.12.2.4でハガキサイズのPDFを作ろうとして、余白を消すのに苦労したのでメモ。

ハガキの大きさ100x148mmをCSSで指定。

<!DOCTYPE html>
<html>

<head>

<style>
*
{
  margin: 0;
  padding: 0;
}

.page
{
  position: relative;
  
  width: 100mm;
  height: 148mm;
  page-break-inside: avoid;
  page-break-after: always;
}

.page_header
{
  position: absolute;
  top: 0mm;
  left: 0mm;

  width: 100%;
  height: 10mm;
  background-color: #ffeeee;
}

.page_footer
{
  position: absolute;
  top: 138mm;
  left: 0mm;

  width: 100%;
  height: 10mm;
  
  background-color: #eeeeff;
}

.page_content
{
  position: absolute;
  top: 10mm;
  left: 0mm;
  
  width: 100%;
  
  background-color: #eeffee;
}

</style>

</head>

<body>
<div class="page">

<div class="page_header">header</div>
<div class="page_content">sample</div>
<div class="page_footer">footer</div>

</div>
</body>

</html>


上記を仮にhagaki.htmlという名で作成したとして、次のオプションでwkhtmltopdfを実行する。

\path\to\wkhtmltopdf.exe ^
--page-width 100mm --page-height 148mm ^
-T 0 -L 0 -B 0 -R 0 --disable-smart-shrinking ^
hagaki.html hagaki.pdf

3行目が肝。
「-T 0 -L 0 -B 0 -R 0」だけだと上と左の余白はなくなったが、全体が縮小されて右と下に余白ができてしまった。
「--disable-smart-shrinking」を追加したところ、縮小されなくなって余白もなくなった。