如何使用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
相关产品推荐
相关产品推荐

