在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
最近换了个模板,但是pdf一直报错,预览的时候提示未能加载pdf文件,发现是忘了执行命令,重新编辑一下,提醒自己以后有问题要牢记 今天有问题百度的时候百度到自己的文章了,但是不在自己的博客里面,阅读量比我的还多,哈哈哈哈哈哈 文章可以转载,麻烦注明出处哈~ --------------------------------------------------正文分割线-------------------------------------------------------------- 最近接到新的任务,要求把pdf的文档,编辑后发邮件 首先pdf表单提交,需要用到这个东西pdftk,GitHub地址:https://github.com/mikehaertl/php-pdftk 首先用到他需要安装,我的环境是win7,先已到项目的根目录,然后用composer安装 1、 composer require mikehaertl/php-pdftk 安装完了,在项目根目录会多出来这些东西(没有.setting,buildpath啥的应该,这些是我加到编辑器里面自动加上的) 还有一个办法是在GitHub上面直接下载 地址 而且这里面有教程啊 2、在项目根目录新建一个bootstrap.php,里面放上这串代码 <?php use mikehaertl\pdftk\Pdf; // 用数据数组填充表单 $pdf = new Pdf('form.pdf'); $pdf->fillForm([ 'name'=>'西贝小小凤', 'sex' => '女', ]) ->needAppearances() ->saveAs('filled.pdf'); // 从FDF填写表格 data.xfdf文件长啥样呢?看下面的代码 $pdf = new Pdf('form.pdf'); $pdf->fillForm('data.xfdf') ->saveAs('filled.pdf'); // 检查错误 if (!$pdf->saveAs('my.pdf')) { $error = $pdf->getError(); } 然后保存一下,我看这个我看了好长时间没看懂,我这个理解能力也是醉了,最后请教了大佬 这是比较简单的,运行第一个,会自定下载一个filled.pdf文件,内容是你你填写的内容 第二个也是 3、从PHP数组创建XFDF/FDF文件,也就是上面的那个data.xfdf文件 use mikehaertl\pdftk\XfdfFile; use mikehaertl\pdftk\FdfFile; $xfdf = new XfdfFile(['name' => '西贝小小凤','sex' => '女']); $xfdf->saveAs('/path/to/data.xfdf');
然后生成这样的文件 <?xml version="1.0" encoding="UTF-8"?> <xfdf xmlns="http://ns.adobe.com/xfdf/" xml:space="preserve"> <fields> <field name="name"> <value>西贝小小凤</value> </field> <field name="sex"> <value>女</value> </field> </fields> </xfdf>
因为我本地环境有问题,我不能直接保存,我用了一条命令保存的 pdftk a.pdf fill_form data.fdf output b.pdf a.pdf是模板文件 data.fdf是填充数据 b.pdf是填充后保存的数据 我们再做的时候发现这样的一个问题,就是填充完了,但是不显示,需要点击后才显示,看网上说是字体的问题,改为微软雅黑也不可以,求各位大神指教
---------------------------分割线------------------------------------------------ 因为填充的问题,我有换了新的方法,也彻底放弃了上面所有的方法,功亏一篑的感觉真难受, 下面我说一下新的方法,文件下载链接https://files.cnblogs.com/files/xbxxf/fpdm.rar 下载文件,会看到这些文件
linux系统,首先把模板文件用命令执行一下,然后作为模板文件 这一条非常重要,我这次换了个pdf模板,但是忘了执行这个命令,一直报错,我还是搜文档,发现搜到了自己的文章,哈哈哈哈哈哈 pdftk 1.pdf output fixed.pdf
然后执行ex-array.php,会直接打开pdf文件 <?php 然后执行pdf.php,会生成一个新的文件
<?php $aa = file_get_contents('http://localhost/fpdm/ex-array.php');//上面的ex_array.php文件 $myfile = file_put_contents("1122.pdf", $aa)//生成新的填充后的1122.pdf文件 ?>
但是我在框架里面测试的时候把ex_array.php文件的内容放在函数里面,生成新的文件会报错,所以还得用原生的php方法去写, 其实也很简单,我是前台提交数据,然后接收数据后填充pdf, 首先表单提交单pdf.php文件,接受数据后把file_get_contents('http://localhost/fpdm/ex-array.php?name=123&type=233'); 把数据加到url里面,然后ex-array.php接受数据,填充pdf file_put_contents 生成新的pdf,我们获得了填充后的pdf就简单了,之后再跳回方法里面去执行其他的操作 再叨叨一句,说一下pdf表单的设置,对表单右键->属性,设置一下,我用的 迅捷PDF编辑器,那个Adobe的Acrobat挺好用的,就是我没有破解版的,自己找去吧
|
2022-08-16
2022-08-30
2022-07-18
2022-08-18
2022-07-29
请发表评论