讲师中心 微信公众号
AI工具推荐 视频效率加速

PHP怎么生成PDF文件_实用库与生成方法介绍【介绍】

冬浩姑娘_5577

冬浩姑娘_5577

发布时间:2026-02-19 19:29:02

|

1170人浏览过

|

来源于php中文网

原创

TCPDF最快上手是直接writeHTML写HTML转PDF,支持内联CSS和基础标签;dompdf对复杂HTML兼容更好但内存占用高;FPDI用于在现有PDF模板上叠加内容;中文字体需手动配置,推荐Noto Sans CJK。

php怎么生成pdf文件_实用库与生成方法介绍【介绍】

用 tcpdf 生成基础 PDF 最快上手

直接写 HTML 内容转 PDF 是最常见需求,tcpdf 支持内联 CSS 和基本标签(如 <h1>、<table>),不用手动算坐标。安装后只需几行代码:

require_once('tcpdf/tcpdf.php');
$pdf = new TCPDF();
$pdf->AddPage();
$pdf->writeHTML('<h2>订单详情</h2><p>编号:#ORD-2024-001</p>');
$pdf->Output('order.pdf', 'I');

注意:Output() 第二个参数决定行为:'I' 直接浏览器打开,'D' 强制下载,'F' 保存到服务器路径。别漏掉 AddPage(),否则内容不显示。

dompdf 渲染复杂 HTML 更稳,但内存占用高

如果你的 PDF 源是现成的 HTML 页面(含 Bootstrap 或 Flex 布局),dompdf 兼容性更好。但它对 CSS 支持有限——position: fixed、transform 会失效,@media print 也不生效。

典型用法:

立即学习“PHP免费学习笔记(深入)”;

use Dompdf\Dompdf;
$dompdf = new Dompdf();
$dompdf->loadHtml('<style>body{font-size:14px;}</style><div>Hello</div>');
$dompdf->setPaper('A4', 'portrait');
$dompdf->render();
$dompdf->stream('hello.pdf');

关键点:setPaper() 必须在 render() 前调用;大文件容易触发 Allowed memory size exhausted,建议用 ini_set('memory_limit', '512M') 临时放宽。

btpanel phpsite 宝塔面板PHP网站
btpanel phpsite 宝塔面板PHP网站

宝塔面板 PHP 网站管理:站点创建、删除、启停、PHP 版本切换、域名管理、SSL证书管理、伪静态管理、数据库管理

下载

需要填表单或合并已有 PDF?选 setasign/fpdi

fpdi 不是独立生成库,而是让 tcpdf 或 fpdf 能导入现有 PDF 并在其上叠加内容,适合「套打」场景(比如在预设模板上填客户姓名、金额)。

步骤分三步:

  • 用 FPDI 实例加载模板 PDF:$pdf->setSourceFile('template.pdf')
  • 用 importPage() 获取某页句柄
  • 用 useTemplate() 将其作为背景,再用 writeHTML() 或 Text() 叠加文字

注意:fpdi 仅支持 PDF 1.4–1.7,若模板是 Acrobat Pro 导出的 PDF/X-4,会报错 Unable to find object,需先用 Ghostscript 降级:gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -o template_v14.pdf template.pdf

中文乱码?字体配置是唯一解

所有库默认不带中文字体,直接输出中文会变方框或空白。tcpdf 需手动添加字体文件(如 simhei.php + simhei.ttf),并用 addTTFfont() 注册;dompdf 则要改配置:Dompdf\Options::set('defaultFont', 'sans-serif') 并确保系统有对应字体(Linux 常缺 fonts-dejavu 包)。

更省事的做法:统一用 UTF-8 编码的 Noto Sans CJK(Google 开源),它覆盖简繁日韩,且 dompdf 0.8.6+ 内置支持,只需在 HTML 中声明:<style>body{font-family:"Noto Sans CJK SC";}</style>。

生成 PDF 看似简单,但中文字体、分页断行、表格跨页、大图缩放这些细节,几乎每个项目都会卡住一两天——别指望“自动适配”,得逐项测。

热门AI工具

更多
Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

相关专题

更多
bootstrap框架介绍
bootstrap框架介绍

本专题整合了bootstrap框架相关介绍,阅读专题下面的文章了解更多详细内容。

725

2026.03.18

bootstrap安装教程
bootstrap安装教程

本专题整合了bootstrap安装相关教程,阅读专题下面的文章了解更多详细操作教程。

199

2026.03.18

python中print函数的用法
python中print函数的用法

python中print函数的语法是“print(value1, value2, ..., sep=' ', end=' ', file=sys.stdout, flush=False)”。本专题为大家提供print相关的文章、下载、课程内容,供大家免费下载体验。

2940

2023.09.27

python print用法与作用
python print用法与作用

本专题整合了python print的用法、作用、函数功能相关内容,阅读专题下面的文章了解更多详细教程。

249

2026.02.03

CSS position定位有几种方式
CSS position定位有几种方式

有4种,分别是静态定位、相对定位、绝对定位和固定定位。更多关于CSS position定位有几种方式的内容,可以访问下面的文章。

352

2023.11.23

flex教程
flex教程

php中文网为大家带来了flex教程合集,Flex是采用Flex布局的元素,称为Flex容器(flex container),简称"容器",它的所有子元素自动成为容器成员,有三个核心概念: flex项,需要布局的元素;flex容器,其包含flex项;排列方向,这决定了flex项的布局方向。php中文网还为大家带来flex的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

10177

2023.06.14

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

4150

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

3513

2023.06.29

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

0

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
墨刀帮助中心
墨刀帮助中心

共0课时 | 0人学习

MyEclipse学习中心
MyEclipse学习中心

共0课时 | 0人学习

Apache Subversion 官方手册
Apache Subversion 官方手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn