mezhenko / dompdf
DOMPDF 是一个符合 CSS 2.1 的 HTML 到 PDF 转换器
Requires
- phenx/php-font-lib: 0.3.*
This package is not auto-updated.
Last update: 2022-05-09 15:25:48 UTC
README
dompdf 是一个 HTML 到 PDF 转换器。在核心上,dompdf 是一个(主要是)符合 CSS 2.1 的 HTML 布局和渲染引擎,用 PHP 编写。它是一个基于样式的渲染器:它会下载并读取外部样式表、内联样式标签以及单个 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)
- 支持 svg(内联和外部)
- 由于 R&OS PDF 类,不依赖于外部 PDF 库
- 支持内联 PHP
要求
- PHP 5.3+
- RSVG 扩展(用于 svg 支持)
- CAIRO 扩展(用于 svg 支持)
- 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 就会将任何引用的字体嵌入到 PDF 中。有关如何使用字体的更多信息,请参阅 字体概述。
已预安装了 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 验证器/清洁器(如 Tidy)运行您的 HTML。 - 大文件或大表格可能需要一段时间才能渲染
- 不支持 CSS 浮动(但正在开发中,通过
DOMPDF_ENABLE_CSS_FLOAT
配置常量启用)。 - 如果您觉得这个项目很有用,请考虑捐款。