首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DOM只生成1页PDF,跳过剩余内容

DOM只生成1页PDF,跳过剩余内容
EN

Stack Overflow用户
提问于 2016-02-16 12:34:20
回答 1查看 2.5K关注 0票数 2

下面的代码使用将Html内容转换为PDF文件。

代码语言:javascript
复制
$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页。我只想把它限制在单个页面上,跳过剩下的内容。

EN

回答 1

Stack Overflow用户

发布于 2016-03-17 18:33:08

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

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

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

如果您真的只需要将第一页呈现为PDF格式,那就更困难了。虽然从技术上讲,只有dompdf才能做到这一点,但实际上我倾向于完全呈现PDF,然后使用外部库提取第一页。

例如,使用利伯尔盖夫,您可以这样做:

代码语言:javascript
复制
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的代码几乎相同)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35432760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档