这个 HotPDF 示例展示如何在生成的 PDF 文档中放置可点击超链接。超链接看似只是小功能,但在发票、报表、产品资料、文档导出以及需要把读者带回网站、订单页、支持表单或在线手册的 PDF 中非常重要。
关键点是:可见文本和点击目标是两个不同概念。PDF 可以显示友好的标签,而注释目标指向完整 URL。实际应用中应保持两者同步,让用户能看出链接会跳转到哪里。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
unit Main; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, StdCtrls, Forms, Dialogs, HPDFDoc; type TForm1 = class(TForm) HotPDF: THotPDF; HelloWorldButton: TButton; edtWeb: TEdit; edtProduct: TEdit; edtOrder: TEdit; edtContact: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; procedure HelloWorldButtonClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.HelloWorldButtonClick(Sender: TObject); begin HotPDF.BeginDoc; HotPDF.CurrentPage.SetFont( 'Microsoft Sans Serif', [], 13 ); HotPDF.CurrentPage.TextOut(20,30,0,'Clickable links:'); HotPDF.CurrentPage.PrintHyperlink(20, 60, 'Company site: ' + edtWeb.Text, edtWeb.Text); HotPDF.CurrentPage.PrintHyperlink(20, 80, 'Product page: ' + edtProduct.Text, edtProduct.Text); HotPDF.CurrentPage.SetRGBHyperlinkColor(clRed); HotPDF.CurrentPage.PrintHyperlink(20, 100, 'Purchase link: ' + edtOrder.Text, edtOrder.Text); HotPDF.CurrentPage.SetRGBHyperlinkColor(clBlue); HotPDF.CurrentPage.PrintHyperlink(20, 120, 'Contact form: ' + edtContact.Text, edtContact.Text); HotPDF.EndDoc; end; end. |
适用场景
当链接在文档被邮件发送、归档或从客户门户下载后仍应保持可用时,就适合使用 PDF 超链接。常见目标包括产品页面、在线手册、发布说明、问题跟踪系统、发票、许可证查询页面和文档验证端点。
位置和样式
PDF 链接本质上是放在页面区域上的注释。如果修改字体、文本位置、缩放或页面坐标系统,需要确认可点击矩形仍与用户看到的文本对齐。即使 URL 正确,点击区域偏移几像素也会让用户感觉链接损坏。
颜色也是用户体验的一部分。蓝色带下划线仍然是最清晰的网页链接约定,但生成的报表有时需要更克制的样式。如果使用自定义颜色,周围文本应足够明确,让读者知道它可以点击。
验证清单
- 公开文档使用完整的 HTTPS URL。
- 把用户提供的 URL 写入 PDF 前先验证。
- 在多个 PDF 阅读器中测试链接,因为不同阅读器对注释的处理可能不同。
- 修改页面大小、页边距、字体或缩放后,重新检查点击区域。
- 不要只用链接文字承载关键流程动作,应在 PDF 正文中提供上下文。
SEO 和文档分发提示
当 PDF 发布到线上时,清晰的链接标签能帮助用户和搜索引擎理解文档与目标资源的关系。优先使用“产品文档”或“客户支持门户”这类描述性文本,而不是“点击这里”。