找不到 FPDI 模板错误
FPDI Template not found error
我正在尝试使用 FPDI 库将水印应用于现有的 pdf,它包含在我使用 composer 包 "setasign\fpdi-fpdf" 的项目中。
每次我 运行 脚本都会得到 "Template not Found" 异常。
这是代码:
$pdf = new \setasign\Fpdi\Fpdi();
$pdf1 = new \setasign\Fpdi\Fpdi();
$pageCount = $pdf1->setSourceFile($this->getCurrentFile());
$tpl1 = $pdf1->importPage(1);
$pdf2 = new \setasign\Fpdi\Fpdi();
$pdf2->setSourceFile($watermarkPDF);
$tpl2 = $pdf2->importPage(1);
for($pageNo = 1; $pageNo <= $pageCount; $pageNo++) {
$tpl1 = $pdf1->importPage($pageNo);
$size = $pdf1->getTemplateSize($tpl1);
$pdf->setSourceFile($this->getCurrentFile());
if ($size['w'] > $size['h']) {
$pdf->AddPage('L', array($size['w'], $size['h']));
} else {
$pdf->AddPage('P', array($size['w'], $size['h']));
}
$pdf->useTemplate($tpl1, 0, 0, 0);
$pdf->useTemplate($tpl2, 0, 0, 0);
}
给我这个错误的行是“$pdf->useTemplate($tpl1, 0, 0, 0);”。
我该如何解决这个错误?
您只需使用一个 FPDI 实例。当前您正在使用2个实例并尝试在实例B中使用实例A的导入页面。
您的代码应如下所示:
$pdf = new \setasign\Fpdi\Fpdi();
$pdf->setSourceFile($watermarkPDF);
$watermarkTpl = $pdf->importPage(1);
$pageCount = $pdf->setSourceFile($this->getCurrentFile());
for($pageNo = 1; $pageNo <= $pageCount; $pageNo++) {
$tpl = $pdf->importPage($pageNo);
$size = $pdf->getTemplateSize($tpl);
$this->AddPage($size['orientation'], $size);
$pdf->useTemplate($tpl);
$pdf->useTemplate($watermarkTpl);
}
$pdf->Output();
我正在尝试使用 FPDI 库将水印应用于现有的 pdf,它包含在我使用 composer 包 "setasign\fpdi-fpdf" 的项目中。 每次我 运行 脚本都会得到 "Template not Found" 异常。 这是代码:
$pdf = new \setasign\Fpdi\Fpdi();
$pdf1 = new \setasign\Fpdi\Fpdi();
$pageCount = $pdf1->setSourceFile($this->getCurrentFile());
$tpl1 = $pdf1->importPage(1);
$pdf2 = new \setasign\Fpdi\Fpdi();
$pdf2->setSourceFile($watermarkPDF);
$tpl2 = $pdf2->importPage(1);
for($pageNo = 1; $pageNo <= $pageCount; $pageNo++) {
$tpl1 = $pdf1->importPage($pageNo);
$size = $pdf1->getTemplateSize($tpl1);
$pdf->setSourceFile($this->getCurrentFile());
if ($size['w'] > $size['h']) {
$pdf->AddPage('L', array($size['w'], $size['h']));
} else {
$pdf->AddPage('P', array($size['w'], $size['h']));
}
$pdf->useTemplate($tpl1, 0, 0, 0);
$pdf->useTemplate($tpl2, 0, 0, 0);
}
给我这个错误的行是“$pdf->useTemplate($tpl1, 0, 0, 0);”。 我该如何解决这个错误?
您只需使用一个 FPDI 实例。当前您正在使用2个实例并尝试在实例B中使用实例A的导入页面。
您的代码应如下所示:
$pdf = new \setasign\Fpdi\Fpdi();
$pdf->setSourceFile($watermarkPDF);
$watermarkTpl = $pdf->importPage(1);
$pageCount = $pdf->setSourceFile($this->getCurrentFile());
for($pageNo = 1; $pageNo <= $pageCount; $pageNo++) {
$tpl = $pdf->importPage($pageNo);
$size = $pdf->getTemplateSize($tpl);
$this->AddPage($size['orientation'], $size);
$pdf->useTemplate($tpl);
$pdf->useTemplate($watermarkTpl);
}
$pdf->Output();