如何使用 Dompdf:从 HTML 轻松转换 PDF 的免费开源工具

如何使用 Dompdf:从 HTML 轻松转换 PDF 的免费开源工具

【免费下载链接】dompdf HTML to PDF converter for PHP 【免费下载链接】dompdf 项目地址: 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 生成 PDF 示例效果 使用 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 【免费下载链接】dompdf 项目地址: https://gitcode.com/gh_mirrors/do/dompdf

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值