我正在生成一个动态 pdf 文件,其中包含大约 10,000 个用户的数据,通常该应用程序是使用 MySQL 和 PHP 开发的。动态内容太重了,我发现很难用fpdf()
类来处理。所以我将我的输出 PHP 页面转换为 HTML 文件,使用ob_get_clean()
. 现在成功生成了html文件和pdf文件。但是我想在每个用户的数据之后留下一个分页符,即每个用户的数据都必须从一个新页面开始。我不能使用任何 HTML 标记,因为在动态生成的 HTML 文件中,一切都在<html>
and</html>
标记之外。请帮助我,以便我如何在每个用户的数据之后在 pdf 文件中进行分页...在此先感谢 :)
问问题
42822 次
4 回答
17
html2pdf 支持页面标签:
protected function _tag_open_PAGE($param) {}
在第 2229 行。您可以在那里看到支持哪些属性。例如以下创建一个横向页面和一个纵向模式:
<page orientation="l">
... some content ...
</page>
<page orientation="p">
... some content ...
</page>
于 2014-02-14T07:38:10.493 回答
13
基于 macdabby 的工作(不起作用)。但多亏了他,这个想法是正确的。
html2pdf v4.03
例如我们要解析一个标签 DIV:
html2pdf.class.php 第 2948 行:
protected function _tag_close_DIV($param, $other='div')
{
if ($this->parsingCss->value['page-break-after'] == "always")
$this->_setNewPage(null, '', null, $this->_defaultTop);
$this->parsingCss->setPosition();
...
}
解析Css.class.php 第 114 行:
//add a new style declaration
public function initStyle()
{
...
$this->value['page-break-after'] = null;
}
第 1024 行向 switch case 添加了一个新的处理程序:
case 'page-break-after':
$this->value[$nom] = $val;
break;
然后让它工作,你的 html 内容应该包含 break 元素
<div style="page-break-after:always; clear:both"></div>
注意区分大小写的样式,不确定插件是否处理它
于 2013-01-04T16:43:02.610 回答
2
您可能想使用一些 css,例如:
h1 {page-break-before:always}
于 2010-01-22T14:24:30.387 回答
2
我只是在遇到同样的问题后才知道这一点。他们使用的解析器确实支持 page-break-after 标记,但 html2pdf 不起作用。
我想我可以通过对 html2pdf.class 进行以下修改来实现它:
在第 4174 行附近,里面的第一件事:
protected function _tag_close_P($param){
应该:
if($this->parsingCss->value['page-break-after'] == "always")
$this->_setNewPage();
在第 2961 行附近,里面的第一件事:
protected function _tag_close_DIV($param, $other='div'){
应该:
if($this->parsingCss->value['page-break-after'] == "always")
$this->_setNewPage();
于 2012-08-28T16:49:25.583 回答