为什么 TCPDF 在我的 PDF 中添加奇怪的顶部空间?

问题描述

我想使用 TCPDF 将 html 导出为 PDF,但在文档顶部出现了一些奇怪的空间。我想我已经将所有 Margin 和 Padding 选项设置为零,但我无法摆脱它。谁能帮我?我在主容器和 h1 上添加一个红色边框顶部以查看它对齐的位置。正如您在屏幕截图中看到的,它们顶部有空间。

记录:

  • Laravel 8
  • PHP 7.4
  • TCPD 6.3.2

我的 PDF 设置:

$pdf = new TCPDF($config['orientation'],'pt',$pageLayout,true,'UTF-8',false);
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
$pdf->SetMargins(0,true);
$pdf->setCellPaddings(0,0);
$pdf->setCellMargins(0,0);
$pdf->setimageScale(PDF_IMAGE_SCALE_RATIO);
$pdf->SetPrintHeader(false);
$pdf->SetPrintFooter(false);
$pdf->AddPage();
$pdf->writeHTML($html,false,'top');
$fileName = date('YmdHis').'-document.pdf';
return $pdf->Output($fileName,'I');

这是我的 CSS:

*{
    margin:0;
    padding:0;
}
@page{
    size: 21cm 24cm;
    margin:0;
    padding:0;
    clear: both;
}
html,body {
    width:617px;
    height:617px;
    margin:0;
    padding:0;
    clear: both;
}
.print-page-container {
    clear: both;
    width:617px;
    margin:0;
    padding:0;
    font-family: 'D-DIN',sans-serif;
    font-size: 12px;
    background:#fff;
    color:#000;

    border-top:1px solid #ff0000;
}
.h1 {
    clear: both;
    font-family: 'D-DIN',sans-serif;
    font-size: 40px;

    border-top:1px solid #ff0000;
}

这是我的HTML

<body>
<div class="print-page-container">
    <div class="h1">Colli ID: #06021</div>
</div>
</body>

还有截图:

Strange margin top

解决方法

Jeej 通过添加:

$tagvs = array(
    'div' => array(0 => array('h' => 0,'n' => 0),1 => array('h' => 0,'n' => 0))
);
$pdf->setHtmlVSpace($tagvs);

TCPD 为 div 添加间距。