losLab 软件开发博客

HotPDF Component

Software Development Blog

HotPDF Component

Delphi HotPDF Hello World:您的第一个 PDF 程序

使用 HotPDF 在 Delphi 中编写您的第一个 PDF:一个极简的控制台 Hello World 程序,设置 Unicode 字体,使用 TextOut 绘制文本,并保存压缩文件。 每个 PDF 库都会附带一个“hello world”,而 HotPDF 的这个示例值得您放慢脚步仔细研究,因为即使是执行任何操作

HotPDF Component

在 Delphi 中跨文档复用 THotPDF 实例

解释为什么复用已结束的 THotPDF 会触发 load-document 错误,Create、BeginDoc、EndDoc、Free 的生命周期如何运作,以及何时应当新建实例 报错内容是 ,而且几乎总是在第二次尝试时才会出现。第一份文档可以正常写出。随后同一个 实例又被要求开始第二份文档,这时

HotPDF Component

在 Delphi 中使用 HotPDF 构建 AcroForm 字段和动作

使用 HotPDF 在 Delphi 中创建 AcroForm 文本字段、复选框、单选组、提交动作和 JavaScript 动作,并避免表单接收中的导出值不匹配 一个理赔团队发布了一份由 Delphi 生成的同意书,在 Acrobat 里看起来没有任何问题:每个复选框都能显示,每个标题都对齐,版面也与纸质原件一致

HotPDF Component

使用 HotPDF 在 Delphi 中实现自动计算的 PDF 表单

在 Delphi 中使用 HotPDF 将 Acrobat AF 格式、验证和计算脚本附加到加载的 AcroForm,实现 PDF 表单字段的自动求和与日期格式化 一个能自动累计明细项目并自动格式化日期的发票或报销单 PDF,其 AcroForm 需要绑定三样东西,而 HotPDF 为 Delphi

HotPDF Component

在 Delphi 中向已加载的 PDF 添加 AcroForm 字段

在 Delphi 中使用 HotPDF 向现有 PDF 添加 Text、CheckBox、ComboBox、ListBox、PushButton 和 Signature 字段,并说明为什么 /NeedAppearances 必不可少 你手上有第三方发票模板,或是一份多年前由某个如今谁也找不到的软件生成的归档合同,现在要

HotPDF Component

Delphi 中的 AES-256 PDF 加密:HotPDF 设置与陷阱

在 Delphi 中使用 HotPDF 配置 AES-256 PDF 加密:用户密码和所有者密码、权限标志、R5 与 R6 修订,以及会静默失效的属性顺序 支持工单写着:“对账单在我们的桌面上可以正常打开,但客户的记录管理系统把每个文件都标记为不可读。”这些 PDF 确实按合同要求使用 AES-256 加密

HotPDF Component

在 Delphi 中使用 HotPDF 生成 PDF 可扫描条形码

用 Delphi 的 HotPDF 给 PDF 盖上线性条形码的戳:带你盘点它吃得下的那些符号体系,以及模块宽度和静区到底是怎么掐着扫描器的命门,决定这码能不能被扫出来的。 条形码可不是拿来给你文档撑门面的破画。它是一门需要精确丈量的手艺,而扫描器就是那把用来量它的无情尺子。只要你脑子里把这层意思转过弯来,它就决定了你

HotPDF Component

Delphi 中使用 HotPDF 为现有 PDF 添加书签

在 Delphi 中使用 HotPDF 为现有 PDF 添加书签和命名目标:AddLoadedOutline 嵌套、XYZ 目标以及 /Count 语义陷阱 HotPDF 通过 在 Delphi 中为现有 PDF 添加书签,该函数在已加载的文档上创建任何嵌套级别的提纲条目,并且它通过 和 读写命名目标(Named

HotPDF Component

在 Delphi 中使用 HotPDF 画布绘图:矢量路径与颜色

在 Delphi 中使用 HotPDF 在 PDF 里绘制矢量形状:使用 MoveTo 和 LineTo 构建路径,控制描边与填充、RGB 颜色和线宽,并采用左下角坐标系 HotPDF 通过在当前页面构建路径,然后再请求把它绘制出来,从而生成矢量图形,中间不存在任何位图步骤。你用 和 画出的线,最终会成为内容流里的

HotPDF Component

使用 HotPDF 图元在 PDF 中绘制图表

HotPDF 没有图表对象,因此您需要使用 Delphi 中的 Rectangle、LineTo 和 Circle 自己绘制条形图、折线图和饼图。这里介绍了坐标计算和布局。 HotPDF 没有图表对象。没有 ,没有 ,也没有任何可以接收数字数组并返回渲染图形的东西。相反,它为您提供了一个页面画布,其中包含每个 PDF

HotPDF Component

在 Delphi PDF 中使用 HotPDF 处理阿拉伯语和 RTL 文本成形

了解 HotPDF 在 Delphi PDF 中会做哪些文本成形、不会做哪些文本成形:双向重排、阿拉伯语连写、从希伯来语到泰语和天城文的覆盖范围,以及如何验证输出 把阿拉伯语短语 传给 ,然后打开结果文件。字母方向是错的,每个字母都停留在孤立字形,前后之间还留着明显空隙,看起来就像有人把英文倒着打出来,再在每个字符之间

HotPDF Component

Delphi 中的 HotPDF TextOut:大小、样式、旋转和间距

超越 Hello World,在 Delphi 中使用 HotPDF TextOut:设置字体大小和样式,按角度旋转,精确放置坐标,并调整字符和单词间距。 HotPDF 文档中的每一个可见字符串都是通过一次调用生成的: 。Hello World 示例使用它最简单的形式,字体只设置了一次,四个参数保留为合理的默认值

HotPDF Component

使用 Delphi 和 HotPDF 在 PDF 中排版中日韩垂直文本

使用 HotPDF 在 Delphi 中进行 PDF 中日韩垂直文本排版:IsVertical SetFont 开关,字形如何堆叠和向下步进,U+30FC 修复,以及从右到左的列。 在页面上排版一本日本小说,你首先会注意到文本是沿着列向下延伸的,而不是横向排列的,而且列是从纸张的右边缘向左推进

HotPDF Component

在 Delphi 中使用 HotPDF 处理 PDF 数字签名和 PAdES

在 Delphi 中使用 HotPDF 签署 PDF:PFX 一键签名、外部签名器的 ByteRange 预留、PAdES 基线字段和文档时间戳 在查看器为签名 PDF 显示绿色勾选之前,它会做三件机械工作:读取签名字典中的 数组,精确哈希该数组描述的两个字节区间,然后验证存储在这两个区间之间的 项中的 CMS

HotPDF Component

在 Delphi 中通过 HotPDF Direct File API 处理大型 PDF

在 Delphi 中处理超大 PDF 而不必把它们整体载入内存:HotPDF Direct File API 可处理文件句柄、加密复制、页数统计和增量更新 给一个 1.4 GB 的扫描档案统计页数,本来应该是件很便宜的事。但如果你对它调用 ,事情立刻就不便宜了:HotPDF 会解析交叉引用数据,为文档里几十万个间接对象

HotPDF Component

Delphi中的ECDSA PDF签名校验:DER转P1363

在Delphi中把CMS DER编码的ECDSA签名转换为IEEE P1363格式以供BCryptVerifySignature使用:严格的r、s解码、曲线提供程序名称与CMS签名者匹配

HotPDF Component

在 Delphi 中编辑已加载 PDF 的元数据而无需重写

在 Delphi 中使用 HotPDF 编辑已加载 PDF 的标题、作者、XMP、PageMode 和书签,然后就地保存,而无需重建 xref 或对象图 您有来自十几个不同生成器的上万份合同 PDF,法律部门希望每一份都携带正确的 、修正后的 字符串,以及在启动时打开书签面板的阅读模式;天真的修复方法是加载每个文件、重

HotPDF Component

静默禁用字体子集化的 EndDoc 错误

在文件写入后运行的字体子集化会导致生成全量字体且不报错。了解 HotPDF 中隐藏的 EndDoc 顺序错误及其捕获方法 生成一份报表,嵌入一个 TrueType 字体,输出文件在你尝试的每个查看器里都能正常打开。字形正确,文本可选,文件有效。唯一不对的是大小。一个只用了几十个拉丁字符的文档,却带着整套 350 KB

HotPDF Component

在 Delphi 中从已加载的 PDF 提取图片:HotPDF

在 Delphi 中使用 HotPDF 的 ExtractLoadedImage 函数,将已加载之 PDF 中的图片解码:支援将 Flate、LZW、JPEG、JPEG 2000、Indexed、CMYK、CCITT 与 JBIG2 滤镜转换为 TBitmap。 你的磁碟上有一份

HotPDF Component

在 Delphi 中使用 HotPDF 从已加载的 PDF 中提取文本

在 Delphi 中使用 HotPDF 从已加载的 PDF 中提取 Unicode 文本:ExtractLoadedPageText、保留布局的提取、ToUnicode CMap 以及字体解码回退链 HotPDF Component 通过两次调用即可在 Delphi 中从您加载的任何 PDF 中提取 Unicode

HotPDF Component

Delphi 中的 PDF 类型 0 采样函数实现 3D 颜色 LUT

PDF 函数类型 0 是一个多维插值表。了解 HotPDF 如何封装它以在 Delphi 中实现 3D 颜色 LUT 和专色色调变换 PDF Function 是规范里比较安静的一角。大多数开发者只会遇到它一次,就是 Type 2 轴向着色为了在两种颜色之间渐变而需要的那个函数,之后便不再回头看它

HotPDF Component

在 Delphi 中加载来自 Word 和 Excel 的混合引用 PDF

Word 和 Excel 导出混合引用 PDF,这些 PDF 加载良好,但在重新保存时会失败。了解 HotPDF 如何在 Delphi 中读取 /XRefStm 表并安全处理 打开由 Microsoft Word 或 Excel 生成的 PDF,浏览它,看起来一切正常。将其加载到 Delphi

HotPDF Component

HotPDF Delphi 超链接:PrintHyperlink 注释技巧

HotPDF Delphi 超链接实战:PrintHyperlink 的 URI 链接、AddURILink 热点、AddGoToLink 内部导航、多行换行解决方案,以及 PDF/UA 约束 PDF 超链接是 URI 注释,实际是覆盖在页面区域上的矩形。用户点击该区域后,阅读器会打开指定 URL

HotPDF Component

Delphi PDF 中的原生 JBIG2 双色调图像压缩

JBIG2 使扫描的黑白页面在 PDF 中达到最小体积。了解 HotPDF 如何在 Delphi 中写入 JBIG2Decode 流并插入编码器后端。 扫描的合同是白纸黑字的,每英寸有几百个点。作为每像素 1 位的位图存储时它已经很小了,然而一百个这样的页面仍然会让 PDF 膨胀到无法通过电子邮件发送的大小

HotPDF Component

在 Delphi 中使用 HotPDF 将 JPEG 2000 图像添加到 PDF

JPEG 2000 为 PDF 图像带来高位深和小波压缩。了解 HotPDF 如何在 Delphi 中解码 JPXDecode 流并嵌入 JP2 和 J2K 图片。 扫描的医疗幻灯片,航测图块,或者在全动态范围内存档的胶片帧。这就是作为 JPEG 2000 送达的图片,它们以此种格式送达是有原因的

HotPDF Component

在 Delphi 中使用 HotPDF 进行对象流和增量更新

了解 HotPDF 如何在 Delphi 中使用对象流和 xref 流压缩 PDF 结构,并通过增量更新保留已签名版本、控制兼容性与文件体积,安全修改现有文档。本文还说明何时应压缩追加历史,以及如何在发布前验证输出文件,适合归档与签名流程,也适合大规模文档处理和长期存档验证场景

HotPDF Component

纯 Delphi 中的 OpenType GSUB 样式替换

样式集和替换存在于字体的 GSUB 表中。了解 HotPDF 如何在纯 Delphi 中不依赖 HarfBuzz 解析 salt 和 ss01 到 ss20 替换。 设计师为标题选择了一款带有单层 的字体,或者为表格选择带有斜杠的零,或者为封面选择一组花体大写字母。这些字形已经存在于字体中。它们只是不是默认设置

HotPDF Component

Delphi 中的 PDF/A、PDF/X 和 PDF/UA 输出:HotPDF 指南

使用 HotPDF 从 Delphi 生成符合 PDF/A、PDF/X 和 PDF/UA 的文件:输出意图、标记结构、ICC 配置文件和 veraPDF 验证步骤 某政府归档机构曾退回一位客户的 Delphi 计费系统生成的整批 1,400 张发票。客户尝试的每个查看器都能完美打开这些文件;veraPDF

HotPDF Component

强化 Delphi PDF 签名器以抵御恶意 PKCS#12

证书解析器属于攻击面。本文介绍 HotPDF 在 PKCS#12 和 ASN.1 处理中修复的整数回绕与 PBKDF2 拒绝服务缺陷,并说明如何限制长度、迭代次数和解析开销,保护 Delphi PDF 签名流水线免受恶意凭据影响,适合服务器、批处理和上传证书场景的工程团队参考与审计

HotPDF Component

在 Delphi 中使用 HotPDF 自动化 PDF 预检检查

在 Delphi 中构建自动化 PDF 预检门禁:用 HotPDF 生成符合标准的文件,再在发布前用 veraPDF 和 Acrobat 验证 月度对账单在每个开发者屏幕上看起来都没问题,于是上线发布。两天后,印刷服务商退回整批文件:CMYK 作业里有 RGB 图像,而且没有 声明

HotPDF Component

在 Delphi 中使用 HotPDF 和 TPrinter 打印加载的 PDF

在 Delphi 中使用 HotPDF 打印加载的 PDF:通过 PrintLoadedDocument 驱动 TPrinter,渲染页面到任何 HDC,并将矢量 EMF 页面复制到剪贴板 HotPDF 通过三次调用将加载的 PDF 打印到物理打印机、任何 Windows 设备上下文或剪贴板: 驱动 VCL 、

HotPDF Component

在 Delphi 中使用 HotPDF 進行 PDF 遮蔽与 N-up 拼版

在 Delphi 中使用 HotPDF 内容流操作符,於已加载的 PDF 上覆蓋特定区域并建立 N-up 版面配置,以及你必须遵守的遮蔽安全性边界。 一个需求落到了你的辦公桌上:拿一批已經渲染好的对账单,将帳号塗黑,然后为了節省紙張,每張紙印两页。这个任务的两个部分,都是对一份不是你所建立的 PDF 進行内容流

HotPDF Component

在 Delphi 中渲染 PDF 渐变:轴向与径向

在 Delphi 中使用 HotPDF 渲染 PDF 轴向和径向阴影:支持 sh 操作符,并在其函数引擎中将渐变离散化为色带进行求值 如果 PDF 的表头带有 Word 或 Excel 风格的渐变背景,以前将其渲染为图像时,在色彩混合处通常会返回一个空白的白色矩形。HotPDF 的页面渲染器现在支持针对类型 2

HotPDF Component

在 Delphi 中使用 HotPDF 渲染嵌入式 PDF 字体

HotPDF 如何在不安装字体的情况下在 Delphi 中渲染嵌入的 PDF 字体:TrueType glyf 轮廓、CFF Type 2 字符字串、Type 3 字形和编码映射 HotPDF 在不安装机器任何字体的情况下在 Delphi 中渲染嵌入的 PDF 字体: 中的嵌入式字形渲染流水线解析存储在 PDF

HotPDF Component

在 Delphi 中使用 HotPDF 将 PDF 页面渲染为位图

In Delphi 中使用 HotPDF 将已加载的 PDF 页面渲染为 TBitmap:RenderLoadedPageToBitmap API、嵌入式 TrueType/CFF 字形轮廓、Type3 字体以及页面缓存 HotPDF 通过单次调用即可将已加载的 PDF 页面渲染为 Delphi 的 :

HotPDF Component

在 Delphi 中渲染 Separation 和 DeviceN 专色

在 Delphi 中使用 HotPDF 渲染 PDF Separation 和 DeviceN 专色:色调变换函数、Type 4 计算器评估、Lab 白点适应 HotPDF 通过 解析颜色空间,通过 评估色调变换函数,并将结果通过替代空间转换为屏幕所需的 RGB,从而在加载的 PDF 页面上渲染 Separation

HotPDF Component

使用 HotPDF 创建 Delphi PDF 报表:TextOut、字体和图像

面向 Delphi PDF 报表的实用 HotPDF 指南:TextOut 坐标、Unicode 字体嵌入、JPEG 和 PNG 图像放置,以及可扩展的绘图基元 几乎每个团队第一次用 PDF 库渲染发票时,都会以同样方式出错:标题文本贴在页面底边,后续每一行都向上爬。没有任何东西坏掉

HotPDF Component

在 Delphi 中搜索并替换现有 PDF 中的文本

在 Delphi 中使用 HotPDF 搜索并替换现有 PDF 文件中的文本:字形级搜索、逆向字体编码以及子集字体的真实限制 HotPDF Component 可以在 Delphi 和 C++Builder 中搜索并替换现有 PDF 内部的文本。 和 以字形级精度定位字符串的每一次出现,而 和 则是就地重写匹配的字节

HotPDF Component

使用 HotPDF 在 Delphi 中将数据表渲染为 PDF

在 Delphi 中将数据集的行绘制为真实的 PDF 表格:计算列宽,对齐单元格文本,绘制网格线,并在表格跨页时重复表头。 数据集是行和列;PDF 页面是一个空白的坐标网格,没有行和列的概念。跨越这种差距正是这里全部的工作。在 HotPDF 中没有能够接收数据集并为你提供格式化网格的 调用

HotPDF Component

使用 HotPDF 在 Delphi 中实现 PDF 文本的两端对齐

对齐的 PDF 文本需要考虑脚本的间距和快速的宽度测量。了解 HotPDF 如何在 Delphi 中对齐拉丁和 CJK 行并减少 GDI 往返。 两端对齐(Full justification)是一种让列文本在左右边缘都对齐的排版方式,也是我们在印刷书籍或正式报告时期望看到的效果

HotPDF Component

在 Delphi 中使用 HotPDF 验证 PDF 数字签名

在 Delphi 中使用 HotPDF 验证 PDF 数字签名:读取签名者详细信息、重新哈希 ByteRange 字节、检查 CMS/RSA 签名,并了解 svValid 保证的内容 HotPDF 通过三个 方法在已加载 the 的 PDF 文档中验证数字签名: 、 和 ,这些方法是在 v2.259.0 中引入的

HotPDF Component

在 Delphi 中使用 HotPDF 将 XFA 扁平化为 AcroForm

在 Delphi 中用 HotPDF FlattenLoadedXFA 将动态 XFA 表单转换为原生 AcroForm,审阅扁平化警告,并处理归档和 PDF/A 限制 "Please wait... If this message is not eventually replaced by the proper

HotPDF Component

在 Delphi 中将 XFA 富文本超链接展平为 PDF 链接

XFA 表单将富文本存储为 HTML 子集。了解 HotPDF 如何在 Delphi 中展平 exData 序列并将其 a-href 链接转换为原生的 PDF Link 注释。 XFA(XML 表单架构)已被弃用。ISO 32000-1 第 12.7 节包含它,但附带说明它已从 PDF 2.0

HotPDF Component

在 Delphi 中将 PDF 注释导入和导出为 XFDF

在 Delphi 中使用 HotPDF 导出和导入 PDF 注释为 XFDF:支持线条、多边形、墨水、内部颜色以及富文本评论的 ISO 19444-1 往返 HotPDF 通过作用于当前加载文档的两个函数 和 ,将 PDF 注释导出和导入为 XFDF。XFDF 是标准化为 ISO 19444-1 的 XML

HotPDF Component

Delphi 中使用 HotPDF 的 PDF 注释:类型和矩形框

使用 HotPDF 在 Delphi 中添加 PDF 注释:文本备注、自由文本、正方形和印章。了解矩形框如何定位它们,以及它们与 AcroForm 字段有何不同。 注释不是页面内容。当您调用 或绘制矩形时,这些标记将成为页面内容流的一部分,并被固化到渲染器绘制的字节中。注释是一个独立的字典,通过其

HotPDF Component

HotPDF 中的 RtLTextOut:在 Delphi 中输出从右向左的 PDF 文本

使用 HotPDF 的 RtLTextOut 将阿拉伯语和希伯来语从 Delphi 写入 PDF:字符集选择,它与 TextOut 的区别,方向效果以及字体设置。 将阿拉伯语句子 直接交给普通的 会同时带来两个问题:词序从左向右,而不是从右向左,字形也无法按上下文连接。这样得到的结果会经过编译并打开,但阅读体验与预期完