【问题标题】:TCPDF - DIV is showing extra space before and afterTCPDF - DIV 在之前和之后显示额外的空间
【发布时间】:2014-02-04 21:53:53
【问题描述】:

我正在使用 TCPDF 将长格式转换为 pdf。我的html结构是这样的:

<table cellspacing='0' cellpadding='0' border='0'>
  <tr>
      <td>
          <div style="page-break-inside: avoid;"> ..one more table ..</div>
      </td>
  </tr>
</table>

但是在PDF的输出中,div前后有一些额外的空间(大约20px)。当我删除 &lt;div&gt; 时,它看起来很完美。但我不能删除它。我无法找出解决方案。

任何建议将不胜感激。谢谢

【问题讨论】:

  • 试试&lt;div style="page-break-inside: avoid; margin: 0px; padding: 0px;"&gt;
  • TCPPDF 忽略 div 的边距和填充 :(

标签: php html pdf pdf-generation tcpdf


【解决方案1】:

我知道这是旧的,但请查看 setHtmlVSpace 类。

【讨论】:

  • $tagvs = array('p' => array(0 => array('h' => 0, 'n' => 0), 1 => array('h' => 0, 'n' => 0))); $pdf->setHtmlVSpace($tagvs);
【解决方案2】:

块内的空间&lt;td&gt; 被解释。 您可以这样编写代码来删除空格:

<table cellspacing='0' cellpadding='0' border='0'>
  <tr>
      <td><div style="page-break-inside: avoid;"> ..one more table ..</div></td>
  </tr>
</table>

如果您使用 Twig 或 Smarty 等模板语言,有一些解决方案可以围绕您的代码:
树枝:{% spaceless %}https://twig.symfony.com/doc/2.x/tags/spaceless.html
聪明的:{strip}http://www.smarty.net/docsv2/fr/language.function.strip.tpl

【讨论】:

    【解决方案3】:

    要设置 HTML 标签的垂直间距,在本例中使用 'div':

    $tagvs = {'div' => [{'h' => 0, 'n' => 0}, {'h' => 0, 'n' => 0}]}
    $pdf->setHtmlVSpace($tagvs);
    

    $tagvs:标签和相对垂直空间的数组。

    [{'h' => 0, 'n' => 0}, {'h' => 0, 'n' => 0}]:第一个用于开始标签“div”,第二个用于结束标签“ /div'。

    'h' : 垂直空间单位

    'n' : 要添加的空格数

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-01
      • 2013-05-06
      • 1970-01-01
      • 2014-05-18
      • 1970-01-01
      • 1970-01-01
      • 2021-01-13
      • 2014-06-22
      相关资源
      最近更新 更多