如何在使用 snappy twig (Symfony 4) 创建的 pdf 中创建无边距的 header?

How can I create a header without margin in pdf created with snappy twig (Symfony 4)?

我通过 snappy 从 twig 模板在 Symfony 中创建了一个 pdf:

这是我的控制器,我在其中创建 pdf:

 /**
  * @Route("/pdf", name="pdf")
  */

  public function pdf(Request $request, Pdf $snappy)
  {

    $snappy->setOption("encoding","UTF-8");

    $html = $this->renderView("default/pdf.html.twig",array(
      "title" => "pdf"
    ));

    $filename = "mypdf";
    return new Response(
      $snappy->getOutputFromHtml($html),
      200,
      array(
        'Content-Type' => 'application/pdf',
        'Content-Disposition' => 'inline; filename="'.$filename.'.pdf"'
      )
    );

  }

这是 html 模板,我在其中创建 header pdf.html.twig:

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
* {box-sizing: border-box;}

body {
  margin: 0;
  font-family: Arial, Helvetica, sans-serif;
}

.header {
  overflow: hidden;
  background-color: #000;
  padding: 20px 10px;
}



.header-right {
  float: right;
}


}
</style>
</head>
<body>

<div class="header">
  <a href="#default" class="logo">Logo</a>

</div>

<div style="padding-left:20px">
  <h1>headline</h1>
  <p>Some text</p>
  <p>Some content..</p>
</div>

</body>
</html>

我尝试让黑色 header 适合无边框的页面。但是还是有白边。它不会走到边缘。

问题是 wkhtmltopdf 默认为 non-zero 左右边​​距。如果将可执行文件修改为 wkhtmltopdf -R 0 -L 0 ...,黑色将扩展到页面的宽度。参见 this

顺便说一句,您可能需要删除 </style>

上方那一行的额外大括号 }

更改此行

 $snappy->setOption("encoding","UTF-8");

进入

$snappy->setOption("encoding","UTF-8");
$snappy->setOption('margin-left', '0mm');
$snappy->setOption('margin-right', '0mm');
$snappy->setOption('margin-top', '0mm');