php fpdf使用记录

使用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;
}

其他

链接: 更换字体的问题链接

相关推荐
BingoGo18 小时前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack18 小时前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
JaguarJack2 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo2 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
JaguarJack3 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·php·laravel
郑州光合科技余经理3 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
feifeigo1233 天前
matlab画图工具
开发语言·matlab
dustcell.3 天前
haproxy七层代理
java·开发语言·前端
norlan_jame3 天前
C-PHY与D-PHY差异
c语言·开发语言
多恩Stone3 天前
【C++入门扫盲1】C++ 与 Python:类型、编译器/解释器与 CPU 的关系
开发语言·c++·人工智能·python·算法·3d·aigc