微软Office网页组件:基于跨浏览器的原生小程序系统-PluginOK中间件( https://github.com/wangzuohuai/WebRunLocal )网络高级版开发,底层调用微软Office的VBA接口实现可程序化驱动的网页在线编辑办公控件,可分别将Word、Excel、PowerPoint软件窗口内嵌到网页指定区域运行并操控。 可用在Chrome 41、Firefox 50、Edge 80(Chromium内核)、IE 8、Opera、Yandex、Electron、360极速/安全、豆包、夸克、QQ、搜狗、遨游、华为、联想、猎豹、齐安信、红莲花、双核等浏览器低版本,也兼容运行于这些浏览器的最新版本。 支持微软Office 2007及以上版本的桌面安装版、建议使用官方发布的Office 2013及以上专业版或专业增强版,如使用家庭、个人或教育等版本,可能需要自行安装VBA支持。 1、PluginOK中间件的安装: 1)、如果是exe的安装程序,请直接运行安装; 2)、如果是绿色版的程序包,请解压到磁盘某个目录后,双击“InstallWrl.bat”进行安装; 3)、安装完成时会启动PluginOK中间件服务,在安装目录下的Data子目录有ZbaService.txt日志文件输出运行情况。 2、微软Office网页组件控制相关接口: 说明:以下功能请通过Web Socket连接PluginOK主服务(ws://localhost:83?sid=12345&flag=1)后可执行,如默认侦听端口不是83(关于如何配置侦听端口,请参考SDK包中的文档“PluginOK开发者手册.pdf”),请在连接地址中指定端口号进行连接。 前端集成采用普通JS脚本时,请主要参考:https://gitee.com/zorrosoft/pluginOK/tree/master/Demo/OfficeJS,需要嵌入用到的JS脚本程序是完全开源的,如果是VUE2的框架,请参考https://gitee.com/zorrosoft/pluginOK/tree/master/Demo/OfficeVue2,VUE3框架的请参考https://gitee.com/zorrosoft/pluginOK/tree/master/Demo/OfficeVue3。如果只是简单测试启动,可以参考以下网页: HTTP网页在线测试:http://local.zorrosoft.com/wordfull.html HTTPS网页在线测试:https://local.zorrosoft.com/officeframe.html 如还需兼容IE浏览器使用,网络版测试网页中 的CLSID需要替换为:21ADE2E6-B4DD-4F3E-8BD5-9DDAD1785F3A 前端集成可参考以上测试网页进行,需要嵌入用到的JS脚本,脚本程序是完全开源的。 1)、请求启动微软Office网页组件实现网页中局部加载doc/xls/ppt等文档显示: Type为浏览器类型,传0自动判断(前提是当前浏览器已启动并显示在最前端,Flag指定当前页加载时必须是0) 可强制指定浏览器类型Type(1代表IE 2代表Chrome 4代表Firefox 5代表Brave(英文版) 8代表Opera 9代表Vivaldi(英文版) 10代表Yandex 16代表Edge(Chromium内核) 20代表Electron 32代表360极速浏览器 33代表360安全浏览器 34代表360极速浏览器 35代表360企业安全浏览器 36代表360游戏浏览器 37代表360AI浏览器 40代表联想浏览器 45代表双核浏览器 50代表QQ浏览器 51代表微信网页 55代表齐安信浏览器 57代表红莲花浏览器 60代表搜狗浏览器 61代表夸克 62代表遨游浏览器 63代表猎豹浏览器 66代表豆包 70代表华为浏览器) Type需要指定浏览器类型时,可先通过TestWrl.txt文档中的接口Wrl_BrowserInfo获取到当前浏览器的类型Type、浏览器主窗口句柄BrowserWnd、浏览器绘制窗口句柄DrawWnd及当前网页标题Title,通过判断Title是否为当前网页需要内嵌决定是否继续启动,如果继续启动,把获取到的参数Type、BrowserWnd、DrawWnd设置到当前请求参数里,可以加快启动速度 Title:网页标题中的关键词 Url:加载小程序所在的网页实际地址,在网页中指定小程序的显示位置和大小,不建议使用了,建议改用Web参数 Flag掩码标记:1指定新标签加载(1和16都不指定时为当前页加载) 2显示标题栏 4不自动裁剪越界窗口 8自动适配网页高度和宽度显示 64启用Web参数 128防截屏 256强制显示到副屏 512允许同一网页加载多实例 Web:打开配置(新增方式),可代替Url使用,Flag值+64使用此配置,使用Web时必须指定Left、Top、Width、Height的值 Web中参数说明: Edit 代表编辑权限(除1、512、1024都支持外,其它只有WORD才支持,1024只有在OLE嵌入方式下生效 其中1、2、16、32、64、128互斥) 1只读方式打开 2打开后自动处于修订模式 4禁止另存 8禁止打印 16禁止复制内容 32只能修订 64只能批注 128预览模式 256禁止粘贴内容出编辑窗口 512在PageHi菜单支持上传下载文档 1024安全文档(载入后和上传后自动删除本地文档) 2048禁用全屏编辑 Hide 代表隐藏的界面元素(目前完整嵌入模式下只支持8和16) 1隐藏菜单 2隐藏标准工具栏 4隐藏格式工具栏 8隐藏状态栏 16隐藏右键菜单 User 代表编辑文档的用户名称 PW 代表打开文档需要的密码 OLE嵌入方式下不支持 DataPath 代表文档查找和保存默认路径 WaterMark 打开或新建文件后自动加水印节点信息,内容和接口Office_InsertWaterMark一致 Cookie 当Open打开的文档是服务器上的Url地址时,网络请求Url设置Cookie来获得下载权限 Auth 当Open打开的文档是服务器上的Url地址时,网络请求Url设置Auth来获得下载权限 IframeX和IframeY分别为iframe嵌套的横竖偏移修正坐标 BarW和BarH分别是网页右侧和底部预留区域,ScrollTop为顶部滚动预留高度 网页组件实际显示首先会基于Url或Web中指定的坐标和大小,再根据IframeX、IframeY、BarW、BarH设定的值做修正 Option:1是启动微软Word 为2启动微软Excel 为3启动微软PPT 5是Adobe Pdf Reader或福昕OFD版式办公套件的OCX控件打开pdf 8是福昕OFD版式办公套件的OCX控件打开ofd Version:0:OLE嵌入方式加载 1:完整加载(支持文档对比操作) 2:OLE嵌入方式加载(与0差别在于WPS专业版及微软Office高版本提前启动Office进程以支持多文档及加快启动性能) Option为5时Version自动默认为1 Open:为需要打开的文档路径,磁盘目录斜杠用/或\\ 支持服务器HTTP协议的文件下载路径(请可设置Auth或Cookies等确保无需登录可下载),下载地址中如包含文件名,尽量把文件名放到Url地址中最后一个参数;如果没有包含文件名,请在Content-Disposition中指定filename 此参数如非全路径,包括服务器路径,除非启动时指定了数据文件目录DataPath,否则默认使用中间件程序Data子目录作为根目录使用 如果使用字节流文件打开,这里不需要指定 注意:Open、Url中如果有特殊字符= & 双引号或中文等,需要用URL编码处理后传递 举例: 自动识别当前浏览器并启动微软Word程序 {"req":"Wrl_OfficeApplet","rid":5,"para":{"Type":"0","Version":2,"Title":"Office Applet","Flag":66,"Left":20,"Top":20,"Width":480,"Height":320,"IframeX":0,"IframeY":0,"BarW":0,"BarH":0,"ScrollTop":0,"Web": {"Edit":7,"Hide":0,"User":"test","PW":"","DataPath":"c:/OfficeDoc"},"Option":"1","Open":"D:/Zorro/test.doc"}} 自动识别当前浏览器并启动微软Excel程序 {"req":"Wrl_OfficeApplet","rid":5,"para":{"Type":"0","Version":1,"Title":"Office Applet","Flag":66,"Left":20,"Top":20,"Width":480,"Height":320,"IframeX":0,"IframeY":0,"BarW":0,"BarH":0,"ScrollTop":0,"Web": {"Edit":3,"Hide":0,"PW":""},"Option":"2","Open":"D:/Zorro/test.xls"}} 自动识别当前浏览器并启动微软PPT程序 {"req":"Wrl_OfficeApplet","rid":5,"para":{"Type":"0","Version":0,"Title":"Office Applet","Flag":66,"Left":20,"Top":20,"Width":480,"Height":320,"IframeX":0,"IframeY":0,"BarW":0,"BarH":0,"ScrollTop":0,"Web": {"Edit":1,"Hide":0,"PW":""},"Option":"3","Open":"D:/Zorro/test.ppt"}} 自动识别当前浏览器指定位置自动适配网页大小启动: {"req":"Wrl_OfficeApplet","rid":5,"para":{"Type":"0","Version":2,"Title":"Office Applet","Flag":72,"Left":0,"Top":0,"Width":0,"Height":0,"IframeX":0,"IframeY":0,"BarW":0,"BarH":0,"ScrollTop":0,"Web": {"Edit":7,"Hide":0,"User":"test","PW":"","DataPath":"c:/OfficeDoc"},"Option":"1","Open":"D:/Zorro/test.doc"}} 打开服务器文档,可将Open参数改为类似如下地址 "Open":"http://local.zorrosoft.com/Files/template.doc" 启动后会先后收到三个JSON数据包 A、{"ret":0,"rid":5,"data":{"ID":3}} 代表网页组件WS侦听服务就绪 B、{"event":"Wrl_Listen","aid":3,"rid":5,"data":{"SID":"123","PID":"MSOfficeApplet","port":950}} 返回的侦听端口,可再建立一个Web Socket连接后,调用网页组件中的相关功能,比如打开一个文档。 代表网页组件创建成功,返回ID为当前网页组件运行实例ID,通过此ID,可执行Wrl_AppletControl、Wrl_AppletScroll、Wrl_AppletResize等命令。 C、{"event":"Wrl_AppletOK","aid":3,"rid":5,"data":{"SID":"123","PID":"MSOfficeApplet","Port":950}} 关于Option参数,如果不确定是调用启动微软Office网页组件、还是金山WPS内嵌网页组件或永中办公内嵌网页组件,请先调用指令 X64为1时指定只获取当前有效的64位版,0时都获取 {"req":"Wrl_OfficeInfo","rid":2,"para":{"X64":0}} 获得当前电脑Office及Adobe Acrobat安装的情况,返回值 {"ret":0,"rid":2,"req":"Wrl_OfficeInfo","data":{"Info":[{"Type":1,"X64":0,"Cur":0,"Ver":"15.0.5389.1000"},{"Type":11,"X64":0,"Cur":0,"Ver":"11.1.0.11045"},{"Type":21,"X64":0,"Cur":1,"Ver":"8.0.0.0"},{"Type":5,"X64":0,"Cur":0,"Ver":"","Path":"C:/Program Files (x86)/Common Files/Adobe/Acrobat/ActiveX/AcroPDF.dll"}]}} Type 1 代表微软Office,11代表金山WPS,21代表永中Office 5代表Adobe Acrobat X64 代表是否为64位版本 Cur 代表是否当前有效 Ver 代表文件版本信息 2)、请求控制微软Office网页组件: 当前端不再需要网页组件时可指定关闭,或者显示/隐藏及全屏显示等 ID为启动网页组件时返回JSON中的ID值,Code代表控制类型掩码:1正常关闭 128强制迅速关闭 2全屏显示 4自动隐藏 8还原显示 16自动适配网页高度和宽度显示模式切换 32强制隐藏。其中全屏显示2,可直接通过热键ESC或取消,4和32隐藏后可通过8恢复显示 {"req":"Wrl_AppletControl","rid":2,"para":{"ID":"1","Code":4}} 3)、请求滚动微软Office网页组件: 当前端截取到网页滚动通知时,需要调用此接口实现网页组件和网页的滚动联动 ID为启动网页组件时返回JSON中的ID值 Code为滚动方向1是水平,2是垂直,3是同时 Left为横向滚动条位置,Top为纵向滚动条位置 {"req":"Wrl_AppletScroll","rid":3,"para":{"ID":"1","Code":2,"Left":0,"Top":100}} 4)、请求改变微软Office网页组件显示位置或大小: 当前端网页显示区域缩放时,可动态修改网页组件的显示位置或大小 ID为启动网页组件时返回JSON中的ID值,Width和Height分别为新的宽度和高度,X和Y分别为新的显示位置,不指定时保持不变,指定时原设置的IframeX和IframeY失效 {"req":"Wrl_AppletResize","rid":4,"para":{"ID":1,"Width":500,"Height":600}} 或同时设置网页组件显示起始坐标 {"req":"Wrl_AppletResize","rid":5,"para":{"ID":1,"Width":500,"Height":600,"X":20,"Y":20}} 5)、请求设置网页预留右侧宽度和底部高度,滚动条信息、垂直滚动及水平滚动位置: 当网页组件显示区域超过当前网页时,需去除滚动条的显示影响 ID为启动网页组件时返回JSON中的ID值,BarW为预留右侧宽度 BarH为预留底部高度 Code 1代表有水平滚动条,2代表有垂直滚动条,3代表都有 ScrollTop垂直滚动条位置 ScrollTop水平滚动条位置 {"req":"Wrl_ScrollBar","rid":6,"para":{"ID":"1","Code":2,"BarW":0,"BarH":0,"ScrollTop":0,"ScrollLeft":0}} 6)、请求对网页组件窗口做Alpha透明处理,便于前端临时显示覆盖到网页组件窗口的菜单等: ID为Wrl_OfficeApplet启动网页组件时返回的ID值,Alpha为透明度百分比,1-100 {"req":"Wrl_AppletAlpha","rid":7,"para":{"ID":1,"Alpha":30}} 7)、请求对网页组件窗口内容进行截图: ID为启动网页组件时返回JSON中的ID值, File为指定截图文件保存路径或扩展名 Base64指定为1时代表返回BASE64编码的图像内容 {"req":"Wrl_AppletSnap","rid":10,"para":{"ID":1,"Base64":1,"File":".jpg"}} 8)、请求缩放网页组件,用于浏览器网页按比例缩放,一般不需要处理: ID为启动网页组件时返回JSON中的ID值,不指定Scale时,获取当前网页组件所用的缩放百分比,一般和系统缩放比例一致 {"req":"Wrl_AppletScale","rid":11,"para":{"ID":1,"Scale":120}} 3、网页组件安装、升级、卸载 1)、请求安装微软Office网页组件 请在测试网页输入框中,输入如下请求,然后点击发送,完成安装: {"req":"Plugin_Install","rid":1,"para":{"Name":"微软Office网页组件","PID":"MSOfficeApplet","Date":"2025-03-10","Desc":"PluginOK之上跨浏览器的微软Office内嵌网页在线编辑组件,支持在Chrome、Edge、Firefox、IE、Oprea、360、QQ等最新版本浏览器网页中内嵌Word、Excel、PowerPoint等文档进行在线编辑或审阅各类办公文档","DownAddr":"http://local.zorrosoft.com/Files/Net/MSOfficeApplet.pid","MD5":"7FD109A85A874CE29BCB5CA0CA4CE5BA","Version":"2.2.17.2","Size":9437184,"HideIns":0,"Type":8,"Cookie":"","Auth":"","TK":"2245C126CAC46AEE0C0148C4C853112B26607FE5CDBF3DC1FDA4BB4EF36CECEBC8781A8B1857582C63FFF37E8AF25775FE768BA3B0712D0F77CE24A22C3A89F4494279F633B1966CA66A29068E09807DF5A5C6E0CB5A6FC2A6A26FB2F385DC4D6343F88CF761743179175337C4AB33CD9DE8F9CC0598BF3FB8F41E7CBB4B86452F1A056E21AC3AEE9F7EF2897DF4A5FA855485859D91884C2FECE574BE8C98FB36E97C27BC90ED28CA5091B81FC7436646ACECD7E9F6344E98F0A4D39CB6E52A90E782A01637E21FB7851A4D212184D3DEF1482624EBD72D58F39F94B96BC103D08B3C047A46E48679C943BB014FDC19335C3FE4B07F9B7E2569F50CE61A8C81"}} 启动安装后,会不断收到安装进度直到安装结束。 在发布时,也可以把此网页组件目录文件和中间件一起打包后发布,不用单独分发。 2)、请求升级微软Office网页组件: {"req":"Plugin_Update","rid":1,"para":{"Name":"微软Office网页组件","PID":"MSOfficeApplet","Date":"2025-03-10","Desc":"PluginOK之上跨浏览器的微软Office内嵌网页在线编辑组件,支持在Chrome、Edge、Firefox、IE、Oprea、360、QQ等最新版本浏览器网页中内嵌Word、Excel、PowerPoint等文档进行在线编辑或审阅各类办公文档","DownAddr":"http://local.zorrosoft.com/Files/Net/MSOfficeApplet_Update.pid","MD5":"793B6E4ABB6DF8C33E51ADFA12000B62","Version":"2.2.17.2","Size":9437184,"HideIns":0,"Type":8,"Cookie":"","Auth":"","TK":"8D34633F7F4676EF9CFB607468A4CF23CCFBE881946EA89BC2FACA60B4198D978A2CD11F18BE445AB49AE9D72188EE18CAD553A9C1720F1B2953F4733F9B5798A1A428607230B575279D08393840AD051719702613C8A2F1F63DBBB0796CC75EF7F8DCD2A402B3BFC9FBA5B178215D379E40E8363BC822B0A65858F62627C089F804F721DDA5DD050D2C5BF32F2F7CCECBC0B43A8D4C96AEFE6E29A780B59E21C5653F09AC7F4683A563C28D76707D0331AC34EA3782AF8FD148CD9060C36C8BDD9EB672FABF111F1961130550DEC301EBBCD84FA5BBE75C62D9570DA02D24D6AA181DAEBE252A79717EA9AE63D0BD4AE29C58C959EE4CE44B625AAA1268998B"}} 以上安装和升级的JSON请求包,可能因版本升级导致内容不同,如遇安装或升级时报错,请联系客服获取最新的请求包。 3)、请求卸载微软Office网页组件: 正式版需要添加TK校验,具体规则请参考SDK包中文档“中间件安全解决方案.pdf”,可在SDK包中的打包程序ZbaPackage.exe的中间件维护生成带TK的请求。 {"req":"Plugin_Remove","rid":3,"para":{"PID":"MSOfficeApplet","Type":8}} 4、微软Office网页组件转调用Office软件的VBA接口,先根据Wrl_OfficeApplet请求启动后返回的端口号,新建立一个WebSocket连接后可执行如下指令: A、常用功能请求: 1)获取文档是否修改了需要保存,适用于Word、Excel、PPT软件 {"req":"Office_IsSaved","rid":1,"para":{}} 返回:{"ret":0,"rid":1,"data":{"Ret":"0","Saved":0}} 2)设置文档是否需要保存标记,适用于Word、Excel、PPT软件 {"req":"Office_PutSaved","rid":2,"para":{"Saved":"1"}} 返回:{"ret":0,"rid":2,"data":{"Ret":"0"}} 3)请求打开文档 Open为打开文档路径,有中文或特殊字符等需要UrlEncode编码,适用于Word、Excel、PPT软件 打开前如已有文档打开,会自动关闭上一个文档,避免同时打开多个文档 Open打开文档(不指定时新建文档) 如非全路径,除非启动时指定了数据文件目录DataPath,否则默认使用中间件程序Data子目录作为根目录使用 User 设置编辑用户名 Edit设置编辑权限,含义和启动时相同 Hide控制界面显示标记 如果需要支持字节流文件打开,需要指定参数Byte,代表文件流的长度,此请求返回后前端继续发送字节流即可 如果是打开Word文档,可指定NoRepair,默认0,指定1代表无修复警告对话框方式打开 {"req":"Office_Open","rid":3,"para":{"Open":"D:/Zorro/test.doc","User":"test","Edit":0,"Hide":0}} 打开服务器文档 {"req":"Office_Open","rid":3,"para":{"Open":"http://local.zorrosoft.com/Files/template.doc","Edit":0}} 返回:{"ret":0,"rid":3,"data":{"Ret":"0"}} 4)请求保存,适用于Word、Excel、PPT软件,如是新建文档,会创建一个临时文件名保存 如果指定了Office_NetFile接口中的Url等参数,代表保存到本地的同时上传到服务器,在上传的时候,我们会在上传的Url地址里,增加类似“PHPostSize=10847&PHPostMD5=6D0FDA97DD6C5D087FE7166F49980BBC”的参数,分别代表上传数据包的大小和MD5哈希值 如果调用打开时指定了Byte字节流参数,此请求返回后前端继续接收文件字节流即可 {"req":"Office_Save","rid":4,"para":{}} {"req":"Office_Save","rid":4,"para":{"Asyn":0,"Agent":"","Cookie":"","Auth":"","Para":"","Url":"http://zorrosoft.com/wp-admin/admin-ajax.php"}} 返回:{"ret":0,"rid":4,"data":{"Ret":"0","FilePath":"","Info":{}}} 其中FilePath为实际保存路径 Info为上传接口返回的数据包,务必用JSON来描述 5)请求另保存 NewFile为另保存路径,有中文或特殊字符等需要UrlEncode编码,适用于Word、Excel、PPT软件 支持相对路径,如非全路径,除非启动时指定了数据文件目录DataPath,否则默认使用中间件程序Data子目录作为根目录使用 如果指定了Office_NetFile接口中的Url等参数,代表保存到本地的同时上传到服务器,在上传的时候,我们会在上传的Url地址里,增加类似“PHPostSize=10847&PHPostMD5=6D0FDA97DD6C5D087FE7166F49980BBC”的参数,分别代表上传数据包的大小和MD5哈希值 当另存为ppt或pptx时,可指定参数EmbedFonts是否嵌入TrueType字体,默认嵌入 如果调用打开时指定了Byte字节流参数,此请求返回后前端继续接收文件字节流即可 {"req":"Office_SaveAs","rid":5,"para":{"NewFile":"D:/Zorro/test.xml"}} {"req":"Office_SaveAs","rid":5,"para":{"NewFile":"D:/Zorro/testSA.doc"}} {"req":"Office_SaveAs","rid":5,"para":{"Format":17,"NewFile":"D:/Zorro/test.pdf"}} {"req":"Office_SaveAs","rid":5,"para":{"NewFile":"D:/Zorro/testSA.doc","Asyn":0,"Agent":"","Cookie":"","Auth":"","Para":"","Url":"http://zorrosoft.com/wp-admin/admin-ajax.php"}} 返回:{"ret":0,"rid":5,"data":{"Ret":"0","FilePath":"","Info":{}}} 其中FilePath为实际保存路径 Info为上传接口返回的数据包,务必用JSON来描述 6)请求导出为PDF或XPS格式 NewFile为导出文档路径,有中文或特殊字符等需要UrlEncode编码,适用于Word、Excel软件 NewFile如非全路径,除非启动时指定了数据文件目录DataPath,否则默认使用中间件程序Data子目录作为根目录使用 如果指定了Office_NetFile接口中的Url等参数,代表保存到本地的同时上传到服务器,在上传的时候,我们会在上传的Url地址里,增加类似“PHPostSize=10847&PHPostMD5=6D0FDA97DD6C5D087FE7166F49980BBC”的参数,分别代表上传数据包的大小和MD5哈希值 如果调用打开时指定了Byte字节流参数,此请求返回后前端继续接收文件字节流即可 {"req":"Office_Export","rid":6,"para":{"NewFile":"D:/Zorro/test1.pdf"}} {"req":"Office_Export","rid":6,"para":{"NewFile":"D:/Zorro/testExport.pdf","Asyn":0,"Agent":"","Cookie":"","Auth":"","Para":"","Url":"http://zorrosoft.com/wp-admin/admin-ajax.php"}} 返回:{"ret":0,"rid":6,"data":{"Ret":"0"}} 7)请求在当前光标位置或指定位置插入图片 ImgFile为图片路径(支持网络路径),有中文或特殊字符等需要UrlEncode编码,适用于Word、Excel、PPT软件 Pos 指定的插入位置,不指定时在当前位置插入 Word指定书签名称 Excel指定比如A1、B2等名称 Link 为1则只是链接到文件(网络路径不支持1) Save 是否插入后自动保存到文档 ImgFile 需要做UrlEncode编码,如非全路径,除非启动时指定了数据文件目录DataPath,否则默认使用中间件程序Data子目录作为根目录使用 Order 设置图片和文字关系,适用于Word 5代表图片悬浮于文字之上,如果不需要,设置-1或不传此参数 Wrap 图片文字环绕类型,适用于Word 具体参考定义:https://learn.microsoft.com/zh-cn/office/vba/api/word.wdwraptype Word、Excel指定Width、Height代表设置图片插入后显示的宽度和高度 PPT演示中可指定插入图片的位置及尺寸 Left、Top、Width、Height,如没指定,Left及Top默认为0,Width及Height分别为图片的宽度和高度 {"req":"Office_InsertImg","rid":7,"para":{"ImgFile":"D:/Zorro/test.png","Link":"0","Save":"1","Order":"-1"}} 或 {"req":"Office_InsertImg","rid":7,"para":{"ImgFile":"http://zorrosoft.com/wp-content/uploads/2021/07/2021072709255099-1024x576.png","Link":"0","Save":"1","Order":"5"}} 返回:{"ret":0,"rid":7,"data":{"Ret":"0","Width":"1","Height":"1"}} Width和Height分别为插入图片的宽度和高度 8)请求在当前光标位置批量插入文字,适用于Word软件 FontSize字体大小 FontName字体名称 Color字体颜色 Bold粗体大小 以上参数也可以直接指定风格Style来确定 Paragraph代表换行数量 Alignment是对其方式 0左对齐 1居中 2右对齐 {"req":"Office_Insert","rid":8,"para":[{"Paragraph":1},{"FontSize":"16","FontName":"宋体","Color":"0","Alignment":"0","Bold":"8","Text":"详情请点击这里:"},{"Paragraph":1},{"Address":"http://zorrosoft.com","Display":"佐罗软件官方网站"}]} 分别为换行、插入指定字体和颜色值的文字再换行,插入一个超链接 返回:{"ret":0,"rid":8,"data":{"Ret":"0"}} 9)请求在当前光标位置执行退格操作Backspace,适用于Word软件 {"req":"Office_Backspace","rid":9,"para":{}} 返回:{"ret":0,"rid":9,"data":{"Ret":"0"}} 10)请求批量打印,适用于Word、Excel、PPT软件 Copies为打印份数,默认打印所有页面,打印到文件时,需要指定OutFile,有中文或特殊字符等需要UrlEncode编码 OutFile如非全路径,除非启动时指定了数据文件目录DataPath,否则默认使用中间件程序Data子目录作为根目录使用 {"req":"Office_PrintOut","rid":10,"para":{"Copies":"1","OutFile":"D:/Zorro/testprint.pdf"}} 返回:{"ret":0,"rid":10,"data":{"Ret":"0"}} 11)请求移动光标位置,适用于Word软件 Up为向上,默认向下,Up为1向上,Unit移动单位(5是文字行数,7是屏幕区) Count为移动数量 {"req":"Office_MoveLine","rid":11,"para":{"Up":"0","Unit":"5","Count":"6"}} 返回:{"ret":0,"rid":11,"data":{"Ret":"0"}} 12)请求获取当前用户名,适用于Word、Excel软件 {"req":"Office_GetUserName","rid":12,"para":{}} 返回:{"ret":0,"rid":12,"data":{"Ret":"0","User":"test"}} 13)请求设置当前用户名,适用于Word、Excel软件 {"req":"Office_PutUserName","rid":13,"para":{"User":"test"}} 返回:{"ret":0,"rid":13,"data":{"Ret":"0"}} 14)请求获取当前是否修订模式,适用于Word软件 {"req":"Office_GetTrackRevisions","rid":14,"para":{}} 返回:{"ret":0,"rid":14,"data":{"Ret":"0","TrackRevisions":"0"}} 15)请求设置当前是否修订模式,适用于Word软件 TrackRevisions 1启用修订模式 2强制修订模式 {"req":"Office_PutTrackRevisions","rid":15,"para":{"TrackRevisions":"1"}} 返回:{"ret":0,"rid":15,"data":{"Ret":"0"}} 16)请求修订模式后续操作,适用于Word软件 Type为操作类型,0默认代表切换修改模式,1代表接受所有修订 2代表拒绝所有修订 {"req":"Office_TrackRevisions","rid":16,"para":{"Type":"1"}} 返回:{"ret":0,"rid":16,"data":{"Ret":"0"}} 17)请求获取是否显示修订信息,适用于Word软件 {"req":"Office_GetShowRevisions","rid":17,"para":{}} 返回:{"ret":0,"rid":17,"data":{"Ret":"0","ShowRevisions":"0"}} 18)请求设置是否显示修订信息,适用于Word软件 {"req":"Office_PutShowRevisions","rid":18,"para":{"ShowRevisions":"1"}} 返回:{"ret":0,"rid":18,"data":{"Ret":"0"}} 19)请求在当前位置添加批注,适用于Word软件 Text为添加批注的文字描述 {"req":"Office_InsertComment","rid":19,"para":{"Text":"批注内容"}} 返回:{"ret":0,"rid":19,"data":{"Ret":"0"}} 20)请求获取当前文档书签数量,适用于Word软件 {"req":"Office_MarkCount","rid":20,"para":{}} 返回:{"ret":0,"rid":2018,"data":{"Ret":"0"}} 21)请求判断当前书签是否存在,适用于Word软件 Name为书签名称 {"req":"Office_MarkIsExist","rid":21,"para":{"Name":"Caption"}} 返回:{"ret":0,"rid":21,"data":{"Ret":"0"}} 22)请求获取当前文档所有书签,适用于Word软件 {"req":"Office_AllMark","rid":22,"para":{}} 返回:{"ret":0,"rid":22,"data":{"Ret":[{"Name":"Caption","Text":"[请输入标题]"},{"Name":"Content","Text":"[公文内容]"},{"Name":"Description","Text":"[公文说明或描叙]"},{"Name":"Sec","Text":"[公文密级]"},{"Name":"Subject","Text":"[公文主题词]"]}]}} 23)请求指定序号的书签名称或指定名称的文字内容,适用于Word软件 Index为书签序号 Name为书签名称 Detail为1获取详情,默认是设置0只返回书签名称 {"req":"Office_GetMarkInfo","rid":23,"para":{"Index":"1","Detail":"1"}} {"req":"Office_GetMarkInfo","rid":23,"para":{"Name":"Caption"}} 返回:{"ret":0,"rid":23,"data":{"Ret":"0"}} 24)请求替换指定书签名称的内容,适用于Word软件 Name为书签名称,Text书签内容,如内容中插入^p可实现换行 Word:{"req":"Office_PutMarkText","rid":24,"para":{"Marks":[{"Name":"Caption","Text":"公文标题"},{"Name":"Content","Text":"公文内容"},{"Name":"Description","Text":"公文说明或描叙"},{"Name":"Sec","Text":"公文密级"},{"Name":"Subject","Text":"公文主题词"}]}} 返回:{"ret":0,"rid":24,"data":{"Ret":"0"}} 25)光标跳转到指定名称的书签,适用于Word软件 Name为书签名称 NoSelect为1代表去掉书签选中状态 {"req":"Office_GotoMark","rid":25,"para":{"Name":"Caption","NoSelect":1}} 返回:{"ret":0,"rid":25,"data":{"Ret":"0"}} 26)获取修订数量,适用于Word软件 {"req":"Office_GetRevisionsCount","rid":26,"para":{}} 返回:{"ret":0,"rid":26,"data":{"Ret":"0","Count":0}} 27)创建指定目录,适用于Word、Excel、PPT软件 Dir为子目录名称,可为全路径,需要确保有创建子目录权限,非全路径时,为启动指定数据文件路径DataPath的子目录,没指定DataPath时为中间件data的子目录 {"req":"Office_CreateDir","rid":27,"para":{"Dir":"/doc"}} 返回:{"ret":0,"rid":27,"data":{"Ret":"0"}} 28)查找文档中图片并返回BASE64编码数据,适用于Word软件 Index为图片序号 从1开始编号,先查Shapes再查InlineShapes File为本地文件保存路径,可用相对路径,如指定此参数,代表直接把此图片保存到本地,Code返回本地文件全路径 {"req":"Office_GetImage","rid":28,"para":{"Index":1}} 返回:{"ret":0,"rid":28,"data":{"Ret":"0","Code":""}} Code默认返回的编码数据 29)请求合并文档到指定书签内容,适用于Word软件 File为被合并文档全路径 如非全路径,除非启动时指定了数据文件目录DataPath,否则默认使用中间件程序Data子目录作为根目录使用 Marks指定需要替换的书签名称数组 默认在File文档中找对应书签名称的内容来替换,如没有对应书签直接插入整个文件 {"req":"Office_MarkMerge","rid":29,"para":{"File":"D:/Zorro/TestMark.docx","Marks":["Letter","Title"]}} 返回:{"ret":0,"rid":29,"data":{"Ret":"0"}} 30)请求合并指定文档到当前文档新的一页,适用于Word软件 Files为被合并文档数组 如非全路径,除非启动时指定了数据文件目录DataPath,否则默认使用中间件程序Data子目录作为根目录使用 {"req":"Office_FileMerge","rid":30,"para":{"Files":["D:/Zorro/TestMark.docx","D:/Zorro/Test.docx"]}} 返回:{"ret":0,"rid":30,"data":{"Ret":"0"}} 31)调用菜单及工具栏按钮功能,适用于Word、Excel、PPT软件 BarName:菜单栏名称 BtnName:请求功能名称或功能序号 举例,调用北京点聚电子印章的盖章功能:{"req":"Office_CallCmdbar","rid":31,"para":{"BarName":"电子印章","BtnName":"盖章"}} 或者 {"req":"Office_CallCmdbar","rid":31,"para":{"BarName":"电子印章","BtnName":"1"}} 返回:{"ret":0,"rid":31,"data":{"Ret":"0"}} 32)以修订标记方式显示文档差别,适用于Word软件 启动时必须指定Version为1,非OLE嵌入方式支持 使用前提是已经打开当前文档,并和Name指定的文档进行对比 Name需要对比的文档,必须指定 Target为目标类型,可选 0是选中的 1是当前的 2是新文档 默认2 {"req":"Office_ShowDifferent","rid":32,"para":{"Name":"D:/Zorro/Test7.doc","Target":"2"}} 返回:{"ret":0,"rid":32,"data":{"Ret":"0"}} 33)指定一个新文档和当前打开文档做对比,适用于Word软件 启动时必须指定Version为1,非OLE嵌入方式支持 使用前提是已经打开当前文档,并和Name指定的文档进行对比 Name需要对比的文档,必须指定 Target为目标类型,可选 0在原文档 1在原文档 2是修订文档 默认2是新文档 Out保存对比结果文档 {"req":"Office_DocCompare","rid":33,"para":{"Name":"D:/Zorro/Test7.doc","Target":"2","Out":"D:/Zorro/Result.doc"}} 返回:{"ret":0,"rid":33,"data":{"Ret":"0"}} 34)切换全屏编辑状态,适用于Word、Excel、PPT软件 {"req":"Office_SwitchFullScreen","rid":34,"para":{}} 返回:{"ret":0,"rid":34,"data":{"Ret":"0"}} 35)网络文件操作,适用于Word、Excel、PPT软件 Type 1上传文件 0下载文件 Asyn 默认0,指定1时异步上传或下载,异步上传需要单独搭配文件操作小程序使用方可使用 Agent、Cookie及Auth Cookie可传浏览器中的Cookie或通过Auth授权验证上传权限,默认为空,非空时需要先做UrlEnocde编码 Local 上传文件本地路径或下载文件保存路径,如果不指定默认用当前打开文档,需要做UrlEncode编码 Url 上传或下载的地址,需要做UrlEncode编码,在上传的时候,我们会在上传的Url地址里,增加类似“PHPostSize=10847&PHPostMD5=6D0FDA97DD6C5D087FE7166F49980BBC”的参数,分别代表上传数据包的大小和MD5哈希值 Type为1时,可增加参数Para,对应POST数据包中需要传递的参数param 默认上传文件名为upfile,否则可通过NodeName设置自己的文件参数名称 Type为0时,可增加参数MD5及FileSize,下载文件的哈希值及大小,用于校验下载文件的完整性,可默认空或0 {"req":"Office_NetFile","rid":35,"para":{"Type":0,"Asyn":0,"Agent":"","Cookie":"","Auth":"","FileSize":0,"MD5":"","Local":"C:/OfficeDoc/test.docx","Url":"http://local.zorrosoft.com/Files/PHDefault.docx"}} {"req":"Office_NetFile","rid":35,"para":{"Type":1,"Asyn":0,"Agent":"","Cookie":"","Auth":"","Para":"","Local":"","Url":"http://zorrosoft.com/wp-admin/admin-ajax.php"}} 返回:{"ret":0,"rid":35,"data":{"Ret":"0","Info":{}}} Info为上传到服务器返回的信息,务必用JSON格式来描述 36)指定页码或范围转换到图片,默认返回Base64编码数据,适用于Word、Excel及PPT软件 Index为页码或幻灯片序号 从1开始编号,传0代表获取当前页 Word及PPT有效 Range为表格范围,如不指定,取当前选中表格 Excel有效 File不指定扩展名时Type为图片类型 3默认为JPG 4为PNG 1为BMP 2为GIF File为本地文件保存路径,可包含扩展名,可用相对路径,如指定此参数,代表直接把转换结果图片保存到本地,Code返回本地文件全路径 带公式的文档提取图片出现乱码或需要自动裁剪图片时,可指定参数Math为1解决 AutoCrop自动裁剪,默认1,可手工指定0不裁剪 Word有效 举例1:{"req":"Office_ConvertImage","rid":36,"para":{"Index":1,"Type":3}} 举例2:{"req":"Office_ConvertImage","rid":36,"para":{"Index":1,"Math":1,"AutoCrop":1,"File":"test1.png"}} 举例3:{"req":"Office_ConvertImage","rid":36,"para":{"Range":"A1:D5","File":"test2.png"}} 返回:{"ret":0,"rid":36,"data":{"Ret":"0","Code":""}} Code默认返回图片的Base64编码数据或图片文件路径 37)获取当前打开文档及其它信息,适用于Word、Excel、PPT软件 File:本地文档路径 User:当前编辑用户名 ProtType ProtStatus分别为当前文档保护类型和状态 Edit:编辑权限 Option:使用的选项 Hide:界面隐藏类型 {"req":"Office_GetCurOpen","rid":37,"para":{}} 返回:{"ret":0,"rid":37,"data":{"Ret":"0","File":"C:/OfficeDoc/test.docx","User":"test","ProtType":0,"ProtStatus":0,"Edit":0,"Option":0,"Hide":0}} 38)设置或取消文档保护,已经处于保护状态时再次调用取消保护,反之亦然,适用于Word软件 Type保护类型 0只读 1只能修订 2只能批注 3填写窗体 PW为密码,如有特殊字符,需要先做UrlEncode编码 {"req":"Office_Protect","rid":38,"para":{"Type":0,"PW":""}} 返回:{"ret":0,"rid":38,"data":{"Ret":"0","Status":0}} Status返回文档保护状态,1是已保护 39)插入表格,适用于Word软件 RowNum行数 ColumnNum列数 {"req":"Office_InsertTable","rid":39,"para":{"RowNum":2,"ColumnNum":5}} 返回:{"ret":0,"rid":39,"data":{"Ret":"0"}} Ret 返回0代表成功 40)插入水印,适用于Word软件 Type 水印类型 Type默认0系统文字水印 1自定义文字水印 2图片水印 Content 类型为0时系统文字水印名称 类型为1时文字水印的内容 类型为2时图片文件路径或服务器水印图片下载地址 如有非英文、特殊字符或符号等,需要做UrlEncode编码 插入“绝密 1”的系统文字水印 {"req":"Office_InsertWaterMark","rid":40,"para":{"Type":0,"Content":"%E6%9C%BA%E5%AF%86%201"}} 插入“TestWaterMark”的自定义文字水印 TextEffect文字效果(参考MsoPresetTextEffect定义) FontSize字体大小默认1自动 FontBold是否粗体 FontItalic是否斜体 FontName字体名称(需先UrlEncode编码) FillColor填充颜色默认RGB(192, 192, 192) 透明度默认0.5 旋转角度旋转角度默认0 {"req":"Office_InsertWaterMark","rid":40,"para":{"Type":1,"Content":"TestWaterMark","TextEffect":0,"FontSize":1,"FontBold":1,"FontItalic":1,"FontName":"%E7%AD%89%E7%BA%BF","FillColor":"#C0C0C0","Transparency":0.5,"Rotation":0}} 插入服务器上的图片水印 Width显示宽度(单位:厘米) Height显示高度(单位:厘米) {"req":"Office_InsertWaterMark","rid":40,"para":{"Type":2,"Content":"http://zorrosoft.com/wp-content/uploads/2021/07/2021072709255099-1024x576.png","Width":15,"Height":18}} 插入本地图片水印 Width显示宽度(单位:厘米) Height显示高度(单位:厘米) {"req":"Office_InsertWaterMark","rid":40,"para":{"Type":2,"Content":"C:/Users/administrator/Pictures/TestWaterMark.jpg","Width":15,"Height":18}} 返回:{"ret":0,"rid":40,"data":{"Ret":"0"}} 41)移除所有存在的水印,适用于Word软件 {"req":"Office_DelWaterMark","rid":41,"para":{}} 返回:{"ret":0,"rid":41,"data":{"Ret":"0"}} 42)设置上传下载地址,PageHi中的上传下载功能需要,适用于Word、Excel、PPT软件 PageHi中的上传下载功能需要在启动命令中Web节点的Edit掩码值加512打开 DownUrl文档下载地址 AsynDown 是否异步下载 DownFileSize 下载文件大小 DownMD5 下载文件MD5 DownCookie 下载Cookie DownAuth 下载Auth UploadUrl文档服务器保存地址 AsynUp是否异步上传 UpCookie 上传Cookie UpAuth 上传Auth UpPara上传参数 {"req":"Office_PutNetUrl","rid":42,"para":{"DownUrl":"http://local.zorrosoft.com/Files/template.doc","UploadUrl":"http://zorrosoft.com/wp-admin/admin-ajax.php","AsynDown":1,"AsynUp":0,"DownCookie":"","UpCookie":"","DownAuth":"","UpAuth":"","UpPara":{}}} 返回:{"ret":0,"rid":42,"data":{"Ret":"0"}} Ret 返回0代表成功 43)请求隐藏或显示指定序号的书签名称或指定名称的内容,适用于Word软件 Index为书签序号 Name为书签名称 二选一使用 Show是否显示 0隐藏 1显示 {"req":"Office_ShowMarkContent","rid":43,"para":{"Index":"1","Show":"0"}} {"req":"Office_ShowMarkContent","rid":43,"para":{"Name":"Caption","Show":"0"}} 返回:{"ret":0,"rid":43,"data":{"Ret":"0"}} 44)请求查找替换指定文字内容,适用于Word软件 Find:被替换文字内容 Replace:替换文字内容 传入前都需要先做UrlEncode编码 Case:是否区分大小写 默认0 1代表大小写敏感 对应于“查找和替换”对话框(“编辑”菜单)中的“区分大小写”复选框 Forward: 默认1向前搜索 (向文档的末尾) 0先后搜索,向文档初始位置 WholeWord:是否完全匹配 默认0 指定1时只查找匹配的完整单词,而并非作为一个长单词的一部分的文字。相当于“编辑”菜单“查找和替换”对话框中的“全字匹配”复选框 Wildcards:是否指定通配符及其他高级搜索条件,默认0。指定1时“*(ing)” 将查找以“ing”结尾的所有单词 对应于查找和替换对话框中的使用通配符复选框 Type:替换类型 2:wdReplaceAll(替换所有匹配项,默认) 1:wdReplaceOne(替换遇到的第一个匹配项) 0:wdReplaceNone(不替换任何匹配项) Wrap:搜索结束后动作类型 2:wdFindAsk(搜索完所选内容或者区域后,Microsoft Word 会显示一条消息,询问是否搜索文档的其他部分) 1:wdFindContinue(到达搜索区域的开始或者结尾时,继续执行查找操作) 0:wdFindStop(到达搜索范围的开始或者结尾时,停止执行查找操作,默认) {"req":"Office_Replace","rid":44,"para":{"Find":"test","Replace":"test content","Case":1,"WholeWord":1,"Wildcards":1}} 返回:{"ret":0,"rid":44,"data":{"Ret":"0"}} 45)插入书签,适用于Word软件 Name 书签名称,书签位置就是当前光标位置 Content 插入书签内容 Hidden 是否隐藏书签 Sort 排序类型 0默认按名称 1按位置 {"req":"Office_InsertMark","rid":45,"para":{"Name":"Test","Content":"[InsertMark]","Hidden":0,"Sort":0}} 返回:{"ret":0,"rid":45,"data":{"Ret":"0"}} Ret 返回0代表成功 46)请求删除指定书签,适用于Word软件 Name为书签名称 DelContent 是否同时删除书签内容,默认0不删除 {"req":"Office_DelMark","rid":46,"para":{"Name":"Test","DelContent":0}} 返回:{"ret":0,"rid":46,"data":{"Ret":"0"}} 47)获取指定序号的修订信息,适用于Word软件 Index为修订序号,默认1,总数通过Office_GetRevisionsCount获取,指定0时代表返回所有修订数据 当Index指定为0时,可通过指定Type修订类型,默认0返回所有类型 {"req":"Office_GetRevisionInfo","rid":47,"para":{"Index":1}} 返回:{"ret":0,"rid":47,"data":{"Ret":"0","Revisions":[]}} 48)获取批注数量,适用于Word软件 {"req":"Office_GetCommentCount","rid":48,"para":{}} 返回:{"ret":0,"rid":48,"data":{"Ret":"0","Count":0}} 49)获取指定序号的批注信息,适用于Word软件 Index为批注序号,默认1,总数通过Office_GetCommentCount获取,指定0时代表返回所有批注数据 {"req":"Office_GetCommentInfo","rid":49,"para":{"Index":1}} 返回:{"ret":0,"rid":49,"data":{"Ret":"0","Comments":[]}} 50)请求对当前文档做套红操作,适用于Word软件 Position 套红模版正文开始位置,请设置书签名称或跳跃行数,如果没有设置或没找到指定书签,从文档第二行位置开始 File为套红模版文件 如非全路径,除非启动时指定了数据文件目录DataPath,否则默认使用中间件程序Data子目录作为根目录使用 模版文件在本地 {"req":"Office_RedTemplate","rid":50,"para":{"Position":"Content","File":"D:/Zorro/template.doc"}} 模版文件在服务器 {"req":"Office_RedTemplate","rid":50,"para":{"Position":"Content","File":"http://local.zorrosoft.com/Files/template.doc"}} 返回:{"ret":0,"rid":50,"data":{"Ret":"0"}} 51)调用VBA中内置的宏过程(Sub)或者函数(Function),适用于Word、Excel、PPT软件 需要在软件选项的信任中心宏设置中启用宏代码 Name需要调用的Sub或Function名称 Para1-Para7 参数1-7,如果不需要参数就不传,当前最多支持7个参数,如有更多参数需求请和我们联系 举例1:{"req":"Office_CallMacro","rid":51,"para":{"Name":"SetMyFont"}} 返回:{"ret":0,"rid":51,"data":{"Ret":"0"}} 举例2:{"req":"Office_CallMacro","rid":51,"para":{"Name":"SetFontFunc","Para1":"宋体"}} 返回2:{"ret":0,"rid":51,"data":{"Ret":"0","Val":"宋体"}} 宏代码范例: Function SetFontFunc(MyFont As String) ActiveDocument.Content.Font.Name = "Times New Roman" Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "[" & ChrW(8220) & ChrW(8221) & "]" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchByte = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = True .Replacement.Font.Name = MyFont End With Selection.Find.Execute Replace:=wdReplaceAll SetFontFunc = MyFont End Function Sub SetMyFont() SetFontFunc ("宋体") End Sub 52)请求在嵌入窗口区域内弹出一个消息对话框,适用于Word、Excel、PPT软件 Title为弹窗标题,如果是中文或特殊符号需要先做UrlEncode Content为弹窗内容,如果是中文或特殊符号需要先做UrlEncode Wait为等待多少秒自动消失 0代表不自动消失 Type代表弹窗类型 0是MB_OK,具体见Windows SDK定义 {"req":"Office_MsgBox","rid":52,"para":{"Title":"Alert","Content":"This is a test message","Wait":5,"Type":0}} 返回:{"ret":0,"rid":52,"data":{"Ret":"0"}} 53)插入超链接,适用于Word、EXCEL软件 Address 超链接地址 SubAddress 子地址 ScreenTip 屏幕提示 TextToDisplay 是否文字显示到屏幕 {"req":"Office_InsertHyperlink","rid":53,"para":{"Address":"Test","SubAddress":"Sheet1!A1","ScreenTip":"","TextToDisplay":"Sheet1!A1"}} 返回:{"ret":0,"rid":53,"data":{"Ret":"0"}} Ret 返回0代表成功 54)请求获取当前文档超链接数量,适用于Word、Excel、PPT软件 Slide 指定幻灯片序号,不指定时默认取当前幻灯片的 Word和Excel不需要 {"req":"Office_HyperlinkCount","rid":54,"para":{}} 返回:{"ret":0,"rid":54,"data":{"Ret":"0"}} 55)请求判断当前超链接是否存在,适用于Word、Excel、PPT软件 Name为超链接名称,PPT不支持Name Address为地址 Slide 指定幻灯片序号,不指定时默认取当前幻灯片的 Word和Excel不需要 {"req":"Office_HyperlinkIsExist","rid":55,"para":{"Name":"Caption"}} 返回:{"ret":0,"rid":55,"data":{"Ret":"0"}} 56)请求获取当前文档所有超链接,适用于Word、Excel、PPT软件 Slide 指定幻灯片序号,不指定时默认取当前幻灯片的 Word和Excel不需要 {"req":"Office_AllHyperlink","rid":56,"para":{}} 返回:{"ret":0,"rid":56,"data":{"Ret":[{"Name":"Caption","Text":"[请输入标题]"},{"Name":"Content","Text":"[公文内容]"},{"Name":"Description","Text":"[公文说明或描叙]"},{"Name":"Sec","Text":"[公文密级]"},{"Name":"Subject","Text":"[公文主题词]"]}]}} 57)请求指定序号的超链接或指定名称的文字内容,适用于Word、Excel、PPT软件 Index为超链接序号 Name为超链接名称,PPT不支持Name Address为地址,Word不支持 Slide 指定幻灯片序号,不指定时默认取当前幻灯片的 Word和Excel不需要 {"req":"Office_GetHyperlinkInfo","rid":57,"para":{"Index":"1"}} {"req":"Office_GetHyperlinkInfo","rid":57,"para":{"Name":"Caption"}} {"req":"Office_GetHyperlinkInfo","rid":57,"para":{"Address":"http://www.zorrosoft.com/"}} 返回:{"ret":0,"rid":57,"data":{"Ret":"0"}} 58)请求替换指定超链接名称的内容,适用于Word、Excel、PPT软件 Name为超链接名称,PPT不支持 Text超链接内容 Slide 指定幻灯片序号,不指定时默认取当前幻灯片的 Word和Excel不需要 Word or Excel:{"req":"Office_PutHyperlinkText","rid":58,"para":{"Hyperlinks":[{"Name":"http://www.zorrosoft.com/","Text":{"Address":"http://zorrosoft.com/","ScreenTip":"zorrosoft"}}]}} PPT:{"req":"Office_PutHyperlinkText","rid":58,"para":{"Slide":1,"Hyperlinks":[{"Address":"http://www.zorrosoft.com/","Text":{"Address":"http://zorrosoft.com/","ScreenTip":"zorrosoft"}}]}} 返回:{"ret":0,"rid":58,"data":{"Ret":"0"}} 59)请求删除指定超链接,适用于Word、Excel、PPT软件 Name为超链接名称 PPT不支持Name Addr为超链接地址 Index为序号 仅PPT支持Index {"req":"Office_DelHyperlink","rid":59,"para":{"Name":"Test"}} {"req":"Office_DelHyperlink","rid":59,"para":{"Address":"http://www.zorrosoft.com/"}} {"req":"Office_DelHyperlink","rid":59,"para":{"Index":"1"}} 返回:{"ret":0,"rid":59,"data":{"Ret":"0"}} 60)请求获取当前文档域数量,适用于Word软件 {"req":"Office_FieldCount","rid":60,"para":{}} 返回:{"ret":0,"rid":60,"data":{"Ret":"0"}} 61)请求判断当前域是否存在,适用于Word软件 Type为域类型 Code为域代码 {"req":"Office_FieldIsExist","rid":61,"para":{"Type":"3","Code":"REF%20%20Caption%20"}} 返回:{"ret":0,"rid":61,"data":{"Ret":"0"}} 62)请求获取当前文档所有域,适用于Word软件 {"req":"Office_AllField","rid":62,"para":{}} 返回:{"ret":0,"rid":62,"data":{"Ret":[{"Index":1,"Type":1,"Data":"","Code":"","Result":"","Kind":1,"Locked":0,"ShowCodes":0}]}} 63)请求指定序号的域信息,适用于Word软件 Index为Field序号 {"req":"Office_GetFieldInfo","rid":63,"para":{"Index":"1"}} 返回:{"ret":0,"rid":63,"data":{"Ret":{"Index":1,"Type":1,"Data":"","Code":"","Result":"","Kind":1,"Locked":0,"ShowCodes":0}}} 64)请求替换指定域的内容,适用于Word软件 Data 域数据 需要先做UrlEncode Code 域代码 需要先做UrlEncode Result 结果 需要先做UrlEncode Locked 是否锁定 ShowCodes 是否显示代码 举例:{"req":"Office_PutFieldInfo","rid":64,"para":{"Fields":[{"Index":1,"Code":"REF%20%20Caption%20","Locked":0,"ShowCodes":0}]}} 返回:{"ret":0,"rid":64,"data":{"Ret":"0"}} 65)在当前位置插入域,适用于Word软件 Text 域文字 需要先做UrlEncode编码 Type 域类型 定义参见 https://learn.microsoft.com/zh-cn/office/vba/api/word.wdfieldtype PreserveFormatting 是否保持格式 举例,插入页码:{"req":"Office_InsertField","rid":65,"para":{"Text":"SECTIONPAGES","Type":"-1","PreserveFormatting":1}} 举例,插入书签Caption的引用:{"req":"Office_InsertField","rid":65,"para":{"Text":"REF%20%20Caption%20","Type":"3","PreserveFormatting":0}} 返回:{"ret":0,"rid":65,"data":{"Ret":"0"}} Ret 返回0代表成功 66)请求删除指定序号的域,适用于Word软件 Index为序号 {"req":"Office_DelField","rid":66,"para":{"Index":"1"}} 返回:{"ret":0,"rid":66,"data":{"Ret":"0"}} 67)请求获取当前视图模式,适用于Word、Excel、PPT软件 关于视图模式ViewType的定义,请分别搜索参考WdViewType、XlWindowView、PpViewType的定义 {"req":"Office_GetViewType","rid":67,"para":{}} 返回:{"ret":0,"rid":67,"data":{"Ret":"0","ViewType":"0"}} 68)请求设置视图模式,适用于Word、Excel、PPT软件 ViewType 视图模式 {"req":"Office_SetViewType","rid":68,"para":{"ViewType":"1"}} 返回:{"ret":0,"rid":68,"data":{"Ret":"0"}} 69)请求高亮或取消高亮指定书签内容,适用于Word软件 Index为书签序号 Name为书签名称 二选一使用 Color 高亮颜色,取消高亮设置0,高亮默认7:wdYellow 详细定义:https://learn.microsoft.com/zh-cn/office/vba/api/word.wdcolorindex {"req":"Office_HighLight","rid":69,"para":{"Name":"Caption","Color":7}} 返回:{"ret":0,"rid":69,"data":{"Ret":"0"}} 70) 指定ID窗口叠加网页中的渲染内容,Widows 8及以上版本操作系统正常支持,本机需要安装Microsoft Edge WebView2 Runtime Url为透明网页地址,如有特殊符号请先进行UrlEncode,设置为空字符串代表取消叠加 Alpha 透明度(0-255) 默认255不透明,Windows 7及以下版本系统不支持透明 Rect节点设置叠加窗口位置和大小,不设置时代表全部区域,E代表边距默认1,X/Y/W/H分别代表叠加窗口在分屏窗口中显示的起始点和宽高,P为显示位置类型,大于0时替代X和Y,1左上 2右上 3左下 4右下 {"req":"Office_FloatWebInfo","rid":70,"para":{"Url":"https://output.jsbin.com/dopavun"}} {"req":"Office_FloatWebInfo","rid":70,"para":{"Url":"https://output.jsbin.com/dopavun","Rect":{"X":0,"Y":0,"P":0,"W":300,"H":300}}} 返回:{"ret":0,"rid":70,"data":{"Ret":0}} 71) 指定ID窗口叠加网页注入脚本运行 Script为脚本内容,请先进行UrlEncode,设置为空字符串代表取消叠加 Init 初始化 {"req":"Office_FloatWebInjectScript","rid":71,"para":{"Init":0,"Script":"window.getComputedStyle(document.body).backgroundColor"}} 返回:{"ret":0,"rid":71,"data":{"Ret":0}} 72) 请求控制修订显示内容,适用于Word软件,Markup及View需要Office 2013开始才支持 Mode 修订的显示模式 https://learn.microsoft.com/zh-cn/office/vba/api/word.wdrevisionsmode View 视图类型 https://learn.microsoft.com/zh-cn/office/vba/api/word.wdrevisionsview Markup 标记类型 https://learn.microsoft.com/zh-cn/office/vba/api/word.wdrevisionsmarkup 以上参数可只选择设置一个,如果不设置,代表获取此参数值 也可以直接设置Toggle为1 代表切换(显示或隐藏)包含批注和修订的文档中的所有修订 {"req":"Office_RevisionsFilter","rid":72,"para":{"Mode":0,"Markup":2,"View":0}} 返回:{"ret":0,"rid":72,"data":{"Ret":0}} 73)请求获取本地文档信息,适用于Word、Excel、PPT软件 File 本地文件全路径,如果不指定路径,取指定或默认路径的文档,需要先做UrlEncode编码再传,如果不传此参数,代表获取当前打开文档 {"req":"Office_FileInfo","rid":73,"para":{"File":"C:/OfficeDoc/test.doc"}} 返回:{"ret":0,"rid":73,"data":{"Ret":"0","Size":92095,"MD5":"B28B987EC70E1E7853F89A52CEDE68F0","Attribute":32,"CreateTime":"2020-10-07 13:07:20","LastWriteTime":"2020-07-14 10:09:43","Ver":"","CorpName":"","Desc":""}} 如果是图片,还返回图片宽度和高度的值 74)请求获取本地文档属性,适用于Word、Excel、PPT软件 File 本地文件全路径,如果不指定路径,取指定或默认路径的文档,需要先做UrlEncode编码再传,如果不传此参数,代表获取当前打开文档 74)请求获取本地文档属性,适用于WPS文字、WPS表格、WPS演示软件 File 本地文件全路径,如果不指定路径,取指定或默认路径的文档,需要先做UrlEncode编码再传,如果不传此参数,代表获取当前打开文档 Class 属性类型,1内建属性 2自定义属性 1+2获取内建及自定义属性 {"req":"Office_GetDocProp","rid":74,"para":{"File":"C:/OfficeDoc/test.doc","Class":3}} 返回:{"ret":0,"rid":74,"data":[]} 75)请求操作本地文档属性,适用于Word、Excel、PPT软件 File 本地文件全路径,如果不指定路径,取指定或默认路径的文档,需要先做UrlEncode编码再传,如果不传此参数,代表获取当前打开文档 Props 需要操作的属性组,支持批量操作 Name 属性名称 Val 属性值 需要先做UrlEncode编码再传 Class 属性类型,1内建属性 2自定义属性 Type 属性类型 定义参考:https://learn.microsoft.com/zh-cn/office/vba/api/office.msodocproperties LinkTo 是否连接到源 Source 源 需要先做UrlEncode编码再传 Opt 操作类型 1设置,没有时添加,内建属性不能添加 2删除,只能删除自定义属性,内建属性不能删除 {"req":"Office_SetDocProp","rid":75,"para":{"File":"C:/OfficeDoc/test.doc","Props":[{"Class":1,"Type":4,"Name":"Title","Val":"test","Opt":1}]}} 返回:{"ret":0,"rid":75,"data":{"Ret":"0"}} 76)获取文档样式数量,适用于Word软件 Base 是否获取样式基本信息,默认0不获取,设置1获取,信息返回到Styles节点 {"req":"Office_GetStyleCount","rid":76,"para":{"Base":0}} 返回:{"ret":0,"rid":76,"data":{"Ret":"0","Count":0,"Styles":[]}} 77)获取文档指定样式信息,适用于Word软件 Type 内置样式类型,详细定义参考:https://learn.microsoft.com/zh-cn/office/vba/api/word.wdbuiltinstyle Index 样式序号,支持自定义样式,序号从1开始 Name 样式名称 根据类型、序号或名称,三选一使用,支持自定义样式名称,自定义样式只支持根据名称获取,取多个样式的话,名称用|间隔 {"req":"Office_GetStyleInfo","rid":77,"para":{"Type":-1}} {"req":"Office_GetStyleInfo","rid":77,"para":{"Index":1}} {"req":"Office_GetStyleInfo","rid":77,"para":{"Name":"HTML 打字机|HTML 样本"}} 返回:{"ret":0,"rid":77,"data":{"Ret":"0","Styles":[{"Type":2,"Name":"HTML 打字机","Desc":"%E5%AD%97%E4%BD%93%3A%20(%E9%BB%98%E8%AE%A4)%20Courier%20New,%2010%20%E7%A3%85%5Cr%20%20%20%20%E5%9F%BA%E4%BA%8E%3A%20%E9%BB%98%E8%AE%A4%E6%AE%B5%E8%90%BD%E5%AD%97%E4%BD%93","BuiltIn":1,"InUse":0,"Hidden":0,"Locked":0,"Visibility":0,"Linked":0,"AutoUpdate":0,"UnhideWhenUsed":0,"QuickStyle":0,"NoSpace":0,"FontInfo":{"Name":"Courier New","Size":10.000,"Spacing":0.000,"Bold":0,"Color":-16777216,"Italic":0,"Hidden":0,"SmallCaps":0,"AllCaps":0,"Position":0,"Scaling":100,"Emboss":0,"Shadow":0,"Outline":0,"Subscript":0,"Superscript":0,"StrikeThrough":0,"DoubleStrikeThrough":0,"Engrave":0,"BoldBi":0,"ItalicBi":0,"ColorIndex":0,"Underline":0,"Animation":0,"EmphasisMark":0,"DiacriticColor":-16777216,"UnderlineColor":-16777216,"ColorIndexBi":0,"Kerning":1.000,"SizeBi":10.000,"NameFarEast":"+中文正文","NameAscii":"Courier New","NameOther":"Courier New","NameBi":"Courier New","DisableCharacterSpaceGrid":0},"ParagraphFormat":{}},{"Type":2,"Name":"HTML 样本","Desc":"%E5%AD%97%E4%BD%93%3A%20(%E9%BB%98%E8%AE%A4)%20Courier%20New%5Cr%20%20%20%20%E5%9F%BA%E4%BA%8E%3A%20%E9%BB%98%E8%AE%A4%E6%AE%B5%E8%90%BD%E5%AD%97%E4%BD%93","BuiltIn":1,"InUse":0,"Hidden":0,"Locked":0,"Visibility":0,"Linked":0,"AutoUpdate":0,"UnhideWhenUsed":0,"QuickStyle":0,"NoSpace":0,"FontInfo":{"Name":"Courier New","Size":10.500,"Spacing":0.000,"Bold":0,"Color":-16777216,"Italic":0,"Hidden":0,"SmallCaps":0,"AllCaps":0,"Position":0,"Scaling":100,"Emboss":0,"Shadow":0,"Outline":0,"Subscript":0,"Superscript":0,"StrikeThrough":0,"DoubleStrikeThrough":0,"Engrave":0,"BoldBi":0,"ItalicBi":0,"ColorIndex":0,"Underline":0,"Animation":0,"EmphasisMark":0,"DiacriticColor":-16777216,"UnderlineColor":-16777216,"ColorIndexBi":0,"Kerning":1.000,"SizeBi":12.000,"NameFarEast":"+中文正文","NameAscii":"Courier New","NameOther":"Courier New","NameBi":"Courier New","DisableCharacterSpaceGrid":0},"ParagraphFormat":{}}]}} 返回节点Styles中的Type定义,参考 https://learn.microsoft.com/zh-cn/office/vba/api/word.wdstyletype 78)设置文档样式信息,适用于Word软件 Type 内置样式类型,详细定义参考:https://learn.microsoft.com/zh-cn/office/vba/api/word.wdbuiltinstyle Index 样式序号,支持自定义样式,序号从1开始 Name 样式名称 根据类型、序号或名称,三选一使用,支持自定义样式名称,自定义样式只支持根据名称设置,自定义样式名称如果还不存在的话自动添加,如果不存在,可以设置CopyName,代表从指定名称的样式中复制一个再设置某些参数 Para 样式的参数 {"req":"Office_SetStyleInfo","rid":78,"para":{"Name":"TestStyle","CreateType":2,"CopyName":"标题 1","Para":{"Hidden":0,"Locked":0,"Visibility":1,"AutoUpdate":0,"UnhideWhenUsed":1,"QuickStyle":1,"NoSpace":0,"FontInfo":{"Name":"Calibri Light","Size":10.500,"Spacing":0.000,"Bold":0,"Color":-16777216,"Italic":0,"Hidden":0,"SmallCaps":0,"AllCaps":0,"Position":0,"Scaling":100,"Emboss":0,"Shadow":0,"Outline":0,"Subscript":0,"Superscript":0,"StrikeThrough":0,"DoubleStrikeThrough":0,"Engrave":0,"BoldBi":0,"ItalicBi":0,"ColorIndex":0,"Underline":0,"Animation":0,"EmphasisMark":0,"DiacriticColor":-16777216,"UnderlineColor":-16777216,"ColorIndexBi":0,"Kerning":1.000,"SizeBi":10.500,"DisableCharacterSpaceGrid":0},"ParagraphFormat":{"WordWrap":-1,"KeepTogether":-1,"KeepWithNext":-1,"PageBreakBefore":0,"NoLineNumber":0,"Hyphenation":-1,"WidowControl":0,"FarEastLineBreakControl":-1,"HangingPunctuation":-1,"HalfWidthPunctuationOnTopOfLine":0,"AddSpaceBetweenFarEastAndAlpha":-1,"AddSpaceBetweenFarEastAndDigit":-1,"MirrorIndents":0,"AutoAdjustRightIndent":-1,"DisableLineHeightGrid":0,"SpaceBeforeAuto":0,"SpaceAfterAuto":0,"RightIndent":0.0,"LeftIndent":0.0,"FirstLineIndent":0.0,"LineSpacing":16.0,"SpaceBefore":12.0,"SpaceAfter":3.2,"CharacterUnitRightIndent":0.0,"LineUnitBefore,":0.0,"LineUnitAfter":0.0,"CharacterUnitLeftIndent":0.0,"CharacterUnitFirstLineIndent":0.0,"Alignment":3,"LineSpacingRule":5,"BaselineAlignment":4,"OutlineLevel":9,"ReadingOrder":1,"TextboxTightWrap":0}}}} 返回:{"ret":0,"rid":78,"data":{"Ret":"0"}} 79)删除文档自定义样式,适用于Word软件 Index 样式序号,只支持自定义样式,序号从1开始,必须先调用Office_GetStyleCount并设置Base为1时获取到的ID才行 Name 样式名称 只支持自定义样式名称,二选一使用,删除多个样式的话,名称用|间隔 {"req":"Office_DelStyle","rid":79,"para":{"Name":"TestStyle"}} 返回:{"ret":0,"rid":79,"data":{"Ret":"0"}} 80)请求开始播放幻灯片,适用于PPT软件 Slide 指定开始的幻灯片序号,不设置时从头开始,-1为当前幻灯片开始 FullScreen 默认全屏播放,0窗口内播放 {"req":"Office_BeginPlay","rid":80,"para":{"Slide":1,"FullScreen":1}} 返回:{"ret":0,"rid":80,"data":{"Ret":"0"}} 81)请求退出播放幻灯片,适用于PPT软件 {"req":"Office_EndPlay","rid":81,"para":{}} 返回:{"ret":0,"rid":81,"data":{"Ret":"0"}} 82)请求幻灯片中插入多媒体,适用于PPT软件 Link 为1则只是链接到文件(网络路径不支持1) Save 是否插入后自动保存到文档 Slide 指定幻灯片序号,不设置时取当前的 MediaFile 需要做UrlEncode编码,如非全路径,除非启动时指定了数据文件目录DataPath,否则默认使用中间件程序Data子目录作为根目录使用 指定插入多媒体显示的位置及尺寸 Left、Top、Width、Height,如没指定,Left及Top默认为0,Width及Height须指定 {"req":"Office_InsertMedia","rid":81,"para":{"Slide":1,"MediaFile":"d:/zorro/test.mp4","Width":300,"Height":300}} 返回:{"ret":0,"rid":81,"data":{"Ret":"0"}} 83)请求设置或者获取页面的显示比例及视图设置,适用于Word软件 Scall 显示比例 Fit 适配方式 https://learn.microsoft.com/zh-cn/office/vba/api/word.wdpagefit 以上2个参数设置任意一个代表设置,不传参数代表获取 {"req":"Office_PageZoom","rid":83,"para":{"Scall":"100"}} 返回:{"ret":0,"rid":83,"data":{"Ret":"0","Scall":"100","Fit":"3"}} 84)请求幻灯片中插入3D模型,适用于PPT 2016及新版软件 Link 为1则只是链接到文件(网络路径不支持1) Save 是否插入后自动保存到文档 Slide 指定幻灯片序号,不设置时取当前的 ModelFile 需要做UrlEncode编码,如非全路径,除非启动时指定了数据文件目录DataPath,否则默认使用中间件程序Data子目录作为根目录使用 指定插入模型显示的位置及尺寸 Left、Top、Width、Height,如没指定,Left及Top默认为0,Width及Height须指定 {"req":"Office_Insert3DModel","rid":84,"para":{"Slide":1,"ModelFile":"d:/zorro/test.glb","Width":300,"Height":300}} 返回:{"ret":0,"rid":84,"data":{"Ret":"0"}} 85)请求链接跳转,适用于Word、Excel、PPT软件 Name为超链接名称 PPT不支持Name Addr为超链接地址 Index为序号 仅PPT支持Index {"req":"Office_HyperlinkFollow","rid":85,"para":{"Name":"Test"}} {"req":"Office_HyperlinkFollow","rid":85,"para":{"Address":"http://www.zorrosoft.com/"}} {"req":"Office_HyperlinkFollow","rid":85,"para":{"Index":"1"}} 返回:{"ret":0,"rid":85,"data":{"Ret":"0"}} 86)请求获取当前表单内容,适用于Excel软件 {"req":"Office_GetCurCell","rid":86,"para":{}} 返回:{"ret":0,"rid":86,"data":{"Ret":"0","Addr":"C1","Val":""}} 87)请求设置当前表单内容,适用于Excel软件 Formula 设置公式 Formula 设置值 {"req":"Office_SetCurCell","rid":87,"para":{"Formula":"A1=1","Val":"test1"}} 返回:{"ret":0,"rid":87,"data":{"Ret":"0"}} 88)请求获取表单内容,适用于Excel软件 {"req":"Office_GetCellData","rid":88,"para":["A1","A2","B1","C3"]} 返回:{"ret":0,"rid":88,"data":{"Ret":"0","Data":[]}} 89)请求设置表单内容,适用于Excel软件 Addr 表单地址 Formula 设置公式 Formula 设置值 {"req":"Office_PutCellData","rid":89,"para":[{"Addr":"C1","Val":"test1","Formula":"A1=1"},{"Addr":"C1","Val":"test1"}]} 返回:{"ret":0,"rid":89,"data":{"Ret":"0"}} 90)设置文档选中内容的样式,适用于Word软件 Type 内置样式类型,详细定义参考:https://learn.microsoft.com/zh-cn/office/vba/api/word.wdbuiltinstyle Index 样式序号,支持自定义样式,序号从1开始 Name 样式名称 根据类型、序号或名称,三选一使用,支持自定义样式名称,自定义样式只支持根据名称设置 {"req":"Office_SetSelectStyle","rid":90,"para":{"Style":"TestStyle"}} 返回:{"ret":0,"rid":90,"data":{"Ret":"0"}} 91)请求获取关闭时自动保存标记,适用于Word、Excel、PPT软件 {"req":"Office_GetAutoSave","rid":91,"para":{}} 返回:{"ret":0,"rid":91,"data":{"Ret":"0","AutoSave":0}} 92)请求设置关闭时自动保存标记,适用于Word、Excel、PPT软件 {"req":"Office_SetAutoSave","rid":92,"para":{"AutoSave":1}} 返回:{"ret":0,"rid":92,"data":{"Ret":"0","AutoSave":1}} 以下是未单独封装VBA接口功能的通用请求方法 100)、请求获取属性值 Name 指定属性名称 Application默认作为顶级存在,如遇到取子接口的,名称增加子接口的名称,支持多级,比如获取当前文档的名称用ActiveDocument.Name 下同 {"req":"Office_GetProperty","rid":100,"para":{"Name":"Version"}} {"req":"Office_GetProperty","rid":100,"para":{"Name":"ActiveDocument.Name"}} 返回: {"ret":0,"rid":100,"data":{"Ret":0,"Val":""}} 101)、请求设置属性 Name 指定属性名称 如遇到设置子接口的,名称增加子接口的名称,支持多级 {"req":"Office_PutProperty","rid":101,"para":{"Name":"Visible","Val":"-1"}} {"req":"Office_PutProperty","rid":101,"para":{"Name":"ActiveDocument.Saved","Val":"-1"}} 返回: {"ret":0,"rid":101,"data":{"Ret":0}} 102)、请求无传入参数方法 Name 指定方法名称 如遇到调用子接口的,名称增加子接口的名称,支持多级,比如调用VLC播放列表播放方法名称用playlist.play 下同 DID 也可以指定方法序号 {"req":"Office_Invoke0","rid":102,"para":{"Name":"ScreenRefresh"}} {"req":"Office_Invoke0","rid":102,"para":{"Name":"ActiveDocument.PrintPreview"}} 返回: {"ret":0,"rid":102,"data":{"Ret":0,"Val":""}} 103)、请求只传入1个参数方法 Name 指定方法名称 如遇到调用子接口的,名称增加子接口的名称,支持多级,比如调用VLC播放列表播放方法名称用playlist.add 下同 DID 也可以指定方法序号 Para1 对应参数值 {"req":"Office_Invoke1","rid":103,"para":{"Name":"CleanString","Para1":"Test"}} {"req":"Office_Invoke1","rid":103,"para":{"Name":"ActiveDocument.SetCompatibilityMode","Para1":"15"}} 返回: {"ret":0,"rid":103,"data":{"Ret":0,"Val":""}} 104)、请求只传入2个参数方法 Name 指定方法名称 DID 也可以指定方法序号 Para1和Para2分别对应参数1和2数值,如果可缺省的值可以不传,比如只传Para1,下同 {"req":"Office_Invoke2","rid":104,"para":{"Name":"KeyString","Para1":"","Para2":""}} {"req":"Office_Invoke2","rid":104,"para":{"Name":"ActiveDocument.Range","Para1":"1","Para2":"5"}} 返回: {"ret":0,"rid":104,"data":{"Ret":0,"Val":""}} 105)、请求只传入3个参数方法 Name 指定方法名称 DID 也可以指定方法序号 Para1、Para2、Para3分别对应参数1、2和3的数值 {"req":"Office_Invoke3","rid":105,"para":{"Name":"","Para1":"","Para2":"","Para3":""}} 返回: {"ret":0,"rid":105,"data":{"Ret":0,"Val":""}} 106)、请求只传入4个参数方法 Name 指定方法名称 DID 也可以指定方法序号 Para1、Para2、Para3、Para4分别对应参数1、2、3和4的数值 {"req":"Office_Invoke4","rid":106,"para":{"Name":"","Para1":"","Para2":"","Para3":"","Para4":""}} 返回: {"ret":0,"rid":106,"data":{"Ret":0,"Val":""}} 107)、请求只传入5个参数方法 Name 指定方法名称 DID 也可以指定方法序号 Para1、Para2、Para3、Para4、Para5分别对应参数1、2、3、4和5的数值 {"req":"Office_Invoke5","rid":107,"para":{"Name":"","Para1":"","Para2":"","Para3":"","Para4":"","Para5":""}} 返回: {"ret":0,"rid":107,"data":{"Ret":0,"Val":""}} 108)、请求只传入6个参数方法 Name 指定方法名称 DID 也可以指定方法序号 Para1、Para2、Para3、Para4、Para5、Para6分别对应参数1、2、3、4、5和6的数值 {"req":"Office_Invoke6","rid":108,"para":{"Name":"","Para1":"","Para2":"","Para3":"","Para4":"","Para5":"","Para6":""}} 返回: {"ret":0,"rid":108,"data":{"Ret":0,"Val":""}} 109)、请求只传入7个参数方法 Name 指定方法名称 DID 也可以指定方法序号 Para1、Para2、Para3、Para4、Para5、Para6、Para7分别对应参数1、2、3、4、5、6和7的数值 {"req":"Office_Invoke7","rid":109,"para":{"Name":"","Para1":"","Para2":"","Para3":"","Para4":"","Para5":"","Para6":"","Para7":""}} 返回: {"ret":0,"rid":109,"data":{"Ret":0,"Val":""}} 110)、请求只传入8个参数方法 Name 指定方法名称 DID 也可以指定方法序号 Para1、Para2、Para3、Para4、Para5、Para6、Para7、Para8分别对应参数1、2、3、4、5、6、7、8的数值 {"req":"Office_Invoke8","rid":110,"para":{"Name":"","Para1":"","Para2":"","Para3":"","Para4":"","Para5":"","Para6":"","Para7":"","Para8":""}} 返回: {"ret":0,"rid":110,"data":{"Ret":0,"Val":""}} 111)、请求只传入9个参数方法 Name 指定方法名称 DID 也可以指定方法序号 Para1、Para2、Para3、Para4、Para5、Para6、Para7、Para8、Para9分别对应参数1、2、3、4、5、6、7、8、9的数值 {"req":"Office_Invoke9","rid":111,"para":{"Name":"","Para1":"","Para2":"","Para3":"","Para4":"","Para5":"","Para6":"","Para7":"","Para8":"","Para9":""}} 返回: {"ret":0,"rid":111,"data":{"Ret":0,"Val":""}} 112)、请求只传入10个参数方法 Name 指定方法名称 DID 也可以指定方法序号 Para1、Para2、Para3、Para4、Para5、Para6、Para7、Para8、Para9、Para10分别对应参数1、2、3、4、5、6、7、8、9、10的数值 {"req":"Office_InvokeA","rid":112,"para":{"Name":"","Para1":"","Para2":"","Para3":"","Para4":"","Para5":"","Para6":"","Para7":"","Para8":"","Para9":"","Para10":""}} 返回: {"ret":0,"rid":112,"data":{"Ret":0,"Val":""}} 113)、请求只传入11个参数方法 Name 指定方法名称 DID 也可以指定方法序号 Para1、Para2、Para3、Para4、Para5、Para6、Para7、Para8、Para9、Para10、Para11分别对应参数1、2、3、4、5、6、7、8、9、10、11的数值 {"req":"Office_InvokeB","rid":113,"para":{"Name":"","Para1":"","Para2":"","Para3":"","Para4":"","Para5":"","Para6":"","Para7":"","Para8":"","Para9":"","Para10":"","Para11":""}} 返回: {"ret":0,"rid":113,"data":{"Ret":0,"Val":""}} 114)、请求只传入12个参数方法 Name 指定方法名称 DID 也可以指定方法序号 Para1、Para2、Para3、Para4、Para5、Para6、Para7、Para8、Para9、Para10、Para11、Para12分别对应参数1、2、3、4、5、6、7、8、9、10、11、12的数值 {"req":"Office_InvokeC","rid":114,"para":{"Name":"","Para1":"","Para2":"","Para3":"","Para4":"","Para5":"","Para6":"","Para7":"","Para8":"","Para9":"","Para10":"","Para11":"","Para12":""}} 返回: {"ret":0,"rid":114,"data":{"Ret":0,"Val":""}} 115)、请求只传入13个参数方法 Name 指定方法名称 DID 也可以指定方法序号 Para1、Para2、Para3、Para4、Para5、Para6、Para7、Para8、Para9、Para10、Para11、Para12、Para13分别对应参数1、2、3、4、5、6、7、8、9、10、11、12、13的数值 {"req":"Office_InvokeD","rid":115,"para":{"Name":"","Para1":"","Para2":"","Para3":"","Para4":"","Para5":"","Para6":"","Para7":"","Para8":"","Para9":"","Para10":"","Para11":"","Para12":"","Para13":""}} 返回: {"ret":0,"rid":115,"data":{"Ret":0,"Val":""}} 116)、请求只传入14个参数方法 Name 指定方法名称 DID 也可以指定方法序号 Para1、Para2、Para3、Para4、Para5、Para6、Para7、Para8、Para9、Para10、Para11、Para12、Para13、Para14分别对应参数1、2、3、4、5、6、7、8、9、10、11、12、13、14的数值 {"req":"Office_InvokeE","rid":116,"para":{"Name":"","Para1":"","Para2":"","Para3":"","Para4":"","Para5":"","Para6":"","Para7":"","Para8":"","Para9":"","Para10":"","Para11":"","Para12":"","Para13":"","Para14":""}} 返回: {"ret":0,"rid":116,"data":{"Ret":0,"Val":""}} 117)、请求只传入15个参数方法 Name 指定方法名称 DID 也可以指定方法序号 Para1、Para2、Para3、Para4、Para5、Para6、Para7、Para8、Para9、Para10、Para11、Para12、Para13、Para14、Para15分别对应参数1、2、3、4、5、6、7、8、9、10、11、12、13、14、15的数值 {"req":"Office_InvokeF","rid":117,"para":{"Name":"","Para1":"","Para2":"","Para3":"","Para4":"","Para5":"","Para6":"","Para7":"","Para8":"","Para9":"","Para10":"","Para11":"","Para12":"","Para13":"","Para14":"","Para15":""}} 返回: {"ret":0,"rid":117,"data":{"Ret":0,"Val":""}} 118)、请求只传入16个参数方法 Name 指定方法名称 DID 也可以指定方法序号 Para1、Para2、Para3、Para4、Para5、Para6、Para7、Para8、Para9、Para10、Para11、Para12、Para13、Para14、Para15、Para16分别对应参数1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16的数值 {"req":"Office_InvokeG","rid":118,"para":{"Name":"","Para1":"","Para2":"","Para3":"","Para4":"","Para5":"","Para6":"","Para7":"","Para8":"","Para9":"","Para10":"","Para11":"","Para12":"","Para13":"","Para14":"","Para15":"","Para16":""}} 返回: {"ret":0,"rid":118,"data":{"Ret":0,"Val":""}} 5、事件通知: A、以下为Word程序通知 B、PluginOK支持的事件通知: 1) 网页组件是否响应了热键全屏 以下分别为Word字处理、Excel表格、Powerpoint演示程序的全屏事件通知 {"event":"WORD_FullScreen","data":{"FullScreen":0}} FullScreen为当前是否全屏标记 {"event":"EXCEL_FullScreen","data":{"FullScreen":0}} FullScreen为当前是否全屏标记 {"event":"PPT_FullScreen","data":{"FullScreen":0}} FullScreen为当前是否全屏标记 2) Wrl_AppletExit 网页组件退出通知 {"event":"Wrl_AppletExit","data":{"ID":1}} 3) 文档加载完成通知 File 本地打开文件路径 Type 打开还是新建 {"event":"WORD_LoadOK","data":{"File":"","Type":1}} {"event":"EXCEL_LoadOK","data":{"File":"","Type":1}} {"event":"PPT_LoadOK","data":{"File":"","Type":1}} 4) 文档保存通知 Type 0保存 1另存 Flag 0或1成功 大于1保存失败 -1 退出时有修改没保存 {"event":"WORD_Save","data":{"File":"","Type":0,"Flag":0}} {"event":"EXCEL_Save","data":{"File":"","Type":0,"Flag":0}} {"event":"PPT_Save","data":{"File":"","Type":0,"Flag":0}} 5) 文档打开失败通知 File 本地打开文件路径 Err 错误码 {"event":"WORD_LoadError","data":{"File":"","Err":0}} {"event":"EXCEL_LoadError","data":{"File":"","Err":0}} {"event":"PPT_LoadError","data":{"File":"","Err":0}} 6) 服务器文档下载进度通知 Url 下载地址 Percent 进度百分比 {"event":"OFFICE_NetPercent","data":{"Url":"","Percent":0}} 7) 服务器文档下载错误通知 Url 下载地址 Code 错误码 Desc 错误描述 {"event":"OFFICE_NetError","data":{"Url":"","Code":0,"Desc":""}} 6、其它 请求参数的JSON数据包,请确保是UTF-8无签名的编码。 更多接口请求说明,请参考安装目录中的文档TestWrl.txt、SDK包中的“中间件开发者手册.pdf”及“中间件安全解决方案.pdf”。 如还有疑问请直接联系客服 加微信:ZorroSoft,或加QQ群:23126938