首页 > 解决方案 > Snappy pdf 在单页中显示内容

问题描述

我正在尝试使用来自 barrvdh 的 Snappy PDF 从 HTML 代码制作和下载 PDF 文件。这是我的代码

public function example()
{
    $pdf = \PDF::loadView('index');
    return $pdf->download('test.pdf');
}

就像标题一样,当用户单击按钮下载 pdf 时,我只想将所有内容放在一个页面中并将页面大小设置为 A3。使用 dompdf,我可以轻松地在 dompdf.php 中设置页面大小,如下所示:

"default_paper_size" => "a4",

但我不知道如何设置页面大小并将内容放在单页中。
谢谢,

标签: laravelpdfsnappy

解决方案


在一个旧答案中,有一个很好的解释,说明了如何将所有内容缩放并放入一个页面中,该答案wkhtmltopdf是 Snappy PDF 的底层机器,请参见此处。这将帮助您详细了解将其设置为一页的机制。

要直接回答您的问题,在 snappy 中设置页面大小等选项只需将参数输入到您选择的方法中,如下所示:

$pdf = \PDF::loadView('index', $myVar)->setOption('margin', 5)->setOrientation('landscape')->setPaper('a4');

该界面虽然出色,但确实留下了一些猜测,以便在这些选项之间进行转换wkhtmltopdf以及如何将这些选项输入 Snappy,但以上内容应该让您非常接近您想要去的地方。您可能需要查看wkhtmltopdf选项,然后查看 Snappy 源代码以了解一些更不寻常的选项,但基础知识在上面的代码中。


推荐阅读