TCPDF如何保存包含表单填写值的PDF文件到服务器
TCPDF表单提交后保存空白文件解决方案
你遇到的问题核心是:TCPDF->Output('F') 只会输出你服务端初始生成的空白表单模板,本身不包含用户端填写的内容,直接调用该方法存储自然会得到空白文件。你需要补全以下配置和逻辑:
- 调整PDF表单提交配置
生成表单的提交按钮时,要将提交动作设置为上传完整填充后PDF,同时保证所有文本域设置了唯一可识别的name属性,示例代码:// 配置提交按钮,指定提交完整PDF到你的服务端接收接口 $pdf->Button( 'submit_btn', 30, 10, '提交表单', '', [ 'S' => 'SubmitForm', 'F' => true, 'A' => 'https://你的服务端接收接口地址', 'Flags' => ['ExportFormat'] ] ); - 修改服务端存储逻辑
不要调用生成模板时的Output('F')方法存储,改为直接接收前端提交的PDF文件流后写入服务器:// 读取提交的完整PDF内容 $filledPdfContent = file_get_contents('php://input'); // 写入到服务器指定路径 file_put_contents('/你的服务器存储路径/用户提交的表单.pdf', $filledPdfContent); - 如果你不需要提交完整PDF,只想提交表单字段后重新生成带内容的PDF:先接收POST提交的所有表单字段值,调用TCPDF的表单填充方法把值写入模板后,再调用
Output('F')保存即可。
补充校验:生成表单前可调用$pdf->setFormDefaultProp(['fillColor' => [255,255,255], 'strokeColor' => [0,0,0]]);确保表单字段可编辑、可正常提交
内容的提问来源于stack exchange,提问作者Oliver
相关产品推荐
相关产品推荐

