php 根据PDF模板写入数据

  • 作者:admin
  • 其他
  • 时间:2024-11-10 23:43:02
  • 354人已阅读

有一个需求需要根据数据库中数据写入到PDF中,其中后端是thinkphp5.0

1、前置要求pdf模板中需要有表单,需要知道表单的name,如果不知道对应填写的字段,需要安装 pdftk-server 。

pdftk-server安装完成后使用命令,将 44.pdf对应的表单数据导出到fields_44.txt中

pdftk 44.pdf dump_data_fields > fields_44.txt 

正确的字段数据如下

---
FieldType: Button
FieldName: CheckBox6
FieldFlags: 0
FieldJustification: Left
FieldStateOption: Off
FieldStateOption: Yes
---
FieldType: Text
FieldName: Text9
FieldFlags: 0
FieldJustification: Left
---
FieldType: Signature
FieldName: Signature10
FieldFlags: 0
FieldJustification: Left
---
FieldType: Text
FieldName: Text2
FieldFlags: 0
FieldValue: 1
FieldJustification: Left

2、安装mikehaertl\pdftk扩展

composer require mikehaertl/php-pdftk

3、填充数据

use mikehaertl\pdftk\Pdf;


public function test(){
                $formFields = [
                    'Textfield'=>$data_result['company_name'],
                    'registration number'=>$data_result['company_number'],
                    'Text2'=>$data_result['dongshi'],
                    'Text3'=>date('d/m/Y'),
                ];
                $pdfTmp = new Pdf($this->temp_annex_3);
                $outputFile = $this->file_annex_3.$data_result['company_name'].'.pdf';
                $res = $pdfTmp->fillForm($formFields)->needAppearances()->saveAs($outputFile);

}

其中 $formFields  的键为表单的名称 值为需要填充的值

 注意:输出的文件名需要做处理,特殊字符无法保存成功,pdf中必须要有表单数据,如果不清楚需要安装pdftk-server 使用dump_data_fields 命令将表单数据输出,找出对应的表单字段写入

上一篇:定时清除thinkphp的日志

没有了

Top