我正面临一个问题,同时编辑现有的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有这样的数据(这是我们organization..........This的雇员规则,organization......This是我们的雇员规则,organization.....This是员工规则,organization....This是组织的雇员规则)
在这一点上,我想在第一行中添加一个雇员姓名,但是在编辑之后,它将生成像这样的新pdf (Emp名称: Sanjay ),在这里,其他已经属于它们的数据将被删除。
提前谢谢!
发布于 2015-05-06 13:11:30
您的问题是您正在以错误的顺序调用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");
https://stackoverflow.com/questions/21747266
复制相似问题