客户有一个PDF的表单,需要在线填写,打印。
尝试过将PDF转成word去操作,但是转换成word之后,PDF的表单格式乱七八糟的没办法修改。
找到一个老外的PHP类[SetaPDF-FormFiller],但是需要180多欧的授权费用
最终找到了 php pdftk,pdftk 需要依赖PDFtk来运行,PDFtk是运行在服务端的一个命令行工具
具体实现起来很简单,

    $pdf  = new Pdf('tpl.pdf');
    $res  = $pdf->fillForm([
        'Account' => 'Jason Chen'
    ])->needAppearances()->saveAs('save.pdf');

    if (!$res) {
        echo $pdf->getError();
    }

下面记录一下安装过程。
CENTOS服务器 6 和 7 有一些区别
CENTOS6

sudo yum install libgcj
sudo rpm -i pdftk-2.02-1.*.rpm

CENTOS7
由于CENTOS7的yum库中不再支持libgcj
找到了一个老外的
x86_64

yum localinstall https://www.linuxglobal.com/static/blog/pdftk-2.02-1.el7.x86_64.rpm

i686

yum localinstall https://www.linuxglobal.com/static/blog/pdftk-2.02-1.el7.i686.rpm

最后在项目中引入

composer require mikehaertl/php-pdftk