delphi SynPDF 介绍
SynPDF
介绍
概述
Synopse PDF 引擎是一个功能齐全的开源 PDF 文档创建库,用于 Delphi 和 FPC,嵌入在一个单元中。
被用于 mORMot 框架 中,用于从生成的报告创建 PDF 文件。如果下载整个 mORMot 源代码,则不需要这个单独的包。
特征
- 纯 Delphi 代码,没有外部 .dll,并且为您的可执行文件添加了非常小的代码大小;
- 针对Delphi 6及以上版本,包括Unicode版本的Delphi和最新版本的FPC,适用于Win32和Win64平台,并提供完整的源代码;
- 包括大多数矢量绘图命令,包括文本、线条或曲线;
- 渲染位图和图元文件(即使是大多数具有剪辑和区域功能的 .emf 文件);
- 引入元数据、书签和大纲信息;
- 生成非常小的 .pdf 文件;
- 可选择使用 40 位或 128 位密钥加密和保护 .pdf 内容;
- 以低内存开销快速生成文件(用数千页测试);
- 访问一个真正的 VCL TCanvas 实例来创建 PDF 内容;
- 可选择嵌入 True Type 字体子集;
- Unicode 就绪,即使使用 Unicode 之前的 Delphi 版本,包括高级 Uniscribe 字形底纹和字体回退;
- 可以发布PDF/A-1存档文件;
- 用于许多应用程序,并定期进行增强,主要来自活跃的最终用户;
- 根据 MPL/GPL/LGPL 三项许可 获得许可。
调用方法
事实上,至少有三种使用该库生成 pdf 的方法:
- 直接调用 由
TPdfDocument
实例发布的TPdfCanvas
——这是最直接但也更困难的渲染方式; - 使用常规 VCL
TCanvas
方法 由于TMetaFile
支持 - 参见TPdfDocumentGDI.VCLCanvas
属性和TPdfCanvas.RenderMetaFile
方法 - 如果你想使用“常规”TCanvas
方法来绘制页面内容,这很容易,特别是如果您有一些现有的打印代码; - 使用提供的
mORMotReport.pas
单元的TGDIPages
(从我们的 mORMot ORM/SOA 框架中提取)轻松地从代码创建内容,使用一些面向报告的方法(包括复杂的 rtf 和TGDIPages.AppendRichEdit
) - 对于基本的报告功能,它几乎是解决方案。
对于大多数应用程序,首选第 2 和第 3 种方式。
帮助文档
https://synopse.info/files/html/api-1.18/SynPdf.html
主要类
TPdfDocument
TPdfDocument = class(TObject);
PDF引擎的主类,处理整个PDF文档。
unit
SynPdf
TPdfDocumentGDI
TPdfDocumentGDI = class(TPdfDocument);
使用 GDI 命令创建PDF文档的类,此类允许使用VCL标准Canvas
类,还直接从 TMetaFile
内容处理PDF创建。
unit
SynPdf
TPdfPage
TPdfPage = class(TPdfDictionary);
PDF页面。
unit
SynPdf
TPdfInfo
TPdfInfo = class(TPdfDictionaryWrapper);
PDF文档信息字段的字典包装类,所有值都使用通用VCL字符串类型,如有必要,将被编码为Unicode。
unit
SynPdf
TPdfOutlineEntry
TPdfOutlineEntry = class(TPdfDictionaryWrapper);
PDF文档中的大纲条目。
unit
SynPdf
TPdfEncryption
TPdfEncryption = class(TObject);
处理PDF安全性的抽象类。
unit
SynPdf