本篇是针对要在现有pdf文件上写字,加图片这种需求而描述的方法。用到PHP代码,无需配置服务器PHP扩展库环境,因此是简单和方便的。
需要用到三个库(下面三个文件大家可以去GitHub下载也可以网上搜索 另外我也上传了资源)
chines.php是解决中文乱码的 这三个文件放到第三方引用库的地方,修改下引用地址
就是这个语句 require_once('xx/xx/xx') 一定要使用正确地址
chinese.php有个demo
<?php
require('chinese.php');
$pdf=new PDF_Chinese();
$pdf->AddGBFont();//添加GB字体就是中文简体 还有一个Big5 是繁体
$pdf->AddPage();
$pdf->SetFont('GB','',20);
$pdf->Write(10,'测试');
$pdf->Output();
?>
然后需要修改一个文件fpdi下面的一个文件 这里我使用的是1.5.2版本 其他版本大同小异找见对应的文件
if (!class_exists('TCPDF', false)) {
/**
* Class fpdi_bridge
*/
class fpdi_bridge extends PDF_Chinese//这里原先是继承pdf改为PDF_Chinese 因为chinese解决中文乱码 他已经继承了pdf类所以继承他就好了
{
// empty body
}
}
下面是我的demo
<?php
error_reporting (E_ALL);
$file = dirname(__FILE__);
$pdf_file = $file.'/public/pdf/1.pdf';//引入需要添加字体的pdf
require_once('vendor/chinese/chinese.php');//引入chines.php
require_once('vendor/fpdi/fpdi.php');//引入fpdi
$pdf = new FPDI();
$pageCount = $pdf->setSourceFile($pdf_file);
$pdf->AddPage();
$tplIdx = $pdf->importPage($pageCount);
$pdf->useTemplate($tplIdx, 0, 0);
$pdf->AddGBFont();//添加中文字体
$pdf->SetFont('GB');
$pdf->SetXY(30, 150);//定位
//使用iconv()转码
$pdf->Write(10,iconv("utf-8","gb2312","同意开通!"));
$pdf->Output();//这里是输出到浏览器 输出文件在里面添加参数即可$pdf->Output($file.'/demo.pdf', 'F');
这里主要是解决中文乱码的问题 如果是添加图片不需要chines.php文件的。