【问题标题】:fpdi: How to concatenate with backgroundfpdi:如何与背景连接
【发布时间】:2018-10-05 09:42:35
【问题描述】:

我正在尝试查找 setasign/fpdi 代码的示例。

我有一个多页的 pdf 文档。我想创建一个新的 pdf 来导入每个页面并添加一个背景(这个背景是另一个 pdf 文档 - 纵向或横向取决于根 pdf 页面)+一些额外的文本。

我找不到这个问题的正确示例,希望有人可以帮助我解决这个问题。

【问题讨论】:

    标签: fpdi


    【解决方案1】:

    我找到了答案,我会在这里发布。也许有更好的方法... :-)

    $portrait_backgroundpdf = "pdf/background_portrait.pdf";
    $landscape_backgroundpdf = "pdf/background_landscape.pdf";
    $originalpdf = "pdf/original.pdf";
    // First get number of pages + orientations of original pdf
    $temp_pdf = new Fpdi();
    $count = $temp_pdf->setSourceFile($originalpdf);
    $sizes = [];
    for ($pageNo = 1; $pageNo <= $count; $pageNo++) {
        $templateId = $temp_pdf->importPage($pageNo);
        $size = $temp_pdf->getTemplateSize($templateId);
        $sizes[$pageNo] = $size['orientation'];
    }
    // sizes is now an array like this example:
    // [
    //      1 => "P", <-- portrait
    //      2 => "P", <-- portrait
    //      3 => "L", <-- landscape
    //      4 => "L", <-- landscape
    // ]
    
    // Now start the new PDF
    $pdf = new Fpdi();
    foreach($sizes as $page => $size) {
        $pdf->AliasNbPages();
        $pdf->AddPage();
        if ($size == "P") {
            $pdf->setSourceFile($portrait_backgroundpdf);
        } else {
            $pdf->setSourceFile($landscape_backgroundpdf);
        }
        $tplId = $pdf->importPage(1);
        $pdf->useImportedPage($tplId, 0, 0, null);
        $pdf->setSourceFile($pdfurl.$pastepdf);
        $template = $pdf->importPage($page);
        $pdf->useTemplate($template, 10, 30, 180);
        // Do other pdf stuff here per page
    }
    $pdf->Output();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-29
      • 1970-01-01
      • 2022-07-21
      • 2020-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多