YCanPDF PDFView OCX 2.1.0 接口说明文档 请在 http://www.ycanpdf.cn 下载本文档的最新版本 YCanPDF PDFView OCX 是 YCanPDF 开发的显示 PDF 文件的标准控件, 可以在任何支持标准 OCX 的开发语言里面使用, 有关方法和属性详细说明如下 : 一 方法 : 1. long SetFileName(LPCTSTR filename, LPCTSTR password, long lparams); 功能打开一个本地硬盘上的 PDF 文件 参数 Filename: 文件全路径 Password: 文件密码, 如果没有密码的话, 这个参数设置为空 lparams: 0 表示从文件直接打开 ;1 表示从内存中打开 返回值 0 表示成功,-1 表示出错,-2 表示这个文件加密 2. long OpenFileDlg(long lparams); 功能调用系统对话框, 打开一个本地硬盘上的 PDF 文件 参数 lparams: 0 表示从文件直接打开 ;1 表示从内存中打开 返回值 0 表示成功,-1 表示出错,-2 表示这个文件加密 3. long SetURL(LPCTSTR szfilepath, LPCTSTR szpassword); 功能打开一个网络上的 PDF 文件, 直接从内存中打开, 即文件不落地 支持绝对 相对路径 参数 szfilepath: 文件的 URL 路径 支持 HTTP HTTPS 和 FTP, 不区分大小写 szpassword: 文件密码, 如果没有密码的话, 这个参数设置为空 返回值 0 表示成功,-1 表示出错,-2 表示这个文件加密 注意 szfilepath 的 FTP 格式为如下格式 : ftp:// 用户名 : 用户密码 @FTP 服务器 :FTP 端口 / 路径 /PDF 文件名 4. long OpenMem(short* pbuf, long len, LPCTSTR password); 功能打开内存中的 PDF 文件 参数 pbuf: 二进制内存流, 必须要是完整的 PDF 文件
len: 内存流的长度 password: 密码 返回值 0 为成功,-1 表示失败,-2 表示密码错误 注意该模式不支持 web 方式调用 示例代码 ( 本例的内存流是从文件里面读出来的 ) FILE *fp = fopen(strfile,"rb"); if (fp) { fseek(fp,0,seek_end); long len =ftell(fp); fseek(fp,0,seek_set); char *pbuf = (char *)malloc(sizeof(char)*(len+1)); if(pbuf){// 这里的 pbuf 在文件显示完毕的时候要释放 free(pbuf); fread(pbuf,1,len,fp); ppdfview->openmem((short *)pbuf,len,null); } fclose(fp); } 5. long OpenMemEx(LPCTSTR lpbuf, long len, LPCTSTR lppwd, long lparams); 功能打开 base64 编码的内存 PDF 文件 参数 pbuf: 二进制内存流 (base64 编码 ), 必须要是完整的 PDF 文件 len: 内存流的长度 password: 密码 lparams 保留 返回值 0 为成功,-1 表示失败,-2 表示密码错误 6. long SetRCPath(LPCTSTR szrcpath); 功能设置本地 RC 资源包 参数 szrcpath: 本地 RC 资源包全路径文件夹名称 返回值 注意一般, 如果 RC 文件夹和当前调用 OCX 的程序在同一个目录下, 则不必调用这个函数 否则, 必须在调用 SetFileName 或 SetURL 之前调用它 7. long SetRCURL(LPCTSTR szurl, long lparams);
功能设置网络 RC 资源包 参数 szurl: 网络 RC 资源包全路径文件名称 lparams: 保留 返回值 0 为成功,-1 为失败 注意一般, 如果 RC 文件夹和当前调用 OCX 的程序在同一个目录下, 则不必调用这个函数 否则, 必须在调用 SetFileName 或 SetURL 之前调用它 8. long SaveAs(LPCTSTR szfilename, long breplace); 功能保存当前打开的文件 参数 szfilename: 要保存的路径 breplace: 如果目标文件已经存在, 是否覆盖 返回值 0 为成功,-1 为失败 9. long SaveAsDlg(long lparams); 功能调用系统保存文件对话框, 保存当前打开的文件 参数 lparams: 非 0 表示覆盖已经存在的文件,0 不覆盖 返回值 0 为成功,-1 为失败 1 long CloseFile(); 功能关闭打开的文件 返回值 11. long First(); long Last(); long Next(); long Prev(); 功能显示当前打开的 PDF 文件的第一页 最后一页 下一页 前一页 返回值 12.long SetViewType(long viewtype); 功能设置当前显示模式 参数
viewtype: 1 为单页显示,2 为多页显示, 3 为翻页显示 返回值 13.long InvalidateView(BOOL bclear); 功能刷新控件 参数 返回值 14.long ShowOutline(BOOL bshow); 功能设置目录是否显示 参数 bsho: 非 0 为显示,0 为不显示 返回值 15. long GetPageSize( long lpage, long lx, long ly); 功能获取指定页面宽和高 参数 lpage: 指定的页面, 从 1 开始 lx: 接收宽度的参数 ly: 接收高度的参数 返回值 -1 为失败 否则, 会返回一个长整形, 值为 100000* 宽度 + 高度 假如返回 102400768, 则宽是 1024, 高是 768. 这个主要是处理网页调用的情况 注意这里的 lx 和 ly 是个指针, 如果是在 C++ 里面调用, 则形式如下 : long x,y; long lret = -1; lret = GetPageSize(1,&x,&y); x 和 y 就是宽和高, 同时通过 lret 也可以计算宽和高 如果是在 web 里面调用, 则只能通过返回值取得宽和高, 并且 lx 和 ly 必须给 0: var lret = GetPageSize(1,0,0); var x=lret/100000; var y=lret-x; 16. long PrintPDF(LPCTSTR filename, LPCTSTR password, long Level, long lparams); 功能
打印当前 PDF 文件 参数 filename: 保留, 必须置为空 password: 保留, 必须置为空 Level: 打印质量 (1,2,3, 质量依次递增 ) lparams: 0 表示原始尺寸打印 ;1 表示缩放到 A4 打印 返回值 -1 为失败 注意调用这个方法打印当前的 PDF 文件, 可以在弹出的打印对话框中选择打印机和页面范围 调用示例如下 : PrintPDF(,,3,1); 17. long PrintNoDlg(LPCTSTR szprinter, long lfrom, long lto, long lcopy, long Level, long lparams); 功能后台打印 ( 不弹出打印对话框 ) 当前 PDF 文件 ( 该功能可定制, 标准版不支持该功能 ) 参数 szprinter: 打印机名称 lfrom: 起始页 lto: 终止页 lcopy: 打印份数 Level: 打印质量 (1,2,3, 质量依次递增 ) lparams: 0 表示原始尺寸打印 ;1 表示缩放到 A4 打印 返回值 -1 为失败 注意调用这个方法静默打印当前的 PDF 文件 调用示例如下 : PrintNoDlg( Printer,1,1,1,3,1); 18.long NextView(); 功能返回到查看历史中的下一页 参数无返回值 0 为失败, 大于 0 表示成 19. long PrevView(); 功能返回到查看历史中的上一页 参数无
返回值 0 为失败, 大于 0 表示成 2 long SearchStr(LPCTSTR strkey, long bcasesensitive, long ballpages); 功能在当前打开的文件中查找指定字串 参数 strkey: 要查找的字串 bcasesensitive: 是否区分大小写,0 不区分,1 区分 ballpages: 保留 返回值 21. long SearchNext(); 功能查找下一个 参数无返回值 22. long SearchPrev(); 功能查找上一个 参数无返回值 23. long FitWidth(); 功能适合宽度显示 参数无返回值 24. long FitHeight(); 功能适合高度显示 参数无返回值
25. long RotateLeft(); 功能左转 90 度显示 参数无返回值 26. long RotateRight(); 功能右转 90 度显示 参数无返回值 27. long SetZoomMode (long lzoommode,floatfstep); 功能参数 lzoommode: 1 为放大模式,2 为缩小模式,0 为取消缩放模式 fstep: 每次缩放的增量 ( 或减量 ),5 表示每次放大 ( 或减少 )50% 返回值 28. long SetSelectMode(long mode); 功能设置当前是否为选择模式 参数 mode: 0 为取消选择模式, 非 0 设置成选择模式, 并自动切换成单页浏览模式 返回值 0 为成功,-1 为失败 29. long AddImage(LPCTSTR szimage, long x, long y, long w, long h long transparency, long rotate, long lparams); 功能添加图片水印 ( 该功能可定制, 标准版不支持该功能 ) 参数 szimage: 网络地址图片 x: 横坐标,PDF 显示区域左上角为原点 y: 纵坐标 w: 宽度 h: 高度
transparency: 透明度 (0--100),0 代表完全透明,100 代表完全不透明 rotate: 旋转角度 lparams: 保留 返回值为该水印索引 index, 在调用 DeleteWaterMark() 时使用 大于或等于 0 表示成功,-1 表示失败,-2 表示水印超过 256 个 3 long AddText(LPCTSTR sztext, long x, long y, long transparency, long rotate, long lparam); 功能添加文字水印 ( 该功能可定制, 标准版不支持该功能 ) 参数 sztext: 文字水印内容 x: 横坐标,PDF 显示区域左上角为原点 y: 纵坐标 transparency: 透明度 (0--100),0 代表完全透明,100 代表完全不透明 rotate: 旋转角度 lparam: 保留 返回值为该水印索引 index, 在调用 DeleteWaterMark() 时使用 大于或等于 0 表示成功,-1 表示失败,-2 表示水印超过 256 个 注意调用此函数须先调用 SetFont() 设置字体信息 31. long DeleteWaterMark(long index, long lparam); 功能删除图片水印 ( 该功能可定制, 标准版不支持该功能 ) 参数 index: 图片水印索引 : 调用 AddImage() AddText() 成功的返回值 lparam: 保留 返回值 0 为成功,-1 为失败,-2 表示水印超过 256 个 32. long SetCode(LPCTSTRszCode); 功能设置注册码 参数 szcode: 注册码 返回值保留 33. long SetFullscreen(long bfullscreen, long lparams); 功能全屏显示
参数 bfullscreen: 是否全屏显示 lparams: 保留 返回值 0 为成功 34. long SetFont(LPCTSTR szname, long lsize, long lfstclr, long lendclr, long bitalic, long bunderline, long bstrikeout, long lparams); 功能设置水印字体信息 参数 szname: 字体名称 lsize: 字体大小 lfstclr: 字体的渐变色开始色彩 lendclr: 字体的渐变色结束色彩 bitalic: 字体是否为倾斜 bunderline: 字体是否带下划线 bstrikeout: 字体是否带删除线 lparams: 保留 返回值 0 为正确, 其他失败 二 属性 1. PageIndex 当前页码, 介于 1 和最大页码之间 2. MaxPage 当前 PDF 的总页数, 此参数只读 3. Zoom 当前显示的缩放比例,125~4 之间的一个实数 整理日期 :2011-04-28 作者 : 西安优看电子科技有限公司如果您有任何问题或建议, 请和我们联系 : Email:YCanPDF@gmail.com QQ:329969959 网站 :http://www.ycanpdf.cn