我尝试制作水印脚本,如果我只在一页上使用pdf,那就很好用了。 但是当我尝试将它与多页pdf文档一起使用时,它只将水印放在第1页。其他页面不可见...抱歉我的英文不好。请帮我。 这是我的代码:
$fullPathToFile = "documents/myfile.pdf";
class PDF extends PDF_Rotate {
var $_tplIdx;
function Header() {
global $fullPathToFile;
//Put the watermark
$this->Image('logo.PNG', 40, 100, 100, 0, 'PNG');
$this->SetFont('Arial', 'B', 50);
$this->SetTextColor(255, 192, 203);
//$this->RotatedText(20, 230, 'Watermark text', 45);
if (is_null($this->_tplIdx)) {
$this->numPages = $this->setSourceFile($fullPathToFile);
$this->_tplIdx = $this->importPage(1);
}
$this->useTemplate($this->_tplIdx, 0, 0, 200);
}
function RotatedText($x, $y, $txt, $angle) {
//Text rotated around its origin
$this->Rotate($angle, $x, $y);
$this->Text($x, $y, $txt);
$this->Rotate(0);
}
}
$pdf = new PDF();
$pdf->AddPage();
$pdf->Image('logo.PNG', 50, 120, 120, 0, 'PNG');
$pdf->Output();
答案 0 :(得分:0)
这是解决方案!:
if($pdf->numPages>1) {
for($i=2;$i<=$pdf->numPages;$i++) {
//$pdf->endPage();
$pdf->_tplIdx = $pdf->importPage($i);
$pdf->AddPage();
}
}
答案 1 :(得分:0)
您可以通过旧的解决方案来执行此操作,但是在这里我正在解释如何使用它。
# Add 2 page
$pdf->AddPage(); // it is required for all .
$tplIdx2 = $pdf->importPage(2);
$pdf->useTemplate($tplIdx2);
$pdf->SetAutoPageBreak(true, 5);
在这里您必须注意,我正在添加将新页面添加到PDF的 $ pdf-> AddPage()代码。添加页面始终排在第一位。这是必需的。
$ pdf-> importPage(Page_number)将页面导入PDF的当前页面。
需要将任何页面导入当前PDF。我尝试了许多解决方案,但缺乏知识,无法使用IstvánMaróti的解决方案。