【问题标题】:FPDI Template not found errorFPDI 模板未找到错误
【发布时间】:2018-11-08 00:46:03
【问题描述】:

我正在尝试使用 FPDI 库将水印应用于现有 pdf,该库使用 composer 包“setasign\fpdi-fpdf”包含在我的项目中。 每次我运行脚本时,我都会收到“找不到模板”异常。 代码如下:

    $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);”。 我该如何解决这个错误?

【问题讨论】:

    标签: php pdf pdf-generation fpdf fpdi


    【解决方案1】:

    您只需要使用一个 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();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-26
      • 2015-04-12
      • 1970-01-01
      相关资源
      最近更新 更多