我试图使用 dompdf 在 pdf 的每一页上绘制线条/图像,但它从第二页开始,为什么会这样?有人有什么想法吗?
这是我的代码
$dompdf = new DOMPDF();
$dompdf->load_html($message2);
$dompdf->set_paper('a4','portrait');
$dompdf->render();
$canvas = $dompdf->get_canvas();
//For Header
$header = $canvas->open_object();
$canvas->image($header_image1,'jpg',0, 0, 595, 100);
$canvas->line(0,100,595,100,array(0,0,0),1);
$canvas->close_object();
$canvas->add_object($header, "all");
//For Footer
$footer = $canvas->open_object();
$canvas->line(0,740,650,740,array(0,0,0),1);
$canvas->image($footer_image1,'jpg',0, 742, 595, 100);
$canvas->close_object();
$canvas->add_object($footer, "all");
$output = $dompdf->output();
此代码在 pdf 上绘制线条/图像,但仅显示在最后一页。
我有两页 pdf 文件,我的线条/图像绘制在第二页而不是第一页上。
请提出任何解决方案。
最佳答案
在 DomPDF 中添加对象从当前页面开始。换句话说,您的对象将被添加,但只能从您当前拥有的页面开始,然后再添加到您添加的任何新页面。
在您的代码中,您已经将 HTML 转换为 PDF,因此当前页面很可能是文档中的最后一页。因此,您的页眉/页脚会添加到此处,但不会添加到任何以前的页面。
为了将内容放置在每个页面上,domPDF 提供了两种方法:page_text
和 page_script
。
在您的情况下,以下类型的代码应该可以解决问题:
$canvas->page_script('
$pdf->line(10,730,800,730,array(0,0,0),1);
');
然后针对每个 PDF 页面执行page_script
函数中的代码。
关于php - 为什么在 php 中使用 dompdf 只在 pdf 的最后一页绘制线条/图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30273033/