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