我在编辑现有的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有一些类似这样的数据(这是我们组织的员工规则..........这是我们组织的员工规则......这是员工我们组织的规则......这是我们组织的员工规则......这是我们组织的员工规则)
在此我想在第一行添加一个Employee Name但是在编辑之后它会生成这样的新pdf(Emp Name:Sanjay Singh) 其他已经存在的数据将被删除。
提前致谢!
答案 0 :(得分:0)
您的问题是您以错误的顺序调用FPDI的方法。以下是要采取的步骤:
以下是说明上述概念的简要代码示例。我测试了这个并得到了预期的输出。
$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");