【问题标题】:DOM PDF generate only 1 page pdf skip remaining contentDOM PDF 仅生成 1 页 pdf 跳过剩余内容
【发布时间】:2016-03-18 02:33:08
【问题描述】:

我有以下代码,它使用 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 个页面。 我想将其限制为仅单页并跳过其余内容。

【问题讨论】:

  • 我也想要一些帮助...

标签: php pdf dompdf


【解决方案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 相同)

【讨论】:

  • 当你说“你真的只需要将第一页呈现为 PDF 时,这有点困难。虽然技术上只能使用 dompdf 来做到这一点”......你如何做到这一点? DOMPDF?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-31
  • 1970-01-01
相关资源
最近更新 更多