tmw / fpdm
使用FPDM类填充PDF表单,即填充PDF文件的字段。它是由FPDF库作者Olivier编写的。
Requires
- php: >=5.3.0
This package is auto-updated.
Last update: 2024-09-08 01:30:51 UTC
README
包
FPDM类允许填充PDF表单,即填充PDF文件的字段。它是由FPDF库作者Olivier Plathey开发的,并已作为Skript 93发布。
我创建这个仓库的原因如下
- 通过 composer,通过classmaps自动加载当前的FPDM源代码
- 修复错误
- 改进(对原始代码库的更改前面有
//FIX: change description
标识,后面有//ENDFIX
标识)- 新增:支持复选框(默认禁用,使用
$pdf->useCheckboxParser = true;
激活) 0375dd9 v2.9.2
- 新增:支持复选框(默认禁用,使用
版本
基于fpdf.org提供的2.9版本(2017-05-11)。
注意:如果您发现新版本已在fpdf.org上托管,请随时通过 简短留言,以确保我不会错过。
此仓库仅包含为表单填写(FPDM)编写的独立php类。如果您正在寻找包含主FPDF库的仓库,请访问 github.com/Setasign/FPDF。
再次感谢Olivier Plathey为我们提供易于使用的表单填写脚本以及他的FPDF库!
安装
Composer
将FPDM添加到您的应用程序中的首选方式是通过composer安装
composer require tmw/fpdm
使用
Composer(自动加载)
通过将以下内容添加到您的代码中来自动加载FPDM类文件
require 'vendor/autoload.php';
独立脚本(遗留版本)
通过调用以下内容加载顶层入口点
require_once '/abolute/path/to/fpdm.php';
或
require_once './relative/path/to/fpdm.php';
对原始代码的修改
classmaps与psr-4(或:遗留代码与现代框架(如Laravel))
使用命名空间和遵循PSR-4:自动加载器自动加载类是一个好的选择。特别是,使用供应商命名空间可以减少命名冲突的风险。
然而,FPDM 已经存在很长时间了,因此被用于许多使用非命名空间代码的项目(我将它们称为旧项目)。旧项目通过调用 $mypdf = new FPDM()
来实例化 FPDM,这是未经限定的,默认使用非命名空间的全局命名空间。
使用 psr-4 将会自动将类加载到子命名空间(例如 \codeshell\fpdm\FPDM),而不是全局命名空间(例如 \FPDM),从而破坏任何旧代码,无论它是否使用了 new FPDM()
或 new \FPDM()
。
类映射是一种折衷方案。 它允许利用 composer 的自动加载和依赖管理。然而,类被添加到全局命名空间。旧项目可以在不重构代码的情况下切换到 composer。 较新的项目(例如使用如 laravel 等框架的项目,这些框架严重依赖命名空间)可以通过使用完全限定的名称(在这种情况下是类名前缀为全局前缀操作符,如 new \FPDM()
)来仍然使用旧类。
这就是我选择使用类映射而不是 psr-4 的原因。请告诉我是否有类映射在现代框架中不起作用的情况。
复选框
我添加了对复选框的支持。这个特性没有被充分测试,但对我来说它是有效的。可以通过将 useCheckboxParser = true
启用
<?php $fields = array( 'my_checkbox' => 'anything that evaluates to true.', // checkbox will be checked; Careful, that includes ANY non-empty string (even "no" or "unchecked") 'another_checkbox' => false, // checkbox will be UNchecked; empty string or 0 work as well ); $pdf = new FPDM('template.pdf'); $pdf->useCheckboxParser = true; // Checkbox parsing is ignored (default FPDM behaviour) unless enabled with this setting $pdf->Load($fields, true); $pdf->Merge(); $pdf->Output();
您不需要找出复选框状态的技术名称。它们在解析过程中被检索。
原始信息页面
以下所有内容均来自 http://www.fpdf.org/en/script/script93.php .
信息
作者:Olivier
许可证:FPDF
描述
此脚本允许将数据合并到 PDF 表单中。给定一个包含文本字段的模板 PDF,可以通过两种不同的方式注入值
- 从 PHP 数组
- 从 FDF 文件
生成的文档由 Output() 方法产生,它的工作方式与 FPDF 相同。
注意:如果您的模板 PDF 与此脚本不兼容,您可以使用以下方式使用 PDFtk 处理它
pdftk modele.pdf output modele2.pdf
然后再次使用 modele2.pdf 尝试。
示例
此示例演示了如何从数组中合并数据
<?php /*************************** Sample using a PHP array ****************************/ $fields = array( 'name' => 'My name', 'address' => 'My address', 'city' => 'My city', 'phone' => 'My phone number' ); $pdf = new FPDM('template.pdf'); $pdf->Load($fields, false); // second parameter: false if field values are in ISO-8859-1, true if UTF-8 $pdf->Merge(); $pdf->Output(); ?>
查看结果 这里.