我有以下代码,它使用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页。 我想将其限制为仅限单页并跳过剩余的内容。
答案 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的代码几乎相同)