DOM PDF仅生成1页pdf跳过剩余内容

时间:2016-02-16 12:34:21

标签: php pdf dompdf

我有以下代码,它使用DOM PDF库将Html内容转换为PDF文件。

$dompdf = new DOMPDF();
$dompdf->set_paper(array(0,0,450,306));
$dompdf->load_html($html);
$dompdf->render();
$output = $dompdf->output();
file_put_contents($pdf_path, $output);

但它会根据html内容生成2-3页。 我想将其限制为仅限单页并跳过剩余的内容。

1 个答案:

答案 0 :(得分:1)

最简单的方法是渲染图像。 GD适配器允许您指定要渲染的页面。

dompdf 0.6.2或更早版本:将DOMPDF_PDF_BACKEND设置为" GD"只呈现文档的第一页。

dompdf 0.7.0或更高版本:$dompdf->set_option('pdfBackend', 'GD');。此版本呈现所有页面,并允许您指定要输出/流的页面(默认为发送第一页)。

如果确实需要仅将第一页呈现为PDF,那将会更加困难。虽然技术上只能使用dompdf来实现这一点,但我实际上倾向于完全呈现PDF,然后使用外部库来拉出第一页。

例如,使用libmergepdf,您可以这样做:

use iio\libmergepdf\Merger;
use iio\libmergepdf\Pages;
use Dompdf\Dompdf;

$m = new Merger();

$dompdf = new Dompdf();
$dompdf->load_html('...');
$dompdf->render();
$m->addRaw($dompdf->output(), new Pages('1'));

file_put_contents('onepager.pdf', $m->merge());

(特定于dompdf 0.7.0,但0.6.2的代码几乎相同)