php 根据PDF模板写入数据
- 其他
- 时间: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的日志
没有了