如何使用 Dompdf:从 HTML 轻松转换 PDF 的免费开源工具
【免费下载链接】dompdf HTML to PDF converter for PHP 项目地址: https://gitcode.com/gh_mirrors/do/dompdf
Dompdf 是一款强大的 PHP 开源库,能够将 HTML 内容快速转换为高质量的 PDF 文件。作为 GitHub 加速计划中的重要项目,它为开发者提供了免费、可靠的 HTML 转 PDF 解决方案,特别适合需要在 PHP 应用中生成报告、发票或文档的场景。
📋 准备工作:安装 Dompdf 的两种简单方法
方法一:使用 Composer 一键安装
最推荐的安装方式是通过 Composer,这是 PHP 的依赖管理工具。在项目根目录执行以下命令:
composer require dompdf/dompdf
这条命令会自动下载最新版本的 Dompdf 及其依赖包,所有文件将保存在 vendor/dompdf/dompdf/ 目录中。
方法二:手动下载源码
如果你没有使用 Composer,可以从项目仓库获取源码:
git clone https://gitcode.com/gh_mirrors/do/dompdf
下载后,需要手动引入核心文件 src/Dompdf.php 到你的项目中。
🚀 快速上手:3 步实现 HTML 转 PDF
第 1 步:创建基本 PHP 脚本
新建一个 PHP 文件(例如 html-to-pdf.php),首先引入 Dompdf 类并初始化:
require_once 'vendor/autoload.php';
use Dompdf\Dompdf;
// 实例化 Dompdf 类
$dompdf = new Dompdf();
第 2 步:加载 HTML 内容
你可以直接传入 HTML 字符串,或从文件加载内容:
// 直接传入 HTML 字符串
$html = '<h1>Hello Dompdf!</h1><p>这是一个简单的 PDF 生成示例</p>';
$dompdf->loadHtml($html);
// 或从文件加载(需要确保文件路径正确)
// $dompdf->loadHtmlFile('path/to/your/file.html');
第 3 步:渲染并输出 PDF
设置纸张大小和方向,然后渲染并保存/下载 PDF:
// 设置纸张大小(默认 A4)和方向(portrait 或 landscape)
$dompdf->setPaper('A4', 'portrait');
// 渲染 PDF 内容
$dompdf->render();
// 直接在浏览器中显示 PDF
$dompdf->stream('output.pdf', ['Attachment' => 0]);
// 或保存到服务器
// file_put_contents('output.pdf', $dompdf->output());
💡 实用技巧:提升 PDF 生成效果
支持中文显示的秘诀
默认情况下,Dompdf 可能无法正确显示中文字符。解决方法是在 HTML 中指定支持中文的字体,例如项目中提供的 DejaVu 字体:
body {
font-family: DejaVu Sans, sans-serif;
}
字体文件位于 lib/fonts/ 目录,包含 DejaVuSans.ttf 等多种字重文件。
处理图片的正确方式
Dompdf 支持 PNG、JPG 等格式的图片。确保图片路径正确,建议使用绝对路径或 base64 编码:
<!-- 本地图片 -->
<img src="/path/to/your/image.jpg" alt="示例图片">
<!-- 网络图片(需开启 allow_url_fopen 配置) -->
<img src="https://example.com/image.png" alt="网络图片">
如果遇到图片显示问题,可以检查 src/Exception/ImageException.php 文件中的错误处理逻辑。
自定义页面样式
通过 CSS 控制 PDF 页面布局,例如设置页边距和背景色:
@page {
margin: 20px;
background-color: #f5f5f5;
}
Dompdf 对 CSS 的支持主要通过 src/Css/ 目录下的样式解析模块实现,包括 Style.php 和 Stylesheet.php 等核心文件。
📸 效果展示:生成 PDF 示例
下面是使用 Dompdf 转换 HTML 生成的 PDF 效果示意图(实际效果取决于你的 HTML 和 CSS 设计):
使用 Dompdf 转换包含图片的 HTML 页面示例(图片来源:tests/_files/jamaica.jpg)
❓ 常见问题解答
Q: 为什么生成的 PDF 中文显示为乱码?
A: 确保在 CSS 中指定了支持中文的字体,如 DejaVu Sans,并检查字体文件是否存在于 lib/fonts/ 目录。
Q: 如何设置 PDF 的标题和作者信息?
A: 可以通过 HTML 的 meta 标签设置文档属性:
<meta name="author" content="Your Name">
<meta name="title" content="PDF 文档标题">
Q: 处理大文件时性能如何优化?
A: 对于包含大量内容的 PDF,建议分批次生成或使用 set_option('isPhpEnabled', false) 禁用 PHP 脚本执行以提高安全性和性能。
📚 深入学习资源
- 官方文档:项目根目录的
README.md文件提供了详细的使用说明和配置选项。 - 源码结构:核心功能位于
src/Dompdf.php,渲染逻辑在src/Renderer/目录下。 - 测试案例:参考
tests/目录中的示例,如tests/Renderer/RendererTest.php展示了各种渲染场景。
通过以上步骤,你已经掌握了 Dompdf 的基本使用方法。这个轻量级工具虽然简单,但功能强大,足以满足大多数 PHP 项目的 PDF 生成需求。无论是个人博客还是企业应用,Dompdf 都能帮助你轻松实现 HTML 到 PDF 的转换!
【免费下载链接】dompdf HTML to PDF converter for PHP 项目地址: https://gitcode.com/gh_mirrors/do/dompdf
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



