从现有的可编辑PDF编辑pdf

时间:2015-11-13 10:54:33

标签: php codeigniter pdf fpdf

我正在研究PHP,Codeignitor。我有一个可编辑的pdf。我想填写pdf中的空白,如名字,姓氏,电子邮件。我在php中使用FPDF和FPDI。首先,我包含fpdf和fpdi文件。     创建一个功能。我的代码如下。因为我创建了FPDI的对象。

$pdf = new FPDI();
$pdf->AddPage();
$path = base_url().'uploads/test.pdf';
$pdf->setSourceFile($path);
// import page 1 
$tplIdx = $this->pdf->importPage(1);
//use the imported page and place it at point 0,0; calculate width and height
//automaticallay and ajust the page size to the size of the imported page 
$this->pdf->useTemplate($tplIdx, 0, 0, 0, 0, true);
// now write some text above the imported page
$this->pdf->SetFont('Arial', '', '13');
$this->pdf->SetTextColor(0, 0, 0);
//set position in pdf document
$this->pdf->SetXY(20, 20);
//first parameter defines the line height
$this->pdf->Write(0, 'gift code');
//force the browser to download the output
$this->pdf->Output('gift_coupon_generated.pdf', 'D');

请帮帮我。

2 个答案:

答案 0 :(得分:0)

FPDI无法处理PDF表单。表单字段在导入过程中丢失,如FAQ

中所述
  

由于FPDI不会修改PDF文档,而是将其逐页导入到可以与FPDF重复使用的结构中,因此页面内容流之外的所有内容(如表单字段注释)都会丢失。

无论如何,您仍然可以在导入的页面上方放置文本。这只是解决字段坐标的手动步骤。

答案 1 :(得分:0)

您可以先使用ghost脚本展平文件。然后,您可以使用fpdi导入它。工作流程的另一个步骤,但保留了质量。

gs -dSAFER -dBATCH -dNOPAUSE -dNOCACHE -sDEVICE=pdfwrite \
-sColorConversionStrategy=/LeaveColorUnchanged  \
-dAutoFilterColorImages=true \
-dAutoFilterGrayImages=true \
-dDownsampleMonoImages=true \
-dDownsampleGrayImages=true \
-dDownsampleColorImages=true \
-sOutputFile=document_flat.pdf document_original.pdf