首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FPDI模板未找到错误

FPDI模板未找到错误
EN

Stack Overflow用户
提问于 2018-05-29 11:18:00
回答 1查看 295关注 0票数 0

我试图使用FPDI库将水印应用到现有的pdf中,它包含在我使用composer包“setasign fpdf”的项目中。每次运行脚本时,我都会得到“模板未找到”异常。以下是代码:

代码语言:javascript
复制
    $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);“。如何解决这个错误?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-29 12:31:41

您只需要使用一个FPDI实例。目前,您正在使用两个实例,并尝试使用实例A的导入页面。

您的代码应该是这样的:

代码语言:javascript
复制
$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();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50583050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档