首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >编辑现有pdf将导致创建一个新pdf,其中旧数据被新文件覆盖。

编辑现有pdf将导致创建一个新pdf,其中旧数据被新文件覆盖。
EN

Stack Overflow用户
提问于 2014-02-13 06:57:38
回答 1查看 908关注 0票数 2

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

代码语言:javascript
运行
复制
<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 ),在这里,其他已经属于它们的数据将被删除。

提前谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-06 13:11:30

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

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

下面是一个简单的代码示例,说明了上述概念。我已经测试了这个,并得到了预期的输出。

代码语言:javascript
运行
复制
$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");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21747266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档