优道PDF阅读控件使用帮助

功能概述

优道PDF阅读控件(UUDoc PDF Control)是一款支持反截屏功能的PDF文档数字版权保护控件,同时支持对PDF和XPS文档的在线加密保护,通过简单的属性设置即可完成对文档的复制、打印和截图授权。控件支持内存方式加载文档和加密传输方式远程加载文档,控件小巧可独立运行,不需要另外再安装其它庞大的PDF阅读器。

控件采用ActiveX技术进行开发,自带有换页、查找、缩放、拖拽、旋转、适应页面、适应页宽等常用文档浏览器的功能,可以轻松的嵌入到各类网站、Web应用系统和桌面应用程序当中,能有效的和您目前的应用进行无缝集成,给您最强有力的文档阅读和数字版权保护功能支持。

运行环境

服务器端:支持Windows和Linux操作系统,支持任何的服务器编程语言,例如asp,asp.net,php,java,python,ruby等

控件客户端支持的操作系统:WindowsXP/2003/2008/Vista/Win7

支持32位及64位操作系统

支持启用ActiveX功能的IE浏览器进行浏览

网页中嵌入控件

您可以参考我们提供的演示文件在网页中嵌入优道PDF阅读控件:

控件的PlogId为:UdPdf.Viewer.1

控件的ClassId为:8C3D3705-1100-4D52-9D04-7E9A435CE220

   
    <object id="pdfCtl" width="90%" height="500"
         classid="CLSID:8C3D3705-1100-4D52-9D04-7E9A435CE220"
         codebase="UdPdfDown.exe#version=1,7,0,0">
         <param name="License" value="" />
         <param name="FileId" value="0" />
         <param name="Encryped" value="1" />
         <param name="HashKey" value="3CE59E850E2C590AFD6E4D3516BA3F1B" />
         <a href="UdPdfSetup.exe">请先安装优道PDF阅读控件</a>
        </object>
    

其中UdPdfDown.exe为控件的自动下载程序(从www.uudoc.com下载),UdPdfSetup.exe为控件的安装程序。

判断控件是否安装:


    <script type="text/javascript"> 
        window.onload = function(){
            var obj;
            try{
                obj=new ActiveXObject("UdPdf.Viewer.1");
            }catch(e){}
            if(obj == null){
                alert("PDF控件没有安装,确定后转到安装界面")
	        location.href="install.htm"
            }
            else
                alert("PDF控件已经安装了");
        }
    </script>
    

属性的设置示例:

   
    <script type="text/javascript">
        //根据复选框判断是否显示工具条
        function f_toolbarVisible() {
            document.getElementById("pdfCtl").ToolbarVisible 
            = document.getElementById("chkToolbarVisible").checked
        }
    </script>
    

方法的调用示例


    <script type="text/javascript"> 
        //放大操作
        function f_zoomIn() {
            document.getElementById("pdfCtl").ZoomIn();
        }
    </script>
    

事件的捕捉示例:


    <script type="text/javascript" event="OnReady()" for="pdfCtl">  
        document.getElementById("info").innerHTML = "OnReady事件,文档加载完成"
    </script>
    

服务器文档加密

使用优道科技提供的文档加密工具UdPdfTools.exe对文档进行加密,加密后的文件会在原扩展名前加上en前缀。加密工具支持命令行方式。

加密时可以指定加密密码,加密后需要将密码的哈希值填写到控件的HashKey参数当中

将加密后的文件上传到服务器上,在控件页面根据所传递的参数将需要的加密文件读取并进行输出

若不想别人通过页面获取到参数的配置情况,可以使用此工具对属性配置内容进行加密,原配置字符串使用"&"分隔的键值对格式,多个参数之间使用"|"进行分隔,支持相应的属性或方法名称

也可在服务器上调用加密命令行工具直接完成普通文档文件到加密文件的转换,命令行使用说明:

   
        参数说明:
          -input <file>           要进行加密保护的PDF文件名
          -output <folder>        指定加密后的文件输出目录
          -password <password>    设置加密使用的密码,会返回加密过的哈希码,可放在PDF控件的HashKey属性当中
          -encrypt <config>       创建使用"&"进行分隔的加密字符串,可用在PDF控件的EncryptConfig属性和EncryptExecute方法中使用
          -help                   显示UdPdfTools.exe的使用帮助信息

        使用示例:
          UdPdfTools -input c:\test.pdf -output "c:\hello world" -password 123abc

          以下是对属性配置进行加密,加密后的字符串可以放在EncryptConfig属性当中
          UdPdfTools -encrypt "EnableCopy=true&EnablePrint=false&ToolbarVisible=false"

          以下是对方法进行加密,支持"|"分隔的多个参数,加密后的字符串可以用EncryptExecute(string)函数来执行
          UdPdfTools -encrypt "LoadFromWeb&sample.asp|123456"

      

ActiveX控件的FileId会被提交回服务器,可以根据该值输出不同的文件,以下是C#的服务器ASP.NET示例代码,也可方便的用其它语言编写:


        protected void Page_Load(object sender, EventArgs e)
        {
            if (Request.Form["uudoc_getfile"] == "1")//如果是提交请求文件
            {
                //根据文件ID获取不同的加密文件或原始文件,需要根据实际情况编写自己的业务逻辑
		if (Request.Form["uudoc_encrypted"] == "1")//是否使用加密读取方式
		{
		    //读取加密过的PDF文件                	
                    Response.WriteFile(Server.MapPath("upload/" + Request.Form["uudoc_fileid"] + ".enpdf"));
		}
		else
		{
		    //读取原始PDF文件
                    Response.WriteFile(Server.MapPath("upload/" + Request.Form["uudoc_fileid"] + ".pdf"));
		}
                Response.End();
            }
        }
    

提交的参数说明:

参数名称参数说明
uudoc_getfile1表示开始从后台读取文件
uudoc_fileid文件Id值,用来判断要读取的文件名称,对应前端控件设置的FileId属性值
uudoc_encrypted1表示采用的是加密文件读取方式

 

控件属性

属性名称类型属性说明
Width整数控件区域宽度
Height整数控件区域高度
License字符获取或设置控件的注册码信息
HashKey字符获取或设置密码的MD5 Hash值,可以用UdPdfTools.exe命令行工具加-password <password>获取
FileId字符获取或设置文件的ID值,该值会提交回服务器端
Encrypted布尔获取或设置是否采用加密方式加载文档,默认为TRUE,加载加密过的文档;若设置为FALSE,则加载原始未加密的文档文件
EnableCapture布尔获取或设置是否允许进行屏幕截图,默认为TRUE
EnableCopy布尔获取或设置是否允许复制文档内容,默认为TRUE
EnablePrint布尔获取或设置是否允许打印文档,默认为TRUE
EnablePrint布尔获取或设置是否允许打印文档,默认为TRUE
ToolbarVisible布尔获取或设置是否显示文档工具栏,默认为TRUE
HasBookmark布尔获取文档是否含有书签
BookmarkVisible布尔获取或设置是否显示书签栏,默认为TRUE
DocBgColor颜色获取或设置文档的背景颜色
ShowContextMenu布尔获取或设置是否显示右键上下文菜单,默认为TRUE
TotalPage整数只读属性,获取文档的总页码
CurrentPage整数只读属性,获取文档的当前页码
DefaultZoom浮点获取或设置文档打开时的默认缩放比例,默认为-1,表示适合内容,-2表示适合宽度,100表示实际大小显示
DefaultDisplayMode整数获取或设置文档打开时的默认显示模式,默认为0,1为单页显示,4为连续显示
EncryptConfig字符获取或设置文档打开时的加密配置字符串,加密需要使用UdPdfTools.exe命令行工具,参看UdPdfTools.exe相关说明
IsReady布尔只读属性,获取文档是否已加载完成,状态已就绪

 

控件方法

方法名称参数说明方法说明
void Zoom(float zoom)zoom:缩放比例,实际大小为100.00对文档进行指定比例缩放
void ZoomIn()无放大文档视图
void ZoomOut()无缩小文档视图
void ZoomFitWidth()无以适应宽度方式显示文档
void ZoomFitPage()无以适应页面大小方式显示文档
void ZoomActual()无以实际大小显示文档
float GetZoom()无获取文档的缩放比例
void RotateLeft()无左旋转90°,即逆时针旋转
void RotateRight()无右旋转90°,即顺时针旋转
void FindNext(string findText)findText:要搜索的内容查找下一个字符
void FindPrev(string findText)findText:要搜索的内容查找上一个字符
void GoToPage()无进行换页操作
void GoToPageNo(int no)no:要转到的页码转到指定的页码
void GoToNextPage()无转到下一页
void GoToPrevPage()无转到上一页
void GoToFirstPage()无转到第一页
void GoToLastPage()无转到最后一页
void ToggleFullScreen()无全屏幕显示模式转换,进入或退出全屏状态
void Print()无打印当前文档
void LoadFromWeb(string url,string password)url:加载地址,可为空,为空表示当前页
以http开头则为绝对路径,否则为相对路径
password:PDF文件自带加密密码,可选
向WEB页面提交POST请求加载文档文件
提交参数为uudoc_getfile=1和uudoc_fileid
void LoadFromData(Byte[] pData,string password)pData:字节数组指针
password:PDF文件自带加密密码,可选
从字节数组中加载文档
void LoadFromFile(string fileName,string password)fileName:文件名
password:PDF文件自带加密密码,可选
根据文件名加载指定文档
int GetErrorCode()无获取异常的错误码。详见错误码说明
int GetFileSize()无获取文档文件的字节大小
void EncryptExecute()无执行加密字符定义的命令,具体参见UdPdfTools.exe相关说明
void Close()无关闭打开的文档
void SetWaterFont(string fontName,
long fontSize,long fontColor,
bool bold,bool italic,
bool underline,bool strikeOut)
fontName:字体名称
fontSize:字体大小,单位pt
fontColor:字体颜色值
bold:是否粗体显示(可选)
italic:是否斜体显示(可选)
underline:是否添加下划线(可选)
strikeOut:是否添加删除线(可选)
设置水印文本的字体格式
long AddWaterText(string text,long x,long y,
long transparent,long rotate,
long repeatX,long repeatY)
text:水印文字
x:水印位置的横坐标
y:水印位置的纵坐标
transparent:透明度(0-100),100为完全透明(可选)
rotate:逆时针旋转角度(可选)
repeatX:横轴重复显示的间距,0不重复(可选)
repeatY:纵轴重复显示的间距,0不重复(可选)
添加文字水印,返回值为所添加水印的索引号
long RemoveWaterMark(long index)index:要删除的水印的索引号删除指定的水印,成功返回0

 

控件事件

事件名称参数说明事件说明
OnReady()无文档加载完成触发该事件
OnDownload(int totalSize,int downSize)totalSize:总共要下载的文件大小;downSize:已经下载的字节大小文档下载过程中触发该事件
OnPageChanged(int currentPage,int totalPage)currentPage:当前页码;totalPage:总页码换页时触发该事件
OnZoom(float zoomScale)zoom:缩放比例缩放操作时候触发该事件
OnError(int errorCode)errorCode:错误码。详见以下错误码说明出现异常时触发该事件

 

错误码说明

错误码值异常说明
0一切正常
1在虚拟机或远程桌面中打开文档
2使用非HTTP访问模式
3加载文档安全组件失败
4文件格式错误
5加载文件失败

 

其它