超过一页时,如何在tcpdf多单元格中重置页边距?

时间:2019-04-27 23:17:55

标签: tcpdf

我已经使用TCPDF(v6.2.25)了几天,我坚持认为自己很复杂的东西。我的客户需要使用Multicell(在textarea中)在每页上打印一些页边距的信息。例如,在第一页上的页边空白为$pdf-> SetMargins (32, 44.5, 11);,在第二页上的页边空白为$pdf-> SetMargins (12, 27.5, 29);,因为他打印的文档通常有3页以上(正面,背面,正面)...有时他需要以不同的顺序打印边距(背面,正面等),因为他使用的纸张是政府文件,并且需要遵循该顺序并且他不能不写就留下空白行。

我的问题是,如何在每个新页面上重置TCPDF中的边距?

这是我的代码:

// library
require_once($_SERVER['DOCUMENT_ROOT'] . '/pdf/tcpdf.php');

    define('K_CELL_HEIGHT_RATIO', 2);

    $pdf = new TCPDF('P', 'mm', 'usletter', true, 'UTF-8', false);

    // remove
    $pdf->setPrintHeader(false);
    $pdf->setPrintFooter(false);

    // set font
    $pdf->SetFont('times', '', 12);

    // $page is for front or back, this is chosen by my client when he sees the page
    // $line is for the row where the document will start printing, my client chooses the line, the page has only 24 lines where printing is allowed

if($page == 'front'){

    if($line == '1'){ $nline = '44.5'; } 
    if($line == '2'){ $nline = '53'; } 
    ...
    if($line == '24'){ $nline = '240'; };

    // set margins(right, top, left);
    $pdf->SetMargins(32, $nline, 11);

    $pdf->SetAutoPageBreak(TRUE, 48);
} else {

    if($line == '1'){ $nline = '27.5'; } 
    if($line == '2'){ $nline = '36'; } 
    ...
    if($line == '24'){ $nline = '223'; };

    $pdf->SetMargins(12, $nline, 29); 

    $pdf->SetAutoPageBreak(TRUE, 63.5); 
}

    $txt = 'document info.....';
    $pdf->Multicell(171, 181, $txt, 0, 'J', 0, 1, '', '', false, 0, true, false, 0);

    $pdf->Output('document.pdf', 'I');

现在,只有第一页可以识别其他页面中的$page$line,页边距也与第一页相同,$line也与第一页相同页面,我需要随后的页面根据相应的页面将页边距重置为第1行,将顶部的页边距重置为正面或背面。

0 个答案:

没有答案