如何在用户点击位置添加注释?

需要在用户点击位置添加注释(如下图注释),最重要的是将 ActiveX 控件的窗口坐标转换为 PDF 页面坐标。需要使用接口:ConvertClientCoordToPageCoord()。

以C# FrameWork项目为例:

步骤1

创建onclick鼠标点击事件:在设计界面里,选中ActiveX控件,右键查看属性,在属性界面里找到事件,并双利事件里的OnClick。

双击后,会自动在代码里创建点击事件处理器:

private void axFoxitPDFSDK1_OnClick(object sender, AxFoxitPDFSDKProLib._DFoxitPDFSDKEvents_OnClickEvent e)
 {}

步骤2

代码实现。在点击处创建注释,示例代码如下:

private void axFoxitPDFSDK1_OnClick(object sender, AxFoxitPDFSDKProLib._DFoxitPDFSDKEvents_OnClickEvent e)
 { 
int pageIndex = axFoxitPDFSDK1.CurPage; FoxitPDFSDKProLib.IPDFPageAnnots annots= axFoxitPDFSDK1.GetPageAnnots(pageIndex); 
float posX = 0;
 float posY = 0;
 //图像宽高
 float imgW = 80;
 float imgH = 50;
 //坐标转换 axFoxitPDFSDK1.ConvertClientCoordToPageCoord(e.clientX,e.clientY, ref pageIndex, ref posX,ref posY); 
//在用户点击位置创建图像注释
 FoxitPDFSDKProLib.IPDFAnnot annot= annots.AddAnnot(null, "Image", posX-imgW/2, posY - imgH/2, posX +imgW/2, posY+imgH/2); annot.SetMediaPoster("D:\\FoxitLogo.jpg"); 
}

效果显示如下: