如何在使用 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');
我通过 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');