如何删除mPdf中的空白页
Posted
技术标签:
【中文标题】如何删除mPdf中的空白页【英文标题】:How to delete blank page in mPdf 【发布时间】:2015-06-24 11:21:25 【问题描述】:我正在使用 mPdf
将 html 文件转换为 PDF,但返回的 PDF 文件包含空白页。我想删除那些空白页。
【问题讨论】:
哪些页面是空白的?它是添加额外的空白页,还是在页面之间随机插入空白页? 感谢您的回复。它添加了额外的空白页。 我们需要有关来源的更多信息。您可以添加指向您的源 html 的链接吗? 【参考方案1】:遇到了同样的问题,并意识到我的 CSS 正在强制这些分页符。确保你的 CSS 中没有这个:
page-break-after: always;
【讨论】:
【参考方案2】:可能有很多原因:
1) 确保元素没有不必要的边距或填充
2) 正确配置页面属性(特别是边距):
$page_orientation = 0;
$page_size = 'Letter';
$page_margins = array('LEFT(int)','RIGHT(int)','UP(int)','BOTTOM(int)');
$pdf_output = 'I';
$css_files = array(
'path/file.css',
'path/file_2.css',
);
$orientationPage = array('','-L');
/* ===== [ MPDF ] =====*/
$mpdf=new mPDF('utf-8', $page_size.$orientationPage[$page_orientation],'','',$page_margins[0],$page_margins[1],$page_margins[2],$page_margins[3]);
// Loading CSS
for($i = 0; $i < count($css_files); $i++)
$stylesheet = file_get_contents('../../'.$css_files[$i]);
$mpdf->WriteHTML($stylesheet,1); // 1 para indicar que es CSS
// Set header & Footer (This are variables with html code)
$mpdf->SetHTMLHeader($header);
$mpdf->SetHTMLFooter($footer);
$mpdf->SetDisplayMode('fullpage');
$mpdf->SetTitle($title);
$mpdf->WriteHTML($html); // <-- insert HTML
// Create PDF
$mpdf->Output($titulo.'.pdf',$pdf_output);
3) 确保 HTML 中没有不必要的“分页符”
<pagebreak type="NEXT-ODD" resetpagenum="1" pagenumstyle="i" suppress="off" />
希望对你有帮助!
【讨论】:
【参考方案3】:我遇到了同样的问题,我通过从我的代码中删除 AddPage
属性来修复它
我改了下面的代码
// Code with bug
$mpdf = new mPDF('utf-8', array(380,500));
$mpdf->WriteHTML($htmlContent);
$mpdf->AddPage('P'); // It will add extra page - I that i removed this line
$mpdf->Output();
进入这个
// code after resolving the bug
$mpdf = new mPDF('utf-8', array(380,500));
$mpdf->WriteHTML($htmlContent);
$mpdf->Output();
【讨论】:
不知道为什么这被否决了。在循环结束时很容易留下一个额外的 AddPage 悬空。这也是我的问题。如果您对分页符使用 CSS 格式,则 addPage 可能是多余的。以上是关于如何删除mPdf中的空白页的主要内容,如果未能解决你的问题,请参考以下文章