如何在 TCPDF 中使用 setHtmlVSpace 来减少列表元素之间的垂直 space?
How to use setHtmlVSpace in TCPDF to reduce vertical space between list elements?
我的 pdf 文档目前看起来像这样。
我想减少 li 元素之间的 space。我试图为 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> 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);
这是我现在的代码,但间距仍然没有改变。
li {
margin: 0;
padding: 0.2em;
}
编辑:TCPDF 不支持边距和填充的 CSS 属性。相反,我在 span 标签中添加了 line-height 以获得所需的间距。
$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> 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);
虽然是个老问题,但我在 TCPDF 下是这样处理的:
ul {
line-height: 0px;
}
li {
line-height: 12px;
}
注意你必须同时拥有 ul 和 li,就像你只有 ul 一样,它也会改变 li 中的行之间的 space。当 ul 行高为 0 时,li 的第一行就在 ul 标签之前的行之后。
我使用 tcpdf.php v. 6.4.1,最后更新于 2021-03-27。在您的示例中,您将标签 P 放入标签 LI 中,因此请通过将 h 设置为 >0 的小数字来降低它们的默认高度,例如0.01(仅供参考:接近尾声时您添加了 UL 而不是 ):
$tagvs = [
'p' => [
['h'=>0.1, ],
['h'=>0.1, ]
],
'li' => [
['h'=>0.1, ],
],
];
$pdf->setHtmlVSpace($tagvs);
我的 pdf 文档目前看起来像这样。
我想减少 li 元素之间的 space。我试图为 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> 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);
这是我现在的代码,但间距仍然没有改变。
li {
margin: 0;
padding: 0.2em;
}
编辑:TCPDF 不支持边距和填充的 CSS 属性。相反,我在 span 标签中添加了 line-height 以获得所需的间距。
$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> 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);
虽然是个老问题,但我在 TCPDF 下是这样处理的:
ul {
line-height: 0px;
}
li {
line-height: 12px;
}
注意你必须同时拥有 ul 和 li,就像你只有 ul 一样,它也会改变 li 中的行之间的 space。当 ul 行高为 0 时,li 的第一行就在 ul 标签之前的行之后。
我使用 tcpdf.php v. 6.4.1,最后更新于 2021-03-27。在您的示例中,您将标签 P 放入标签 LI 中,因此请通过将 h 设置为 >0 的小数字来降低它们的默认高度,例如0.01(仅供参考:接近尾声时您添加了 UL 而不是 ):
$tagvs = [
'p' => [
['h'=>0.1, ],
['h'=>0.1, ]
],
'li' => [
['h'=>0.1, ],
],
];
$pdf->setHtmlVSpace($tagvs);