You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用OpenEdge PDF包含库为PDF添加超链接?求示例

使用OpenEdge PDF包含库添加PDF超链接的实现示例

可以通过OpenEdge的PDF包含库为PDF文档添加超链接,以下是具体实现示例(基于Progress 4GL语法):

完整代码示例

DEFINE VARIABLE hPdfDoc AS HANDLE NO-UNDO.
DEFINE VARIABLE hPdfPage AS HANDLE NO-UNDO.
DEFINE VARIABLE hPdfFont AS HANDLE NO-UNDO.
DEFINE VARIABLE cLinkText AS CHARACTER NO-UNDO INIT "点击访问OpenEdge官方文档".
DEFINE VARIABLE iX AS INTEGER NO-UNDO INIT 50.
DEFINE VARIABLE iY AS INTEGER NO-UNDO INIT 750.

/* 初始化PDF文档 */
CREATE PDF-DOCUMENT hPdfDoc.
hPdfDoc:FILE-NAME = "output_with_hyperlinks.pdf".

/* 添加页面 */
hPdfPage = hPdfDoc:ADD-PAGE().

/* 创建字体对象 */
CREATE PDF-FONT hPdfFont.
hPdfFont:NAME = "Helvetica".
hPdfFont:SIZE = 12.

/* 在页面绘制文本 */
hPdfPage:DRAW-TEXT(cLinkText, iX, iY, hPdfFont).

/* 为文本区域添加外部超链接 */
hPdfPage:ADD-HYPERLINK(
    iX, 
    iY - hPdfFont:SIZE - 2, 
    iX + hPdfFont:GET-TEXT-WIDTH(cLinkText), 
    iY, 
    "https://documentation.progress.com/output/ua/OpenEdge_latest", 
    "OpenEdge官方文档"
).

/* 添加内部页面跳转链接示例 */
hPdfPage:DRAW-TEXT("跳转到第二页", 50, 700, hPdfFont).
hPdfPage:ADD-HYPERLINK(
    50, 
    700 - hPdfFont:SIZE - 2, 
    50 + hPdfFont:GET-TEXT-WIDTH("跳转到第二页"), 
    700, 
    "#page=2", 
    "跳转到第二页"
).

/* 添加第二页用于内部跳转测试 */
hPdfPage = hPdfDoc:ADD-PAGE().
hPdfPage:DRAW-TEXT("这是第二页", 50, 750, hPdfFont).

/* 保存并清理资源 */
hPdfDoc:SAVE().
hPdfDoc:CLOSE().

DELETE OBJECT hPdfFont.
DELETE OBJECT hPdfPage.
DELETE OBJECT hPdfDoc.

关键说明

  • 外部链接:通过指定完整URL作为ADD-HYPERLINK的第5个参数,实现跳转到外部网页。
  • 内部跳转:使用#page=N格式的锚点作为目标,实现PDF内部页面间的跳转。
  • 链接区域定位:利用GET-TEXT-WIDTH方法获取文本宽度,结合字体高度调整Y坐标,确保链接区域精准覆盖目标文本(PDF坐标原点为页面左下角,Y轴向上递增)。

内容的提问来源于stack exchange,提问作者Luis Martinez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 03:33:22