我已经使用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行,将顶部的页边距重置为正面或背面。