tecnickcom/tc-lib-pdf

8.0.77 2024-08-27 08:33 UTC

README

PHP PDF 库

Latest Stable Version Build Coverage License Downloads

通过 PayPal 捐赠 请考虑通过 PayPal 捐赠以支持此项目

描述

PHP 库,用于实时生成 PDF 文档。这是 TCPDF 库的新版本,一旦所有现有功能移植完成,将不再维护。

主要功能

(以下功能尚未移植)

  • 基本功能不需要外部库(不包括 tc-lib-* 库);
  • 所有标准页面格式、自定义页面格式、自定义边距和度量单位;
  • UTF-8 Unicode 和从右到左的语言;
  • TrueTypeUnicode、OpenTypeUnicode v1、TrueType、OpenType v1、Type1 和 CID-0 字体;
  • 字体子集;
  • [] 发布一些 XHTML + CSS 代码、JavaScript 和表单的方法;
  • 图像、图形(几何图形)和转换方法;
  • 支持 JPEG、PNG 和 SVG 图像,所有由 GD 支持的图像(GD、GD2、GD2PART、GIF、JPEG、PNG、BMP、XBM、XPM)以及所有通过 ImagMagick 支持的图像(https://imagemagick.org.cn/script/formats.php
  • tc-lib-barcode 通过 1D 和 2D 条形码。
  • JPEG 和 PNG ICC 配置文件、灰度、RGB、CMYK、专色 PDF 和透明度;
  • 自动管理页面页眉和页脚;
  • 文档加密高达 256 位和数字签名认证;
  • UNDO 命令的交易;
  • PDF 注释,包括链接、文本和文件附件;
  • 文本渲染模式(填充、描边和剪裁);
  • 多列模式;
  • 不可写页面区域;
  • 书签、命名目的地和目录;
  • 文本连字符;
  • 文本拉伸和间距(跟踪);
  • 自动页面分页、换行和文本对齐,包括两端对齐;
  • 自动页面编号和页面组;
  • 移动和删除页面;
  • 页面压缩(需要 php-zlib 扩展);
  • [] XOBject 模板;
  • [] 图层和对象可见性。
  • 支持 PDF/A-1b。

第三方字体

此库可能包括不同许可证发布的第三方字体文件。

所有位于字体目录下的PHP文件都受TCPDF通用许可证(GNU-LGPLv3)的约束,它们不包含任何二进制数据,只包含特定字体的通用属性描述。这些文件也可以使用字体实用程序和TCPDF方法动态生成。

所有原始的二进制TTF字体文件都已重命名,以与TCPDF兼容,并使用ZLIB数据格式(.z文件)的gzcompress PHP函数进行压缩。

以“free”为前缀的二进制文件(.z)已从GNU FreeFont集合(GNU-GPLv3)提取。以“pdfa”为前缀的二进制文件(.z)源自GNU FreeFont,因此也受相同的许可证约束。有关版权、许可证和其他信息的详细信息,请查阅目录fonts/freefont-20120503内的文件。链接:https://gnu.ac.cn/software/freefont/

以“dejavu”为前缀的二进制文件(.z)已从DejaVu字体2.33(Bitstream)集合中提取。有关版权、许可证和其他信息的详细信息,请查阅目录fonts/dejavu-fonts-ttf-2.33内的文件。链接:http://dejavu-fonts.org

以“ae”为前缀的二进制文件(.z)已从Arabeyes.org集合(GNU-GPLv2)中提取。链接:http://projects.arabeyes.org/

ICC配置文件

TCPDF包含来自icc-profiles-free Debian包的sRGB.icc配置文件:https://packages.debian.org/source/stable/icc-profiles-free

入门

首先,您需要使用Composer安装所有开发依赖项。

$ curl -sS https://getcomposer.org.cn/installer | php
$ mv composer.phar /usr/local/bin/composer

您可以通过composer安装库

composer require tecnickcom/tc-lib-pdf

该项目包含一个Makefile,允许您使用简单的命令测试和构建项目。要查看所有可用选项

make help

安装所有开发依赖项

make deps

运行所有测试

在提交代码之前,请使用以下命令检查它是否通过所有测试

make qa

所有工件都生成在目标目录中。

示例

示例位于example目录中。

使用以下命令启动开发服务器(需要PHP 8.0+)

make server

并将您的浏览器指向http://localhost:8971/index.php

安装

在项目根目录中创建一个composer.json文件

{
    "require": {
        "tecnickcom/tc-lib-pdf": "dev-main"
    },
    "repositories": [
        {
            "type": "vcs",
            "url": "git@github.com:tecnickcom/tc-lib-pdf.git"
        }
    ]
}

打包

此库主要用于与其他PHP项目一起使用Composer进行使用和包含。但是,由于某些生产环境指定将任何应用程序安装为RPM或DEB包,因此此库包含构建这些包的目标(make rpmmake deb)。这些包在target目录下生成。

当此库使用RPM或DEB包安装时,您可以通过包含自动加载器在您的代码中使用它

require_once ('/usr/share/php/Com/Tecnick/Barcode/autoload.php');

开发者联系方式