• 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

  • 相关阅读:
    今日进度
    今日进度
    每周总结
    今日进度
    今日进度
    今日进度
    flask展示Excel
    ubuntu 相关
    python解析xml三种方法【ElementTree】【DOM】【SAX】
    Lambda实现if...elif...else【三元表达式】
  • 原文地址:https://www.cnblogs.com/txgh/p/16107474.html
Copyright © 2020-2023  润新知