首页 > 解决方案 > 为什么 TCPDF 在我的 PDF 中添加奇怪的顶部空间?

问题描述

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

作为记录:

我的 PDF 设置:

$pdf = new TCPDF($config['orientation'], 'pt', $pageLayout, true, 'UTF-8', false);
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
$pdf->SetMargins(0, 0, 0,true);
$pdf->setCellPaddings(0,0,0,0);
$pdf->setCellMargins(0,0,0,0);
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
$pdf->SetPrintHeader(false);
$pdf->SetPrintFooter(false);
$pdf->AddPage();
$pdf->writeHTML($html, false, false, false, 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>

和截图: 奇怪的边缘顶部

标签: phphtmlcsstcpdf

解决方案


Jeej 通过添加以下内容来修复它:

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

TCPDF 为 div 添加间距。


推荐阅读