2

我在编辑现有的 pdf 时遇到问题。在这里,我有一个 pdf,我只想在 pdf 的每一页的第一行添加一个员工姓名。但是当我尝试使用 fpdf 和 fpdi 执行此操作时,它将使用员工姓名保存新的 pdf,并且所有其他数据都已从 pdf 中删除。这是我用于编辑和保存 pdf 的代码。

<code>
<?php
define('FPDF_FONTPATH','font/');
require_once('fpdf.php');
require_once('fpdi.php');

$pdf = new FPDI();
// add a page
$pdf->AddPage();
// set the sourcefile
$pagecount = $pdf->setSourceFile('upload/linebreak.pdf');

// import page 1
$tplidx = $pdf->importPage(1);
for ($i = 1; $i < $pagecount; $i++) { 
              $tplidx = $pdf->ImportPage($i); 


                     $pdf->useTemplate($tplidx, 10, 10, 200);
                     $pdf->AddPage();

                     $pdf->SetFont('Arial');
                     $pdf->SetTextColor(0,0,0);
                     $pdf->SetFontSize(8);

                     if ($i>=1) {
                        //$pdf->SetXY(50, 124);
                        $pdf->Write(1, "Emp Name : Sanjay Singh");
                     }

                }

$pdf->Output("upload/new_linebreak_pdf.pdf", "F");
?>
<code>

我的 linebreak.pdf 有类似这样的数据(这是我们组织的员工规则............这是我们组织的员工规则......这是我们组织的员工规则组织.....这是我们组织的员工规则....这是我们组织的员工规则)

在这一点上,我想在第一行添加一个员工姓名,但在编辑后它将生成像这样的新 pdf (Emp Name : Sanjay Singh) 其他已经是他们的数据将被删除。

提前致谢 !

4

1 回答 1

0

您的问题是您以错误的顺序调用 FPDI 的方法。以下是要采取的步骤:

  1. 导入要修改的页面,获取模板
  2. 向文档添加新的空白页
  3. 将模板加载到该文档中
  4. 向该文档写入附加内容

这是说明上述概念的简短代码示例。我已经对此进行了测试并获得了预期的输出。

$pdf = new FPDI();
$pageCount = $pdf->setSourceFile('file.pdf');

//  Iterate through every page
for( $pageNo=1; $pageNo<=$pageCount; $pageNo++ )
{
    //  Import page
    $templateId = $pdf->importPage($pageNo);
    $pdf->getTemplateSize($templateId);
    $pdf->addPage('P');
    $pdf->useTemplate($templateId);

    //  Modify page
    $pdf->SetFont('Arial');
    $pdf->SetTextColor(0,0,0);
    $pdf->SetFontSize(8);
    $pdf->Text(50,124,"Emp Name : Sanjay Singh");
}

$pdf->Output("upload/new_linebreak_pdf.pdf", "F");
于 2015-05-06T13:11:30.353 回答