基本信息:
产品名称 : PDF阅读控件单机版
版本号: 4.4.3.19
更新日期 : 2017-11-08
联系方式:
电话:400-092-1680
手机: 15810008526
QQ: 329969959
EMail:sales@ycanpdf.cn
优看PDF阅读控件单机版专门针对Windows开发人员设计。开发者只需调用几个接口,就可以在程序中轻松实现对本地PDF文件进行显示、打印等操作;它支持PDF所有版本,全面支持各种文字的PDF文件,可以很方便的集成到现有系统中。我们为开发者准备了详尽的帮助文件,并提供源代码例程,为开发者提供全程技术协助,让开发者更为迅速稳定地在自己产品中集成PDF阅读功能。
其突出特点表现在:
内置PDF解析引擎,可独立运行,无需其他任何特定PDF软件支持;
可在Windows系列操作系统下运行,支持VC、VB、DELPHI等任何可以使用标准控件的开发语言;
出色的稳定性。经过多年的努力,YCanPDF产品已经应用于金融、医药卫生、信息安全、档案管理、隶属地方和部队的科研院所等领域,其稳定性和产品品质得到了广泛认可.
主要功能:
1. 支持打开本地和内存流PDF文件
2. 支持密码和证书加密的PDF
3. 兼容所有版本PDF文件(PDF1.3、PDF1.4、PDF1.5、PDF1.6、PDF1.7)
4. 支持各种语系PDF(简体、繁体、日、韩等)
5. 支持缩放、旋转、翻页、连续页、对开、动画翻页方式的浏览
6. 支持全屏、退出全屏功能
7. 支持查找和全文检索,支持多个关键字的与、或、非逻辑检索
8. 支持文字选择、屏幕截图
9. 支持后台静默打印(增强版)
10. 支持在显示的时候添加各种自定义水印(增强版)
支持所有windows操作系统,可以在任何支持标准OCX的开发语言里面使用.
VS2008对话框程序为例:
1. VS2008创建MFC对话框程序
2. 对话框界面右键菜单选择"Insert Activex Control...",弹出界面选择"PDFView Control",并确定,插件添加到对话框界面,可根据实际需求拖动位置与大小
3. 然后鼠标在插件上右键菜单选择"Add Variable",定义CPdfviewctrl1类型变量m_pdf(可自行定义)确定,生成Pdfviewctrl1.h和CPdfviewctrl1.cpp
4. 相关模块通过变量m_pdf调用接口
功能:
打开本地硬盘上的PDF文件
参数
filename : 文件全路径
password : 文件密码,如果文件没有密码,设置为""
lParams : 保留,设置为0
返回值
0 表示成功,-1 表示文件出错,-2 表示这个文件加密,-3 表示文件页面页数为0
功能:
调用系统对话框,打开本地硬盘上的PDF文件
参数
lParams: 保留,设置为0
返回值
0 表示成功,-1 表示文件出错,-2 表示这个文件加密,-3 表示文件页面页数为0
功能:
打开内存中的 PDF 文件(该模式不支持web 方式调用)
参数
pBuf: PDF文件流
len: 内存流长度
szPassword : 文件密码,如果文件没有密码,设置为""
返回值
0 表示成功,-1 表示文件出错,-2 表示这个文件加密,-3 表示文件页面页数为0
示例代码:
FILE *fp = fopen(strFile,"rb");
char *pBuf = null;
if (fp) {
fseek(fp,0,SEEK_END);
longlen =ftell(fp);
fseek(fp,0,SEEK_SET);
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);
}
...
...
if(pBuf){
free(pBuf);
pBuf = null;
}
功能:
打开base64编码的内存PDF文件
参数
lpBuf: 二进制内存流(base64编码),必须要是完整的 PDF 文件
len: 内存流长度
lpPWD: 文件密码,如果文件没有密码,设置为""
lParams: 保留,设置为0
返回值
0 表示成功,-1 表示文件出错,-2 表示这个文件加密,-3 表示文件页面页数为0
功能:
设置本地 RC 资源包
参数
szRCPath : 本地 RC 资源包全路径
返回值
0 表示成功,-1 表示设置RC路径过长(限制260字符长度)
功能:
保存当前打开的文件到本地
参数
szFileName: 保存到本地文件路径
bReplace : 目标文件存在是否覆盖(0:不覆盖,1:覆盖)
返回值
0 表示成功,-1 表示失败
功能:
调用系统保存文件对话框,保存当前打开的文件
参数
lParams: 保留,设置为0
返回值
0 表示成功,-1 表示失败
功能:
关闭当前打开文件
参数
无
返回值
0 表示成功,-1 表示失败
功能:
跳转到当前打开的PDF文件的第一页、末一页、下一页、前一页
参数
无
返回值
0 表示成功,-1 表示失败
功能:
关闭当前打开文件
参数
viewType : 1 为单页显示,2 为连续页显示,3为翻页动画显示,4为对开显示
返回值
0 表示成功, -1表示文件未打开, -2表示输入viewType错误
功能:
刷新控件
参数
bClear: 保留,设置为0
返回值
0 表示成功
功能:
控制目录是否显示
参数
bShow: 非 0 为显示,0 为不显示
返回值
0 表示成功
功能:
获取当前打开文件指定页面宽和高
参数
lPage: 指定的页面,从 1 开始
lx: 接收宽度的参数
ly: 接收高度的参数
返回值
成功则会返回一个长整形,值为100000*宽度+高度
假如返回102400768,则宽是1024,高是768.这个主要是处理网页调用的情况,失败则返回-1
说明
这里的 lx 和ly是个指针,如果是在C++里面调用,则形式如下:
longx,y;
longlRet = -1;
lRet = GetPageSize(1,&x,&y);
x 和 y 就是宽和高,同时通过lRet也可以计算宽和高。如果是在 web 里面
调用,则只能通过返回值取得宽和高,并且 lx 和ly必须给 0:
varlRet = GetPageSize(1,0,0);
var x=lRet/100000;
var y=lRet-x;
注意
此接口为老版本接口,可用GetPageOriWidth和GetPageOriHeight替换
功能:
获取当前打开文件指定页面原始宽度
参数
lPage: 指定的页面,从 1 开始
返回值
成功返回页面原始宽度,-1为失败
功能:
获取当前打开文件指定页面原始高度
参数
lPage: 指定的页面,从 1 开始
返回值
成功返回页面原始宽度,-1为失败
功能:
打印当前 PDF 文件
参数
filename : 保留,必须置为空
password : 保留,必须置为空
Level: 打印质量(1,2,3,4,5质量依次递增)
lParams: 0 表示原始尺寸打印;1 表示缩放到 A4 打印
返回值
0 表示成功,-1 表示失败
功能:
后台打印(不弹出打印对话框)当前 PDF 文件
参数
strFilePath: 默认打印文件路径(设置为"",则必须先打开文件,否则默认打开此路径文件)
szPrinter : 打印机名称
lFrom: 起始页
lTo: 终止页
lCopy: 打印份数
Level: 打印质量(1,2,3,4,5质量依次递增)
lParams: 0 表示原始尺寸打印;1 表示缩放到 A4 打印
返回值
0 表示成功,-1 表示失败
示例代码
PrintNoDlg("文件路径","Printer",1,1,1,5,1);
功能:
返回到查看历史中的下一页
参数
无
返回值
0 为失败,大于 0 表示成功
功能:
返回到查看历史中的上一页
参数
无
返回值
0 为失败,大于 0 表示成功
功能:
当前打开文件中查找指定字串
参数
strKey : 要查找的字串。
bCaseSensitive: 是否区分大小写,0 不区分,1 区分
bAllPages: 保留,设置为0
返回值
1 表示成功,其它表示失败(失败有相关错误提示弹出)
功能:
查找关键字下一个
参数
无
返回值
1 表示成功,其它表示失败(失败有相关错误提示弹出)
功能:
查找关键字上一个
参数
无
返回值
1 表示成功,其它表示失败(失败有相关错误提示弹出)
功能:
当前打开文件适合宽度显示
参数
无
返回值
1 表示成功,-1表示失败
功能:
当前打开文件适合高度显示
参数
无
返回值
1 表示成功,-1表示失败
功能:
页面左转 90 度显示
参数
无
返回值
1 表示成功,-1表示失败
功能:
页面右转 90 度显示
参数
无
返回值
1 表示成功,-1表示失败
功能:
是指当前缩放模式
参数
lZoomMode : 1 为放大模式,2 为缩小模式,0 为取消缩放模式
fStep: 缩放模式下每次递增或者递减缩放率
返回值
0 表示成功,-1表示失败
功能:
设置当前阅读模式
参数
Mode: 0 为阅读模式,1选择文字模式,2截图模式,3文字区域坐标选择模式
返回值
0 表示成功,-1表示失败
功能:
设置全屏或非全屏显示
参数
bFullscreen: 1为全屏显示,0为非全屏显示
lParams: 保留
返回值
0 表示成功
功能:
获取当前安装控件版本
参数
无
返回值
返回当前安装控件版本号。失败返回为""
功能:
设置当前打开文件页面缩放率
参数
propVal: 设置缩放率
返回值
无
功能:
设置水印字体信息
参数
szName: 字体名称。
lSize: 字体大小。
lFstClr: 字体的渐变色开始色彩。
lEndClr: 字体的渐变色结束色彩。
bItalic: 字体是否为倾斜。
bUnderline: 字体是否带下划线。
bStrikeOut: 字体是否带删除线。
lParams: 保留
返回值
0表示成功
说明
a. 此接口为增强版本功能
功能:
添加图片水印
参数
szImage: 网络地址图片
x: 横坐标,PDF显示区域左上角为原点
y: 纵坐标
w: 宽度
h: 高度
transparency: 透明度(0--100),0代表完全透明,100代表完全不透明
rotate: 旋转角度
lParams: 0为显示水印,1为打印水印
返回值
返回该水印索引index,在调用DeleteWaterMark()时使用
大于或等于 0 表示成功,-1 表示失败
说明
a. 此接口为增强版本功能
功能:
添加文字水印
参数
szText: 文字水印内容
x: 横坐标,PDF显示区域左上角为原点
y: 纵坐标
transparency: 透明度(0--100),0代表完全透明,100代表完全不透明
rotate: 旋转角度
lParam: 0为显示水印,1为打印水印
返回值
返回该水印索引index,在调用DeleteWaterMark()时使用
大于或等于 0 表示成功,-1 表示失败
说明
a. 此接口为增强版本功能
功能:
删除文字或者图片水印
参数
Index: 图片水印索引:调用AddImage()、AddText()成功的返回值
lParam: 保留
返回值
0表示成功, 其它表示失败
说明
a. 此接口为增强版本功能
功能:
打开文件前相关数据初始化设置
参数
InitType: 设置初始化类型,-1:适合高度,0:适合宽度,0.125~64:自定义缩放率
strParams: 保留,设置为""
返回值
0表示成功
功能:
全文检索关键字
参数
strFilePath: 默认打开文件路径(如果查找当前已打开文件,则设置为"")
strSearchData: 关键字(支持与或运算。如:A&&B&&C或者A||B||C或者A)
nFromPage: 查选关键字起始页
nToPage: 查询关键字终止页面
lParams: 保留,设置为0
返回值
"-1"为文件打开失败或者文件为打开,"-2"为输入关键字出错,"-3"为输入页码范围出错,"-4"表示关键字未找到,反之则返回查询到xml数据
说明
a. 此接口为增强版本功能
功能:
根据坐标获取对应PDF文件的数据
参数
strFilePath: 默认打开文件路径(如果查找当前已打开文件,则设置为"")
nPage: 获取数据对应页面页数
left: 对应页面坐标left
top: 对应页面坐标top
right: 对应页面坐标right
bottom: 对应页面坐标bottom
strbmpsavepath: 对应坐标如果为图片,则保存在此目录下(文件根目录,不带文件名)
lParams: 保留,设置为0
返回值
"-1"为失败,""为当前区域没有文字或者为图片(图片自动保存在strbmpsavepath下)
说明
a. 此接口为增强版本功能
功能:
截取屏幕保存图片到本地
参数
lParams: 保留,设置为0
返回值
0表示成功,-1表示禁止截屏,
功能:
设置回调
参数
DoEvent: 回调函数原型句柄
DoNpHandle: 回调动作所在类句柄
返回值
0表示成功
说明
回调函数原型:
//消息类型,参数个数,数据,回调动作所在类句柄
long CALLBACKOnDoEvent(long msgid,longlParams,char* wParams,longDoNpHandle);
1. 页面页数改变消息
回调对应msgid为0
2. 选择区域完成消息
回调对应msgid为2
1. PageIndex 当前页码,介于1和最大页码之间
2. MaxPage 当前 PDF 的总页数,此参数只读
3. Zoom 当前显示的缩放比例,0.01~64 之间的一个实数
1. void OnPageChanged(long nCurPage, long nMaxPage)
功能
页面改变事件触发
参数
nCurPage: 当前文档页面页数
nMaxPage: 当前文档页面总数
2. void OnSelectArea(long nPage, long left, long top, long right, long bottom)
功能
页面改变事件触发
参数
nPage: 数据所在页面页数
left,top,right,bottom: 所在页面获取数据坐标