mPDF 不要在新页面上换行
mPDF don't wrap text on a new page
我用的是mPDF,页面上有一个生成的列表,到了页面的末尾,会转到新的页面。
但是我只需要打印一页,而且转到新页的数据需要改为“...”,而不是转移到另一页。
怎么做?
您的问题可能有多种解决方案,但我有一个想法。
开始计算生成的列表中的行数,当达到特定数量时停止输出内容。
假设您有带有公司徽标的 pdf header,然后列表中有大约 30 行数据的 space,然后它将填充剩余的 space。
然后你需要做的是让你的循环疯狂输出数据直到完成,计数并在达到数字时打破循环。
因为你没有任何代码,我假设你有这样的数据:
$n = 0;
$html = '';
$single_line_limit = 300;
foreach ( $data as $line )
{
$n++;
// if line is too long, it takes 2 linebreaks
if ( strlen($line) >= $single_line_limit )
$n++;
// if line is even longer, it takes 3 linebreaks
if ( strlen($line) >= ($single_line_limit * 2) )
$n++;
if ( $n >= 30 )
break;
$html .= '<div class="line">'.$line.'</div>';
}
$mpdf->WriteHTML($html);
30 行是我脑子里的一个数字,你必须从实验中找到这个数字.. 因为它基于你为 pdf 设置的字体和字体大小。
编辑: 添加了如何计算线的示例,并基于此您可以(大致)知道它需要不止一条线。
同样,可能有更优雅的方法来完成此操作,但这就是我的处理方法。
我用的是mPDF,页面上有一个生成的列表,到了页面的末尾,会转到新的页面。
但是我只需要打印一页,而且转到新页的数据需要改为“...”,而不是转移到另一页。 怎么做?
您的问题可能有多种解决方案,但我有一个想法。
开始计算生成的列表中的行数,当达到特定数量时停止输出内容。
假设您有带有公司徽标的 pdf header,然后列表中有大约 30 行数据的 space,然后它将填充剩余的 space。
然后你需要做的是让你的循环疯狂输出数据直到完成,计数并在达到数字时打破循环。
因为你没有任何代码,我假设你有这样的数据:
$n = 0;
$html = '';
$single_line_limit = 300;
foreach ( $data as $line )
{
$n++;
// if line is too long, it takes 2 linebreaks
if ( strlen($line) >= $single_line_limit )
$n++;
// if line is even longer, it takes 3 linebreaks
if ( strlen($line) >= ($single_line_limit * 2) )
$n++;
if ( $n >= 30 )
break;
$html .= '<div class="line">'.$line.'</div>';
}
$mpdf->WriteHTML($html);
30 行是我脑子里的一个数字,你必须从实验中找到这个数字.. 因为它基于你为 pdf 设置的字体和字体大小。
编辑: 添加了如何计算线的示例,并基于此您可以(大致)知道它需要不止一条线。
同样,可能有更优雅的方法来完成此操作,但这就是我的处理方法。