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

PHP如何生成PDF文档_PHP生成PDF文档方法【输出】

轻雪酱_7340

轻雪酱_7340

发布时间:2026-04-08 19:30:16

|

752人浏览过

|

来源于php中文网

原创

PHP生成PDF需依场景选方案:TCPDF纯PHP但CSS支持弱;Dompdf兼容性好但不执行JS;wkhtmltopdf效果最佳但需系统权限。稳定复现需多环境测试。

php如何生成pdf文档_php生成pdf文档方法【输出】

PHP 本身不内置 PDF 生产能力,必须依赖扩展或第三方库;直接调用 exec() 调用外部工具(如 wkhtmltopdf)虽可行,但存在安全与部署风险,不推荐生产环境盲用。

用 TCPDF 生成基础 PDF(适合纯 PHP、无扩展权限场景)

TCPDF 是纯 PHP 实现的库,无需额外扩展,适合共享主机或无法安装 ext-imagick/ext-gd 的环境。但它对 CSS 支持有限,float、flex、现代字体子集几乎不支持。

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

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

下载
  • 下载最新版 TCPDF(v6.6+),解压后只保留 tcpdf.php 和 config/、fonts/ 目录即可
  • 中文需提前复制并注册字体:把 simhei.ttf 放进 fonts/,再用 $pdf->addTTFfont('fonts/simhei.ttf', 'TrueTypeUnicode', '', 32)
  • 避免用 writeHTML() 渲染复杂表格——单元格跨行、边框合并容易错位,改用 Cell() 或 MultiCell() 手动布局更稳
  • 生成大文件(>10MB)时注意 memory_limit 和 max_execution_time,TCPDF 内存占用是原始 HTML 的 3–5 倍

用 Dompdf 渲染 HTML 为 PDF(开发体验好,但内存敏感)

Dompdf 对 HTML/CSS 兼容性优于 TCPDF,支持多数 Bootstrap 类和内联样式,适合从已有页面导出 PDF。但它基于 PHP 解析渲染,不是真正浏览器引擎,@media print 不触发,position: fixed 仅在页眉页脚中有效。

  • 务必使用 Composer 安装:composer require dompdf/dompdf,手动引入易漏依赖(如 phenx/php-font-lib)
  • 默认不启用远程图片加载,若 HTML 含 <img src="https://...>%EF%BC%8C%E9%9C%80%E6%98%BE%E5%BC%8F%E8%AE%BE%E7%BD%AE%EF%BC%9A%24dompdf->set_option('isRemoteEnabled',%20true)
  • %0A
  • %E4%B8%AD%E6%96%87%E5%AD%97%E4%BD%93%E9%9C%80%E9%80%9A%E8%BF%87%20load_font.php%20%E5%B7%A5%E5%85%B7%E7%94%9F%E6%88%90%20PHP%20%E5%AD%97%E4%BD%93%E6%8F%8F%E8%BF%B0%E6%96%87%E4%BB%B6%EF%BC%8C%E5%B9%B6%E6%94%BE%E5%85%A5%20lib/fonts/%EF%BC%9B%E4%B8%8D%E8%83%BD%E7%9B%B4%E6%8E%A5%E4%B8%A2%20.ttf%20%E8%BF%9B%E5%8E%BB%E5%B0%B1%E7%94%A8
  • %0A
  • %E7%94%9F%E6%88%90%E5%90%AB%20JS%20%E5%8A%A8%E6%80%81%E5%86%85%E5%AE%B9%E7%9A%84%E9%A1%B5%E9%9D%A2%E4%BC%9A%E5%A4%B1%E8%B4%A5%E2%80%94%E2%80%94Dompdf%20%E4%B8%8D%E6%89%A7%E8%A1%8C%20JavaScript%EF%BC%8C%E6%89%80%E6%9C%89%E6%95%B0%E6%8D%AE%E5%BF%85%E9%A1%BB%E6%9C%8D%E5%8A%A1%E7%AB%AF%E9%A2%84%E6%B8%B2%E6%9F%93%E5%AE%8C%E6%88%90
  • %0A
%0A%0A

%E7%94%A8%20wkhtmltopdf%20+%20shell_exec%EF%BC%88%E9%AB%98%E6%80%A7%E8%83%BD%EF%BC%8C%E4%BD%86%E9%9C%80%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%9D%83%E9%99%90%EF%BC%89

%0A

%E8%BF%99%E6%98%AF%E7%9B%AE%E5%89%8D%E6%9C%80%E6%8E%A5%E8%BF%91%E7%9C%9F%E5%AE%9E%E6%B5%8F%E8%A7%88%E5%99%A8%E6%B8%B2%E6%9F%93%E6%95%88%E6%9E%9C%E7%9A%84%E6%96%B9%E6%A1%88%EF%BC%8C%E6%94%AF%E6%8C%81%E5%AE%8C%E6%95%B4%20CSS3%E3%80%81@media%E3%80%81SVG%E3%80%81%E7%94%9A%E8%87%B3%E9%83%A8%E5%88%86%20Canvas%EF%BC%88%E9%9C%80%E5%8A%A0%20--enable-local-file-access%EF%BC%89%E3%80%82%E4%BD%86%E5%BF%85%E9%A1%BB%E7%A1%AE%E8%AE%A4%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%85%81%E8%AE%B8%E6%89%A7%E8%A1%8C%E5%A4%96%E9%83%A8%E5%91%BD%E4%BB%A4%E4%B8%94%E4%BA%8C%E8%BF%9B%E5%88%B6%E8%B7%AF%E5%BE%84%E5%8F%AF%E4%BF%A1%E3%80%82

%E7%AB%8B%E5%8D%B3%E5%AD%A6%E4%B9%A0%E2%80%9CPHP免费学习笔记(深入)”;

  • 检查是否可用:shell_exec('wkhtmltopdf --version 2>&1'),返回空或报错说明未安装或被禁用(如 PHP disable_functions 含 exec)
  • 不要拼接用户输入进命令行!用 escapeshellarg() 处理 HTML 文件路径和输出路径,例如:escapeshellarg('/tmp/input.html')
  • 中文乱码常见于未指定字体路径:--outline-depth 3 --font-family "SimSun" --enable-local-file-access
  • 超时问题多因 HTML 中含未响应的外部资源(如监控 JS、统计像素),建议导出前先用 file_get_contents() 获取 HTML 字符串,剔除 <script></script> 和非必要 <link>

真正难的不是“怎么生成”,而是“怎么让生成的 PDF 在不同环境里稳定复现”——字体嵌入、页面尺寸、分页断点、页眉页脚重叠,这些细节在测试机上没问题,一上生产就偏移两像素。别省那几分钟,每次上线前至少用三台不同系统(Linux/macOS/Windows)跑一遍 PDF 样本比对。

相关文章

极轻PDF
极轻PDF

专业的在线PDF工具,支持PDF编辑、转换、合并、压缩等多种功能,操作简单,处理高效,满足日常办公与学习中的PDF处理需求。

下载

相关标签:

php

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek

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

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

二狗PPT
二狗PPT Hot

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

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

花生AI
花生AI Hot

一款AI视频创作工具,主要用于B站推出的AI视频创作工具,适合需要提升相关任务效率的用户。

豆包大模型

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

WorkBuddy

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

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

12164

2023.09.01

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

6961

2023.10.11

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

2215

2023.10.11

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

4428

2023.10.23

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

5154

2023.10.23

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

4051

2023.11.03

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

5857

2023.11.09

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

4582

2023.11.13

Docker Desktop怎么设置端口映射
Docker Desktop怎么设置端口映射

本专题聚焦Docker Desktop容器端口映射与访问配置,整理从创建容器、设置端口绑定到验证本地服务访问的操作流程。针对端口被占用、映射配置错误、容器服务无法访问等情况,也提供相应的检查方向,方便用户完成端口配置。

0

2026.11.03

热门下载

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

精品课程

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

共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