YCabPDF PDFView控件说明文档

1.当前版本

  当前版本号: 4.4.3.19

  最新版下载地址:http://www.ycanpdf.cn/download/pages/pdfdrm/windows.html

2.简介

  PDFView插件是西安优看电子科技有限公司(http://www.ycanpdf.cn)开发的一款阅读PDF文件的产品,可以在任何支持标准OCX的开发语言里面使用,其主要功能如下:

  1. 支持打开本地PDF(无需上传)和网络PDF(文件路径可base64加密)
  2. 支持打开文件内存流(内存流可base64加密)
  3. 支持加密的PDF(包括PKCS7证书加密)
  4. 兼容所有版本PDF文件(PDF1.3、PDF1.4、PDF1.5、PDF1.6、PDF1.7)
  5. 除了支持拉丁语系PDF,还全面支持简体、繁体、日、韩等亚洲语系PDF
  6. 支持显示第一页、最后一页、下一页、前一页、指定页显示
  7. 支持单页、连续页、对开、动画翻页方式的浏览
  8. 支持查看浏览PDF历史中的上一视图、下一视图
  9. 支持顺时针、逆时针旋
  10. 支持适应宽度、适应高度、指定比例缩放浏览等
  11. 支持目录功能,目录可隐藏
  12. 支持全屏、退出全屏功能
  13. 支持单个和全文查找(可定制,标准版不提供该功能)PDF中的字符
  14. 支持另存为(可屏蔽此功能)
  15. 支持文字选择、截图、文字区域坐标选择模式
  16. 支持打印,以及后台打印(可定制,标准版不提供该功能)
  17. 支持在显示的时候添加各种自定义水印(可定制,标准版不提供该功能)
  18. 支持本地和在线文档防扩散功能,可控制文件扩散,文件阅读次数和时间,打印次数和时间等(可定制,标准版不提供该功能)
  19. 支持快速web PDF文件阅读(可定制,标准版不提供该功能)

3.使用环境

  支持所有windows操作系统,可以在任何支持标准OCX的开发语言里面使用(Client/Server和Brower/Server),注意:由于部分浏览器和部分浏览器的高版本不支持插件技术,所以此插件暂不能支持

4.集成示例代码

vs2008创建mfc对话框程序

  Client/Server Code(vs2008对话框程序为例)

   

  

  对话框界面右键菜单选择"Insert Activex Control...",弹出界面选择"PDFView Control",并确定,插件添加到对话框界面,可根据实际需求拖动位置与大小

   

  然后鼠标在插件上右键菜单选择"Add Variable",定义CPdfviewctrl1类型变量m_pdf(可自行定义)确定,生成Pdfviewctrl1.h和CPdfviewctrl1.cpp 

     

  相关模块通过变量m_pdf调用接口

    

Brower/Server Code

var YCanPDF = null;   // onload中调用init()成功后,使用此变量调用相关接口
function init(){
  if (window.ActiveXObject||"ActiveXObject" in window){//IE
     try {
          var Eobj = new ActiveXObject("PDFVIEW.PDFViewCtrl.1");
     }catch(e){
       document.getElementById("ycan").innerHTML = "您尚未安装控件,请安装...";
     }
     YCanPDF  = document.getElementById("YCanPDFIE");
     var CurVer  = YCanPDF.GetVersion();
     if(CheckCurVersion(CurVer)){
        alert("控件有更新,请下载更新");
        document.getElementById("ycan").innerHTML = "点这里进行更新安装...";
     }
  }else{//非IE
     var plugin = navigator.plugins["npPDFView dll"];
     if(plugin==undefined){
       alert("插件未注册!");
       document.getElementById("ycan").innerHTML = "您尚未安装PDF控件,请安装...";
     }else{
       YCanPDF  = document.getElementById("YCanPDFNOTIE");
       var CurVer  = YCanPDF.GetVersion();
       if(CheckCurVersion(CurVer)){
          alert("控件有更新,请下载更新");
          document.getElementById("ycan").innerHTML = "点这里进行更新安装...";
        }
     }
  }
}

5. 方法

1.long SetFileName(const char* filename, const char* password, long lParams)

功能:
         打开本地硬盘上的PDF文件
参数
         filename : 文件全路径
         password : 文件密码,如果文件没有密码,设置为""
         lParams : 保留,设置为0
返回值
         0 表示成功,-1表示文件出错,-2表示这个文件加密,-3表示文件页面页数为0

2.long OpenFileDlg(long lParams)

功能:
         调用系统对话框,打开本地硬盘上的PDF文件
参数
         lParams : 保留,设置为0
返回值
         0 表示成功,-1 表示文件出错,-2表示这个文件加密,-3表示文件页面页数为0

3.long SetURL(const char* szFilePath, const char* szPassword)

功能:
         打开服务器端 PDF 文件,直接从内存中打开,即文件不落地。支持绝对路径
参数
         szFilePath : 文件的 URL 路径
         szPassword : 文件密码,如果文件没有密码,设置为""
返回值
         0 表示成功,-1 表示文件出错,-2 表示这个文件加密,-3 表示文件页面页数为0

4.long OpenMem(short* pBuf, long len, const char* password)

功能:
         打开内存中的 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);
            long len =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;
         }     

5.long OpenMemEx(const char* lpBuf, long len, const char* lpPWD, long lParams)

功能:
         打开base64编码的内存PDF文件
参数
         lpBuf : 二进制内存流(base64编码),必须要是完整的 PDF 文件
         len : 内存流长度
         lpPWD : 文件密码,如果文件没有密码,设置为""
         lParams : 保留,设置为0
返回值
         0 表示成功,-1 表示文件出错,-2 表示这个文件加密,-3 表示文件页面页数为0

6.long SetRCPath(const char* szRCPath)

功能:
         设置本地 RC 资源包
参数
         szRCPath : 本地 RC 资源包全路径
返回值
         0 表示成功,-1 表示设置RC路径过长(限制260字符长度)

7.long SetRCURL(const char* szRCPath, long lParams)

功能:
         设置网路 RC 资源包
参数
         szRCPath : 服务器端 RC 资源包全路径
返回值
         0 表示成功,-1 表示设置RC路径过长(限制260字符长度)

8.long SaveAs(const char* szFileName, long bReplace)

功能:
         保存当前打开的文件到本地
参数
         szFileName : 保存到本地文件路径
         bReplace : 目标文件存在是否覆盖(0:不覆盖,1:覆盖)
返回值
         0 表示成功,-1 表示失败

9.long SaveAsDlg(long lParams)

功能:
         调用系统保存文件对话框,保存当前打开的文件
参数
         lParams : 保留,设置为0
返回值
         0 表示成功,-1 表示失败

10.long CloseFile()

功能:
         关闭当前打开文件
参数
         无
返回值
         0 表示成功,-1 表示失败

11.long First(); long Last(); long Next(); long Prev();

功能:
         跳转到当前打开的PDF文件的第一页、末一页、下一页、前一页
参数
         无
返回值
         0 表示成功,-1 表示失败

12.long SetViewType(long viewType)

功能:
         关闭当前打开文件
参数
         viewType : 1 为单页显示,2 为连续页显示,3为翻页动画显示,4为对开显示
返回值
         0 表示成功, -1表示文件未打开, -2表示输入viewType错误

13.long InvalidateView(long bClear)

功能:
         刷新控件
参数
         bClear : 保留,设置为0
返回值
         0 表示成功

14.long ShowOutline(long bShow)

功能:
         控制目录是否显示
参数
         bShow : 非 0 为显示,0 为不显示
返回值
         0 表示成功

15.long GetPageSize( long lPage, long lx, long ly)

功能:
         获取当前打开文件指定页面宽和高
参数
         lPage : 指定的页面,从 1 开始
         lx : 接收宽度的参数
         ly : 接收高度的参数
返回值
         成功则会返回一个长整形,值为100000*宽度+高度
         假如返回102400768,则宽是1024,高是768.这个主要是处理网页调用的情况,失败则返回-1
说明
         这里的 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;
注意
         此接口为老版本接口,可用GetPageOriWidth和GetPageOriHeight替换

16.long GetPageOriWidth( long lPage)

功能:
         获取当前打开文件指定页面原始宽度
参数
         lPage : 指定的页面,从 1 开始
返回值
         成功返回页面原始宽度,-1为失败

17.long GetPageOriHeight(long lPage)

功能:
         获取当前打开文件指定页面原始高度
参数
         lPage : 指定的页面,从 1 开始
返回值
         成功返回页面原始宽度,-1为失败

18.long PrintPDF(const char* filename, const char* password , long Level, long lParams)

功能:
         打印当前 PDF 文件
参数
         filename : 保留,必须置为空
         password : 保留,必须置为空
         Level : 打印质量(1,2,3,4,5质量依次递增)
         lParams : 0 表示原始尺寸打印;1 表示缩放到 A4 打印
返回值
         0 表示成功,-1 表示失败

19.long PrintNoDlg(const char* strFilePath, const char* szPrinter, long lFrom, long lTo, long lCopy, long Level, long lParams)

功能:
         后台打印(不弹出打印对话框)当前 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);

20.long NextView()

功能:
         返回到查看历史中的下一页
参数
         无
返回值
         0 为失败,大于 0 表示成功

21.long PrevView()

功能:
         返回到查看历史中的上一页
参数
         无
返回值
         0 为失败,大于 0 表示成功

22.long SearchStr(const char* strKey, long bCaseSensitive, long bAllPages)

功能:
         当前打开文件中查找指定字串
参数
         strKey  : 要查找的字串。
         bCaseSensitive : 是否区分大小写,0 不区分,1 区分
         bAllPages : 保留,设置为0
返回值
         1 表示成功,其它表示失败(失败有相关错误提示弹出)

23.long SearchNext()

功能:
         查找关键字下一个
参数
         无
返回值
         1 表示成功,其它表示失败(失败有相关错误提示弹出)

24.long SearchPrev()

功能:
         查找关键字上一个
参数
         无
返回值
         1 表示成功,其它表示失败(失败有相关错误提示弹出)

25.long FitWidth()

功能:
         当前打开文件适合宽度显示
参数
         无
返回值
         1 表示成功,-1表示失败

26.long FitHeight()

功能:
         当前打开文件适合高度显示
参数
         无
返回值
         1 表示成功,-1表示失败

27.long RotateLeft()

功能:
         页面左转 90 度显示
参数
         无
返回值
         1 表示成功,-1表示失败

28.long RotateRight()

功能:
         页面右转 90 度显示
参数
         无
返回值
         1 表示成功,-1表示失败

29.long SetZoomMode (long lZoomMode,float fStep)

功能:
         是指当前缩放模式
参数
         lZoomMode : 1为放大模式,2为缩小模式,0为取消缩放模式
         fStep : 缩放模式下每次递增或者递减缩放率
返回值
         0 表示成功,-1表示失败

30.long SetSelectMode(long mode)

功能:
         设置当前阅读模式
参数
         Mode : 0 为阅读模式,1选择文字模式,2截图模式,3文字区域坐标选择模式
返回值
         0 表示成功,-1表示失败

31.long SetFullscreen(long bFullscreen, long lParams)

功能:
         设置全屏或非全屏显示
参数
         bFullscreen :  1为全屏显示,0为非全屏显示
         lParams :  保留
返回值
         0 表示成功

32.const char* GetVersion()

功能:
         获取当前安装控件版本
参数
         无
返回值
         返回当前安装控件版本号。失败返回为""

33.void SetZoom(float propVal)

功能:
         设置当前打开文件页面缩放率
参数
         propVal : 设置缩放率
返回值
         无

34.long SetFont(const char* szName, long lSize, long lFstClr, long lEndClr, long bItalic, long bUnderline, long bStrikeOut, long lParams)

功能:
         设置水印字体信息
参数
         szName : 字体名称。
         lSize : 字体大小。
         lFstClr : 字体的渐变色开始色彩。
         lEndClr : 字体的渐变色结束色彩。
         bItalic : 字体是否为倾斜。
         bUnderline : 字体是否带下划线。
         bStrikeOut : 字体是否带删除线。
         lParams : 保留
返回值
         0表示成功  
说明
         a. 此接口为增强版本功能

35.long AddImage(const char* 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 : 0为显示水印,1为打印水印
返回值
         返回该水印索引index,在调用 DeleteWaterMark()时使用
         大于或等于 0 表示成功,-1 表示失败
说明
         a. 此接口为增强版本功能

36.long AddText(const char* szText, long x, long y, long transparency, long rotate, long lParam)

功能:
         添加文字水印
参数
         szText : 文字水印内容
         x : 横坐标,PDF显示区域左上角为原点
         y : 纵坐标
         transparency : 透明度(0--100),0代表完全透明,100代表完全不透明
         rotate : 旋转角度
         lParam : 0为显示水印,1为打印水印
返回值
         返回该水印索引index,在调用 DeleteWaterMark()时使用
         大于或等于 0 表示成功,-1 表示失败
说明
         a. 此接口为增强版本功能

37.long DeleteWaterMark(long index, long lParam)

功能:
         删除文字或者图片水印
参数
         Index : 图片水印索引:调用 AddImage()、AddText()成功的返回值
         lParam : 保留
返回值
         0表示成功, 其它表示失败
说明
         a. 此接口为增强版本功能

38.long DldCtrlPDFFile(const char* strPDFFile, const char* strCtrlInfo, const char* strPWD, long PDFFileLen, const char* Params)

功能:
         本地防扩散文件下载
参数
         strPDFFile : PDF防扩散文件在线路径
         strCtrlInfo : PDF文件控制信息,详见(8.防扩散控制信息格式)
         strPWD : 文件密码。如文件无密码,设置为""
         PDFFileLen : 传入当前下载PDF文件大小,0为自动获取
         Params : 保留,设置为""
返回值
         0表示成功, -1表示文件授权失败,-2表示下载文件失败,-3表示取消下载文件
说明
         a. 此接口为防扩散版本功能

39.long OpenCtrlPDF(const char* strPDFFile, const char* strPWD, const char* Params)

功能:
         打开本地下载的防扩散文件
参数
         strPDFFile : 加密后PDF文件
         strPWD : 文件密码。如果没有密码的话设置为空
         Params : 保留,设置为""
返回值
         0表示成功, -1 表示文件出错,-2 表示这个文件加密,-3 表示文件页面页数为0
说明
         a. 此接口为防扩散版本功能

40.long SetCtrlPDFURL(const char* strPDFURL, const char* strPWD, const char* strCtrlInfo, long lParams)

功能:
          打开服务器端防扩散文件
参数
         strPDFURL : 加密后的PDF文件的网络地址
         strPWD : 文件密码。如果没有密码的话设置为空
         strCtrlInfo : 保留,设置为""
         lParams : 保留,设置为""
返回值
         0表示成功, -1 表示文件出错,-2 表示这个文件加密,-3 表示文件页面页数为0, -4表示下载文件失败
说明
         a. 此接口为防扩散版本功能

41.long OPenFileInit(float InitType, const char* strParams)

功能:
         打开文件前相关数据初始化设置
参数
         InitType : 设置初始化类型,-1:适合高度,0:适合宽度,0.125~64:自定义缩放率
         strParams : 保留,设置为""
返回值
         0表示成功

42.const char* SearchWordInPages(const char* strFilePath, const char* strSearchData, long nFromPage, long nToPage, long lParams)

功能:
         全文检索关键字
参数
         strFilePath : 默认打开文件路径(如果查找当前已打开文件,则设置为"")
         strSearchData : 关键字(支持与或运算。如:A&&B&&C或者A||B||C或者A)
         nFromPage : 查选关键字起始页
         nToPage : 查询关键字终止页面
         lParams : 保留,设置为0
返回值
         "-1"为文件打开失败或者文件为打开,"-2"为输入关键字出错,"-3"为输入页码范围出错,"-4"表示关键字未找到,反之则返回查询到xml数据
说明
         a. 此接口为增强版本功能

43.const char* GetFileDatabyRegion(const char* strFilePath, long nPage, long left, long top, long right, long bottom, BSTR strbmpsavepath, long lParams)

功能:
         根据坐标获取对应PDF文件的数据
参数
         strFilePath : 默认打开文件路径(如果查找当前已打开文件,则设置为"")
         nPage : 获取数据对应页面页数   
         left : 对应页面坐标left
         top : 对应页面坐标top
         right : 对应页面坐标right
         bottom : 对应页面坐标bottom
         strbmpsavepath : 对应坐标如果为图片,则保存在此目录下(文件根目录,不带文件名)
         lParams : 保留,设置为0
返回值
         "-1"为失败,""为当前区域没有文字或者为图片(图片自动保存在strbmpsavepath下)
说明
         a. 此接口为增强版本功能

44.long SnapShot(long lParams)

功能:
         截取屏幕保存图片到本地
参数
         lParams : 保留,设置为0
返回值
         0表示成功,-1表示禁止截屏

45.long HttpSetVualue(const char* KeyID, const char* KeyInfo, long lParams)

功能:
         打开或者下载服务器端文件,请求头不全配置
参数
         KeyID : 键值(例如:JSESSIONID)
         KeyInfo : 键值数据
         lParams : 保留,设置为0
返回值
         0表示成功

46.long SetupCallBack(long DoEvent,long DoNpHandle)

功能:
         设置回调
参数
         DoEvent : 回调函数原型句柄
         DoNpHandle : 回调动作所在类句柄
返回值
         0表示成功
说明
         回调函数原型:
         //消息类型,参数个数,数据,回调动作所在类句柄
         long  CALLBACK OnDoEvent(long msgid,long lParams,char* wParams,long DoNpHandle);
         1. 页面页数改变消息
            回调对应msgid为0
         2. 选择区域完成消息
            回调对应msgid为2

 47.long SetFastUrl(const char* pageUrl, long maxPage, long lParams)

功能:
         快速打开服务器端文件
参数
         pageUrl : 文件根路径
         maxPage : 文件总页数
         lParams : 保留,设置为0
返回值
         0表示成功, -1 表示文件出错,-2 表示这个文件加密,-3 表示文件页面页数为0, -4表示下载文件失败
说明
         a. 服务器端必须配置优看阅读相关模块
         b. 此接口为快速WEB PDF文件阅读版本

48.long SetFastReadLink(const char* strJsonLink, long lParams)

功能:
         快速打开服务器端文件超链接处理
参数
         strJsonLink : json格式超链接数据
         lParams : 保留,设置为0
返回值
         0表示成功
说明
         a. 服务器端必须配置优看阅读相关模块
         b. 此接口为快速WEB PDF文件阅读版本

49.long FastUrlSearchWord(const char* strKeyWord, long nPage, long nWordIndex, const char* strParams)

功能:
         打开或者下载服务器端文件,关键字查询页面中跳转到具体位置
参数
         strKeyWord : 查询关键字
         nPage : 查选关键字所在页面
         nWordIndex : 保留,设置为0
         strParams : 保留,设置为""
返回值
         0表示成功,-1表示查询出错或者未查询到数据,-2查询页面页数错误
说明
    a. 服务器端必须配置优看阅读相关模块
    b. 此接口为快速WEB PDF文件阅读版本

6.属性

  1.PageIndex 当前页码,介于1和最大页码之间

  2.MaxPage 当前 PDF 的总页数,此参数只读

  3.Zoom 当前显示的缩放比例,0.01~64 之间的一个实数

7. 事件

1.  页面页数改变事件

  1.void OnPageChanged(long nCurPage, long nMaxPage)

参数
         nCurPage : 当前页面页数
         nMaxPage : 当前打开文件页面总数

2.  选择区域完成事件

  1. void OnSelectArea(long nPage, long left, long top, long right, long bottom)
参数
         nPage : 数据所在页面页数
         left,top,right,bottom : 所在页面获取数据坐标

8. 防扩散控制信息格式

  1. 阅读次数控制: ReadCount(int)
  2. 是否启用阅读时间控制: UseReadTime(/)
  3. 阅读起始时间: RStart(const char*)
  4. 阅读终止时间: REnd(const char*)
  5. 阅读页面范围: CanReadPages(const char*)
  6. 阅读水印: ReadWatermark(/)
  7. 打印次数控制: PrintCount(int)
  8. 是否启用打印时间控制: UsePrintTime(/)
  9. 打印起始时间: PStart(const char*)
  10. 打印终止时间: PEnd(const char*)
  11. 打印水印: PrintWatermark(/)
  12. 离线硬件绑定: OfflineBind(bool)
  13. 在线硬件绑定: OnlineBind(bool)
  14. 文本复制: CanCopy(bool)
  15. 截屏控制: SnapScreen(bool)

示例代码:

<ReadCount>10</ReadCount>
<UseReadTime>
    <RStart>2012-02-10 18:00:00</RStart>
    <REnd>2012-02-15 18:00:00</REnd>
</UseReadTime>
<CanReadPages>-1</CanReadPages>
<ReadWatermark>
 <Font
         Name = 宋体
         Size = 20
         Rotate = 45
         BeginClr = 255
         EndClr = 65535
         Alpha = 60
         Bold = 1
         Italic = 0>
         优看科技
  </Font>
  <Img
         Rect = 100,100,50,50
         Rotate = 50
         Alpha = 60
         URL = http:// http://www.ycanpdf.cn/demo/sample.jpg  />
</ReadWatermark>
<PrintCount>3</PrintCount>
<UsePrintTime>
    <PStart>2012-02-10 18:00:00</PStart>
    <PEnd>2012-02-15 18:00:00</PEnd>
</UsePrintTime>
<PrintWatermark>
 <Font
         Name = 宋体
         Size = 20
         Rotate = 45
         BeginClr = 255
         EndClr = 65535
         Alpha = 60
         Bold = 1
         Italic = 0>
         优看科技
  </Font>
  <Img
         Rect = 100,100,50,50
         Rotate = 50
         Alpha = 60
         URL = http://www.ycanpdf.cn/demo/sample.jpg/>
</PrintWatermark>
<OfflineBind>1</OfflineBind>
<OnlineBind>1</OnlineBind>
<CanCopy>1</CanCopy>
<SnapScreen>1</SnapScreen>

9. 联系我们

西安优看电子科技有限公司

QQ:1003059540

http://www.ycanpdf.cn

2017/10/11

转载于:https://www.cnblogs.com/ycanpdf/p/7792355.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值