php 如何在TCPDF中使用setHtmlVSpace来减少列表元素之间的垂直空间?

vsikbqxv  于 2023-03-07  发布在  PHP
关注(0)|答案(5)|浏览(202)

我的pdf文档当前如下所示。

我想减少li元素之间的空间。我尝试对li标记使用内联样式,在多次尝试失败后,我发现了这个answer

$pdf->setHtmlVSpace(array(
    'li' => array(
        'h' => 0, // margin in mm
    ) 
));

$html ='
<span style="text-align:justify;">
<ul>
    <li><p>1.- Los datos de los bienes, arrendamientos o servicios a cotizar (mismos que se especifican en el anexo de la solicitud de cotización).</p></li>
    <li><p>2.- Condiciones de entrega:</p></li>
    <li><p>En una sola exhibición de <u>cantidad de días señalada en documento anexo</u>&nbsp;días naturales posteriores a la recepción de la orden de surtimiento.</p><ul><li>Entregas parciales con una vigencia máxima (fechas o plazo) <b><u>N/A.</u></b></li><li>El lugar de entrega será: <b><u>El señalado en el documento anexo.</u></b></li></ul></li>
<ul></span>';
$pdf->SetFont('Helvetica', '', 10);
$pdf->writeHTML($html, true, 0, true, true);

这是我现在的代码,但间距仍然没有改变。

7vhp5slm

7vhp5slm1#

即使这是一个老问题,以下是我在TCPDF下处理这个问题的方式:

ul {
    line-height: 0px;
   }   
li {
       line-height: 12px;
   }

注意,你必须同时拥有ul和li,就像你只有ul一样,这也改变了li中的行间空间。当ul行高为0时,li的第一行就在ul标签前一行的后面。

bmp9r5qi

bmp9r5qi2#

li {
    margin: 0;
    padding: 0.2em;
     }
oiopk7p5

oiopk7p53#

编辑:TCPDF不支持边距和填充的CSS属性。相反,我在span标签中添加了行高来获得所需的间距。

$htmlData = '
<span style="text-align:justify; line-height: 21px;">
<ul>
    <li>1.- Los datos de los bienes, arrendamientos o servicios a cotizar (mismos que se especifican en el anexo de la solicitud de cotización).</li>
    <li>2.- Condiciones de entrega:</li>
    <li>En una sola exhibición de <u>cantidad de días señalada en documento anexo</u>&nbsp;días naturales posteriores a la recepción de la orden de surtimiento.<ul><li>Entregas parciales con una vigencia máxima (fechas o plazo) <b><u>N/A.</u></b></li><li>El lugar de entrega será: <b><u>El señalado en el documento anexo.</u></b></li></ul></li>
    <li>3.- Considerar en su cotización que el pago es a los 20 días naturales posteriores a la entrega de la factura, previa entrega de los bienes o prestación de los servicios a satisfacción.</li>
<ul></span>';

$pdf->SetFont('Helvetica', '', 10);
$pdf->writeHTML($htmlData, true, 0, true, true);
vql8enpb

vql8enpb4#

我使用tcpdf.php v. 6.4.1,最后更新于2021-03-27。在您的示例中,您将标签P添加到标签LI中,因此请将h设置为大于0的小数值,例如0.01(FYI:在接近结尾处添加了UL而不是〈/UL):

$tagvs = [
  'p' => [
    ['h'=>0.1, ],
    ['h'=>0.1, ]
  ],
  'li' => [
    ['h'=>0.1, ],
  ],
];
$pdf->setHtmlVSpace($tagvs);
xytpbqjk

xytpbqjk5#

如果你想从TCPDF中的p标签中删除不必要的垂直高度/空格,那么你可以使用下面的代码。
数组(“p”=〉数组(0 =〉数组(“h”=〉0,“n”=〉0),1 =〉数组(“h”=〉0,“n”=〉0));
$pdf-〉设置虚拟空间($tagvs);
谢谢你问这个问题。

相关问题