php用FPDI合并pdf文件 证明FPDI真的不行!
Posted 最喜欢《暗号》
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php用FPDI合并pdf文件 证明FPDI真的不行!相关的知识,希望对你有一定的参考价值。
首先我要数一下我下载的是2个库
目录结构,我直接放在根目录下了。
第一个:TCPDF
这个TCPDF上网有直接下载的地址,我用的是tp3.2框架,TCPDF给我手写了一个pdf出来很棒!!
第二个:FPDI,下面是FPDI合并pdf的代码
namespace Qwadmin\\Controller;
//导入TCPDF类库
use TCPDF;
require_once('tcpdf/config/lang/eng.php');
require_once('tcpdf/tcpdf.php');
//导入FPDI类库,
//这里我遇到很多问题只有这样写才不会报错说找不到setasign\\Fpdi。
//然后下面才可以实例化fpdi类(我不知道你们还有其他办法么我是这么写的)
use setasign\\Fpdi;
use setasign\\Fpdi\\PdfReader;
require_once ('Fpdi/autoload.php');
class DirectorsController extends ComController
《===你的代码===》
public function hbpdf($id='')
$address = M('filesaddress','qw_')->where(array('conferenceid'=>$id))->select();
// foreach ($address as $k=>$v)
// $path=$path.$v['address'].',';
//
// exec("python D:\\python\\hbpdf\\Include\\hbpdf.py $path",$out,$res);
// print_r($out);
忽略注释部分。是我调用python代码去实现PDF合并,用的是PYPDF2类库去完成
foreach ($address as $k=>$v)
$pdf_road_datas[$k]=$v['address'];
$pdf = new Fpdi\\Tcpdf\\Fpdi();=》这里就是坑了,在实例化的时候我只能这样写才对(我不知道你们写是什么情况)
foreach ($pdf_road_datas as $k=>$v)
$page_count = $pdf->setSourceFile($v);
重点这里!!!我写的时候他报错说没有调用setSourceFile这个类,但是我CTRL追代码是可以找到的,巨坑!!!!
var_dump($page_count);die();
for ($pageNo = 1; $pageNo <= $page_count; $pageNo++)
// 一页一页的读取PDF,添加到新的PDF
$templateId = $pdf->importPage($pageNo);
这个importPage也是坑,直接说找不到 读书器id() ??文档也没有说读书器是什么id啊
$size = $pdf->getTemplateSize($templateId);
$pdf->AddPage($size['orientation'], $size);
$pdf->useTemplate($templateId);
$pdf->Close();
$pdf->Output('777.pdf','I');
这里是setSourceFile报错。
然后加var_dump($page_count);die()就告诉我是5,也就是说我调用到setSourceFile这个方法的了。
上面说我没调用到然后又有结果 什么傻逼代码!!!
下面就不谈了。总结一下 FPDI就是垃圾!
以上是关于php用FPDI合并pdf文件 证明FPDI真的不行!的主要内容,如果未能解决你的问题,请参考以下文章