在Symfony中调整PDF大小

时间:2017-07-14 03:38:13

标签: html css symfony pdf resize

我正在创建一个可以制作名片的应用。对于每种卡的设计(公司会有一些变化),我使用的是带有该设计名称的TWIG模板。然后使用KnpSnappyBundle(https://github.com/KnpLabs/KnpSnappyBundle)将呈现的TWIG HTML代码更改为PDF,并将副本保存到数据库中。

我遇到的问题是我们需要让用户在将完整尺寸发送到打印机之前看到草稿(这会自动通过电子邮件发送给他们),但我无法确定调整大小。

我试过了:

$html = $this->renderView('templates/test1.html.twig');
$snappy = $this->get('knp_snappy.pdf');
$snappy->setOption('page-height', 55);
$snappy->setOption('page-width', 90);
$code = $snappy->getOutputFromHtml($html);

return new Response($code,
    200,
    array(
        'Content-Type' => 'application/pdf',
        'Content-Disposition' => 'inline; filename="out.pdf"'
    )
);
在控制器中

,然后更改页面高度和页面宽度。在模板中我有:

<html>
<head>
    <title>test</title>
    <style>
        body, html {
            width: 567px;
            height: 360px;
        }
        h1 {
            font-size: 100px;
        }
    </style>
</head>
<body>
    <h1>test</h1>
</body>
</html>

问题在于,当我选择草稿时,它需要与全尺寸草图相同,它只是不会有大文件大小并且很容易适应屏幕。但是当我改变大小时,它只是放置相同大小的内容(字体等)并将其分成多个页面。

如何调整整个pdf的大小以制作草稿副本?

1 个答案:

答案 0 :(得分:0)

您可以为wkhtmltopdf使用不同的参数。例如:

./wkhtmltopdf -d 300 -L 0mm -R 0mm -T 0mm -B 0mm --page-width 88mm --page-height 56mm http://habrahabr.ru out.pdf

您可以在knp_snappy_bundle的配置中将这些命令设置为选项:

knp_snappy:
    pdf:
        enabled:    true
        binary:     /usr/local/bin/wkhtmltopdf #"\"C:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltopdf.exe\"" for Windows users
        options:    []
    image:
        enabled:    true
        binary:     /usr/local/bin/wkhtmltoimage #"\"C:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltoimage.exe\"" for Windows users
        options:    []

查看https://wkhtmltopdf.org/usage/wkhtmltopdf.txt

的文档