使用composer安装fpdf
c
> composer require setasign/fpdf
简单创建一个pdf文件并输出下载
php
//fpdf版本:"setasign/fpdf": "^1.8",
// 创建PDF实例
$pdf = new \FPDF();
// 设置文档信息
$pdf->SetAuthor('Your Name');
$pdf->SetTitle('Your PDF Title');
// 开始新页面
$pdf->AddPage();
// 设置字体
$pdf->SetFont('Arial', 'B', 16);
// 添加文本
$pdf->Cell(40, 10, 'Hello World!');
$pdf->Output('document.pdf', 'D');
导入pdf出现报错
This PDF document probably uses a compression technique which is not supported by the free parser shipped with FPDI. (See https://www.setasign.com/fpdi-pdf-parser for more details)
解决:使用AcrobatDC导出4.0版本(最低版本)的pdf
php
$page_count = $pdf->setSourceFile('temp_pdf_test2.pdf');
如何基于现有的pdf进行编辑
php
use \setasign\Fpdi\Fpdi;
$pdf = new FPDI(); //实例化
$pdf->setSourceFile('temp_pdf_test2.pdf'); //设置源文件
$pdf->AddPage(); //添加一个页面(本身pdf是空的,需要加一个空白页来存储源文件的页面)
$tpl = $pdf->importPage(1); //获取源文件模板页面id
$pdf->useTemplate($tpl, 0, 0); //将模板添加到pdf实例中
$pdf->AddGBFont("GB","");//添加中文字体,待使用
$pdf->SetFont('GB','',13); //使用字体
$pdf->SetXY(48,84); //定位
$pdf->Write(12,iconv("utf-8","gb2312","xxxx")); //渲染文字
解决中文乱码的问题
如果只使用fpdf(读),就直接引用这个里面的chinese.php
即可
如果还需要写,就需要改写fpdi源码
将fpdi下的FpdfTpl.php改写为:
php
namespace setasign\Fpdi;
require_once(dirname(__FILE__) . './../../fpdf_chinese/chinese.php');
/**
* Class FpdfTpl
* This class adds a templating feature to FPDF.
*/
class FpdfTpl extends \PDF_Chinese
{
use FpdfTplTrait;
}
其他
链接: 更换字体的问题链接