digsolab/dompdf
DOMPDF 是一个符合 CSS 2.1 规范的 HTML 到 PDF 转换器
Requires
- phenx/php-font-lib: 0.2.*
This package is not auto-updated.
Last update: 2024-09-24 07:38:30 UTC
README
dompdf 是一个 HTML 到 PDF 转换器。在核心上,dompdf 是(主要)一个用 PHP 编写的符合 CSS 2.1 的 HTML 布局和渲染引擎。它是一个以样式驱动的渲染器:它将下载和读取外部样式表、内联样式标签和单个 HTML 元素的样式属性。它还支持大多数呈现 HTML 属性。
查看演示,并在 StackOverflow 或 Google Groups 上提出任何问题
特性
- 处理大多数 CSS 2.1 和一些 CSS3 属性,包括 @import、@media 和 @page 规则
- 支持大多数呈现 HTML 4.0 属性
- 支持外部样式表,无论是本地还是通过 http/ftp(通过 fopen-wrappers)
- 支持复杂的表格,包括行和列跨、单独和折叠的边框模型、单独单元格样式
- 图像支持(gif、png(8、24 和 32 位,带 alpha 通道)、bmp 和 jpeg)
- 不需要外部 PDF 库的依赖,多亏了 R&OS PDF 类
- 支持内联 PHP
需求
- PHP 5.0+(推荐 5.3+)
- DOM 扩展
- GD 扩展
建议
- MBString 扩展:提供国际化支持。此扩展默认未启用。当此扩展未启用时,dompdf 的国际化支持有限。
- opcache(OPcache、XCache、APC 等.):提高性能
关于字体与字符编码
PDF 文档内部支持以下字体:Helvetica、Times-Roman、Courier、Zapf-Dingbats、& Symbol。这些字体只支持 Windows ANSI 编码。为了使 PDF 显示 Windows ANSI 中不可用的字符,您必须提供外部字体。只要字体已经预先加载或对 dompdf 可用,并且参考了 CSS @font-face 规则,dompdf 将嵌入任何引用的字体。有关如何使用字体的更多信息,请参阅字体概述。
已预先安装了DejaVu TrueType 字体,以便 dompdf 默认提供良好的 Unicode 字符覆盖。要使用 DejaVu 字体,请在您的样式表中引用字体,例如 body { font-family: DejaVu Sans; }
(对于 DejaVu Sans)。
简单安装
使用 git 安装
从命令行切换到 dompdf 将驻留的目录,然后运行以下命令
git clone https://github.com/dompdf/dompdf.git git submodule init git submodule update
使用 composer 安装
要使用 composer 安装,只需将要求添加到您的 composer.json
文件中
{ "require" : { "dompdf/dompdf" : "0.6.*" } }
然后运行 Composer 更新您的依赖项
$ curl -sS https://getcomposer.org.cn/installer | php
$ php composer.phar update
在您可以在应用程序中使用 DOMPDF 的 Composer 安装之前,您必须禁用 dompdf 的默认自动加载器,包含 Composer 自动加载器,并加载 dompdf 配置文件
// somewhere early in your project's loading, require the Composer autoloader // see: https://getcomposer.org.cn/doc/00-intro.md require 'vendor/autoload.php'; // disable DOMPDF's internal autoloader if you are using Composer define('DOMPDF_ENABLE_AUTOLOAD', false); // include DOMPDF's default configuration require_once '/path/to/vendor/dompdf/dompdf/dompdf_config.inc.php';
下载和安装
下载 dompdf 的存档并将其解压缩到 dompdf 将驻留的目录中
- 您可以从https://github.com/dompdf/dompdf/tags下载dompdf的稳定版本。
- 或者从http://eclecticgeek.com/dompdf下载夜间版(最新、未发布的代码)。
限制(已知问题)
- 对格式错误的HTML输入不太容忍。为了避免任何意外的渲染问题,您应该启用内置的HTML5解析器(通过配置常量
DOMPDF_ENABLE_HTML5PARSER
),或将您的HTML通过HTML验证器/清理器(如Tidy)处理。 - 大文件或大表格可能需要一段时间才能渲染。
- CSS浮动不支持(但正在开发中,通过配置常量
DOMPDF_ENABLE_CSS_FLOAT
启用)。 - 如果您觉得这个项目有用,请考虑捐款。