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 设置的字体和字体大小。

编辑: 添加了如何计算线的示例,并基于此您可以(大致)知道它需要不止一条线。

同样,可能有更优雅的方法来完成此操作,但这就是我的处理方法。