金山WPS内嵌小程序:基于跨浏览器的原生小程序系统-PluginOK中间件( https://github.com/wangzuohuai/WebRunLocal )网络高级版开发,底层调用金山WPS(要求企业或企业增强版)的VBA接口实现可程序化驱动的网页在线编辑办公控件,可分别将WPS文字、WPS表格、WPS演示软件窗口内嵌到网页指定区域运行并操控。 最低可用在Chrome 41、Firefox 50、Edge 80(Chromium内核)、360极速/安全、IE 8、Opera、Electron、Vivaldi、Brave、QQ、搜狗等浏览器,也兼容运行于这些浏览器的最新版本。 金山WPS支持2013及以上的专业版、建议使用支持OFD导出的2019专业版,如使用个人版需安装VBA支持,并且只支持在Edge、Firefox、Vivaldi、Brave、Electron、Opera、IE、360极速X、QQ等浏览器中运行。 1、PluginOK中间件的安装: 1)、如果是exe的安装程序,请直接运行安装; 2)、如果是绿色版的程序包,请解压到磁盘某个目录后,双击“InstallWrl.bat”进行安装; 3)、安装完成时会启动PluginOK中间件服务,在安装目录下的Data子目录有ZbaService.txt日志文件输出运行情况。 2、金山WPS内嵌小程序控制相关接口: 说明:以下功能请通过Web Socket连接PluginOK主服务(ws://localhost:83?sid=12345&flag=1)后可执行,如默认侦听端口不是83(关于如何配置侦听端口,请参考SDK包中的文档“PluginOK开发者手册.pdf”),请在连接地址中指定端口号进行连接。 HTTP在线测试网页:http://local.zorrosoft.com/wordfull.html HTTPS在线测试网页:https://local.zorrosoft.com/officeframe.html 如还需兼容IE浏览器使用,网络版测试网页中 的CLSID需要替换为:21ADE2E6-B4DD-4F3E-8BD5-9DDAD1785F3A 前端集成可参考以上测试网页进行,HTML网页中需要嵌入以下类似代码; A、标记小程序的显示位置和大小 .OfficeApplet { margin: 20px 0 0 20px; width: 480px; height: 320px; border: 1px solid blue; } 或者 .OfficeApplet { width: 480px; height: 320px; top: 20px; left: 20px; border: 1px solid blue; } 如果在网页Header区没有标记小程序初始显示位置和大小,请在启动小程序的JSON参数里,添加以下参数: "Left":20,"Top":20,"Width":480,"Height":320 B、网页中嵌入元素 支持IFrame的: 或者直接用 另外需要嵌入用到的JS脚本,脚本程序是完全开源的。 1)、请求启动金山WPS内嵌小程序实现网页中局部加载doc/xls/ppt等文档显示: Type为浏览器类型,传0自动判断(前提是当前浏览器已启动并显示在最前端,Flag指定当前页加载时必须是0) 可强制指定浏览器类型Type(2代表Chrome 4代表Firefox 8代表Opera 16代表Edge(Chromium内核) 32代表360极速浏览器 33代表360安全浏览器 34代表360企业安全浏览器 50代表QQ浏览器 60代表搜狗浏览器) Title:网页标题中的关键词 Flag掩码标记:1指定新标签加载(1和16都不指定时为当前页加载) 2小程序显示窗口边框 4不自动裁剪越界窗口 8自动适配网页高度和宽度显示 Web:打开配置(新增方式),可代替Url使用,Flag值+64使用此配置,此命令中必须指定Left、Top、Width、Height的值 Web中参数Edit代表编辑权限 1只读打开 2跟踪修改记录 4禁止另存 8禁止打印 16支持上传下载菜单 User代表用户名 PW代表打开文档需要的密码 DataPath代表文档查找和保存默认路径 Url:加载小程序所在的网页实际地址 IframeX和IframeY分别为iframe嵌套的横竖偏移修正坐标 BarW和BarH分别是网页右侧和底部预留区域,ScrollTop为顶部滚动预留高度 小程序实际显示首先会基于Web或Url中指定的坐标和大小,再根据IframeX、IframeY、BarW、BarH设定的值做修正 Option:11是启动金山文字 为12启动金山表格 为13启动金山演示 Version:0 OLE方式加载 1完整加载 Open:为需要打开的文档路径,磁盘目录斜杠用/ 如非全路径,除非启动时指定了数据文件目录DataPath,否则默认使用中间件程序Data子目录作为根目录使用 也可在Web中指定 注意:Open、Url中如果有特殊字符= & 双引号或中文等,需要用URL编码处理后传递 举例: 自动识别当前浏览器并启动金山文字程序 {"req":"Wrl_OfficeApplet","rid":5,"para":{"Type":"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":7,"User":"test","PW":"","DataPath":"c:/OfficeDoc"},"Option":"11","Open":"D:/Zorro/test.doc"}} 自动识别当前浏览器并启动金山表格程序 {"req":"Wrl_OfficeApplet","rid":6,"para":{"Type":"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":3,"PW":""},"Option":"12","Open":"D:/Zorro/test.xls"}} 自动识别当前浏览器并启动金山演示程序 {"req":"Wrl_OfficeApplet","rid":7,"para":{"Type":"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,"PW":""},"Option":"13","Open":"D:/Zorro/test.ppt"}} 自动识别当前浏览器指定位置自动适配网页大小启动: {"req":"Wrl_OfficeApplet","rid":8,"para":{"Type":"0","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,"User":"test","PW":"","DataPath":"c:/OfficeDoc"},"Option":"11","Open":"D:/Zorro/test.doc"}} 打开远程文档,可将Open参数改为类似如下地址 "Open":"http://local.zorrosoft.com/Files/template.doc" 启动后会先后收到三个JSON数据包 A、{"ret":0,"rid":1,"data":{"ID":3}} 代表小程序WS侦听服务就绪 B、{"event":"Wrl_Listen","aid":3,"data":{"SID":"123","PID":"WpsApplet","port":950}} 返回的侦听端口,可再建立一个Web Socket连接后,调用小程序中的相关功能,比如打开一个文档。 返回ID为当前小程序运行ID,通过此ID,可执行Wrl_AppletControl、Wrl_AppletScroll、Wrl_AppletResize等命令。 C、{"event":"Wrl_AppletOK","aid":3,"rid":6,"data":{"SID":"123","PID":"WpsApplet","Port":950}} 关于Option参数,如果不确定是调用启动微软Office小程序、还是金山WPS小程序或永中Office小程序,请先调用指令 {"req":"Wrl_OfficeInfo","rid":2,"para":{}} 获得当前电脑Office安装的情况,返回值 {"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 1 代表微软Office,11代表金山WPS,21代表永中Office X64 代表是否为64位版本 Cur 代表是否当前有效 Ver 代表文件版本信息 2)、请求控制金山WPS内嵌小程序: 当前端不再需要小程序时可指定关闭,或者显示/隐藏及全屏显示等 ID为启动小程序时返回JSON中的ID值,Code代表控制类型掩码:1关闭 2全屏显示 4自动隐藏 8还原显示 16自动适配网页高度和宽度显示模式切换 32强制隐藏。其中全屏显示2,可直接通过热键ESC或取消,4和32隐藏后可通过8恢复显示 {"req":"Wrl_AppletControl","rid":2,"para":{"ID":"1","Code":4}} 3)、请求滚动金山WPS内嵌小程序: 当前端截取到网页滚动时,需要调用此接口实现小程序和网页的滚动联动 ID为启动小程序时返回JSON中的ID值 Code为滚动方向1是水平直,2是垂直,3是同时 Left为横向滚动条位置,Top为纵向滚动条位置 {"req":"Wrl_AppletScroll","rid":3,"para":{"ID":"1","Code":2,"Left":0,"Top":100}} 4)、请求改变金山WPS内嵌小程序显示位置或大小: 当前端网页显示区域缩放时,可动态修改小程序的显示位置或大小 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":".png"}} 8)、请求缩放内嵌小程序,用于浏览器网页按比例缩放,一般不需要处理: ID为启动小程序时返回JSON中的ID值,不指定Scale时,获取当前小程序所用的缩放百分比,一般和系统缩放比例一致 {"req":"Wrl_AppletScale","rid":11,"para":{"ID":1,"Scale":120}} 3、小程序安装、升级、卸载 1)、请求安装金山WPS内嵌小程序 请在测试网页输入框中,输入如下请求,然后点击发送,完成安装: {"req":"Plugin_Install","rid":1,"para":{"Name":"金山WPS在线编辑小程序","PID":"WpsApplet","Date":"2022-06-13","Desc":"跨浏览器的金山WPS内嵌网页小程序,支持在Chrome、Edge、Firefox、IE、Oprea、360、QQ等最新版本浏览器网页中内嵌文字、表格、演示等程序进行在线编辑或审阅各类办公文档。","DownAddr":"http://local.zorrosoft.com/Files/Net/WpsApplet.pid","MD5":"D1CD6AB62C08663BDF7D39A28A976019","Version":"2.2.6.3","Size":4227072,"HideIns":0,"Type":8,"Cookie":"","Auth":"","TK":"8C3466EF990D62ED8B4C0BB8CDAA2B6B48CC2F2D57C8C09F19C535326F947ED6D20F994A44F85BB391FC5F5898E2F668674264AE9C4CFD247AF8C497B2106453BC70E0ADFB1864383845A17722207A9F8CF03901A03DC3A8AD4C48BA951D3597DDFE5F93D0D5537483F381254FF28F0806A4810FDECEAECDA0477B8F2511C8E77BE9343133FE64F04EA57A222B4CD45B8EA033B2A8B23951AC027DCBAEB68B08E8A622F049D1B455F80F7CC669BF913C2C52D797368CC91C0B74F14DDBD53C609D7C06F77C6C50A0210BDA5A24FE444F4FDDB5ACA8797D0F3B6CD64C584033C99B681AD39B5F524201830CE1853A0FB0DF607E03D1F4BB11C7FE83EB16EC9DFF"}} 启动安装后,会不断收到安装进度直到安装结束。 在发布时,也可以把此小程序目录文件和中间件一起打包后发布,不用单独分发。 2)、请求升级金山WPS内嵌小程序: {"req":"Plugin_Update","rid":1,"para":{"Name":"金山WPS在线编辑小程序","PID":"WpsApplet","Date":"2022-06-13","Desc":"跨浏览器的金山WPS内嵌网页小程序,支持在Chrome、Edge、Firefox、IE、Oprea、360、QQ等最新版本浏览器网页中内嵌文字、表格、演示等程序进行在线编辑或审阅各类办公文档。","DownAddr":"http://local.zorrosoft.com/Files/Net/WpsApplet_Update.pid","MD5":"7CAB2AFC26CB4CAFBEB66FF17A4C84D0","Version":"2.2.6.3","Size":4227072,"HideIns":0,"Type":8,"Cookie":"","Auth":"","TK":"260311CFDE939E58829E361FFD8C2210E30BA7A42B1FDB0607C587C95ED64FC2CD656318BC44E64A8FF3FCA54D3B3AFB21AEC4B82870AA6ECC3AE7AAA932CF75557C6A151BC092FA38B6E20DE16D096D5DDE1D22B0E46E086BDF8BA27D3630A08D0288BB8E87C74AC44284DA5E8A88B107C9FEE24E74863188D4E07051ABA60F2CD7B9B14DE45FE1E1689BDD683D5410F982855D6A433BBBBE43712A22F0AAFAEE617F6720DCF0EBC103197FDDA814B4BC308E5EA2D3AB42D16E2FFD77C914E50CC065CB9117E919E97FC4F0F7B9B15473E835D0DC0F0667635A1DAF39368C10112C6C3DA61792A6A7CA9A2ECB8600E5D607F585DE02620CB64D4B15E5403D8E"}} 以上安装和升级的JSON请求包,可能因版本升级导致内容不同,如遇安装或升级时报错,请联系客服获取最新的请求包。 3)、请求卸载金山WPS内嵌小程序: 正式版需要添加TK校验,具体规则请参考SDK包中文档“PluginOK中间件安全解决方案.doc”,可在SDK包中的打包程序ZbaPackage.exe的中间件维护生成带TK的请求。 {"req":"Plugin_Remove","rid":3,"para":{"PID":"WpsApplet","Type":8}} 4、金山WPS内嵌小程序转调用WPS软件的VBA接口,先根据Wrl_OfficeApplet请求启动后返回的端口号,新建立一个WebSocket连接后可执行如下指令: A、常用功能请求: 1)获取文档是否修改了需要保存,适用于WPS文字软件 {"req":"Office_IsSaved","rid":1,"para":{}} 返回:{"ret":0,"rid":1,"data":{"Ret":"0","Saved":0}} 2)设置文档是否需要保存标记,适用于WPS文字软件 {"req":"Office_PutSaved","rid":2,"para":{"Saved":"1"}} 返回:{"ret":0,"rid":2,"data":{"Ret":"0"}} 3)请求打开文档 Open为打开文档路径,有中文或特殊字符等需要UrlEncode编码,适用于WPS文字、WPS表格、WPS演示软件 打开前如已有文档打开,会自动关闭上一个文档,避免同时打开多个文档 Open打开文档(不指定时新建文档) 支持相对路径,如非全路径,除非启动时指定了数据文件目录DataPath,否则默认使用中间件程序Data子目录作为根目录使用 {"req":"Office_Open","rid":3,"para":{"Open":"D:/Zorro/test.doc"}} 打开远程文档 {"req":"Office_Open","rid":3,"para":{"Open":"http://local.zorrosoft.com/Files/template.doc"}} 返回:{"ret":0,"rid":3,"data":{"Ret":"0"}} 4)请求保存,适用于WPS文字、WPS表格、WPS演示软件,如是新建文档,会创建一个临时文件名保存 {"req":"Office_Save","rid":4,"para":{}} 返回:{"ret":0,"rid":4,"data":{"Ret":"0"}} 5)请求另保存 NewFile为另保存路径,有中文或特殊字符等需要UrlEncode编码,适用于WPS文字、WPS表格、WPS演示软件 WPS文字支持导出为OFD文件(个人版不支持) NewFile支持相对路径,如非全路径,除非启动时指定了数据文件目录DataPath,否则默认使用中间件程序Data子目录作为根目录使用 {"req":"Office_SaveAs","rid":5,"para":{"NewFile":"D:/Zorro/test.xml"}} 或 {"req":"Office_SaveAs","rid":5,"para":{"Format":25,"NewFile":"D:/Zorro/test.ofd"}} 返回:{"ret":0,"rid":5,"data":{"Ret":"0"}} 6)请求导出为PDF或XPS格式 NewFile为导出文档路径,有中文或特殊字符等需要UrlEncode编码,适用于WPS文字、WPS表格软件 NewFile支持相对路径,如非全路径,除非启动时指定了数据文件目录DataPath,否则默认使用中间件程序Data子目录作为根目录使用 {"req":"Office_Export","rid":6,"para":{"NewFile":"D:/Zorro/test1.pdf"}} 返回:{"ret":0,"rid":6,"data":{"Ret":"0"}} 7)请求在当前光标位置插入图片 ImgFile为图片路径(支持网络路径),有中文或特殊字符等需要UrlEncode编码,适用于WPS文字、WPS表格、WPS演示软件 ImgFile支持相对路径,如非全路径,除非启动时指定了数据文件目录DataPath,否则默认使用中间件程序Data子目录作为根目录使用 Link为1则只是链接到文件(网络路径不支持1) Save保存到文档 {"req":"Office_InsertImg","rid":7,"para":{"ImgFile":"D:/Zorro/test.png","Link":"0","Save":"1"}} 或 {"req":"Office_InsertImg","rid":7,"para":{"ImgFile":"http://zorrosoft.com/wp-content/uploads/2021/07/2021072709255099-1024x576.png","Link":"0","Save":"1"}} 返回:{"ret":0,"rid":7,"data":{"Ret":"0","Width":"1","Height":"1"}} Width和Height分别为插入图片的宽度和高度 8)请求在当前光标位置批量插入文字,适用于WPS文字软件 {"req":"Office_Insert","rid":8,"para":[{"Paragraph":1},{"FontSize":"16","FontName":"宋体","Color":"0","Bold":"8","Text":"详情请点击这里:"},{"Paragraph":1},{"Address":"http://zorrosoft.com","Display":"佐罗软件官方网站"}]} 分别为换行、插入指定字体和颜色值的文字再换行,插入一个超链接 返回:{"ret":0,"rid":8,"data":{"Ret":"0"}} 9)请求在当前光标位置执行退格操作Backspace,适用于WPS文字软件 {"req":"Office_Backspace","rid":9,"para":{}} 返回:{"ret":0,"rid":9,"data":{"Ret":"0"}} 10)请求批量打印,适用于WPS文字、WPS表格、WPS演示软件 Copies为打印份数,默认打印所有页面,打印到文件时,需要指定OutFile,有中文或特殊字符等需要UrlEncode编码 {"req":"Office_PrintOut","rid":10,"para":{"Copies":"1","OutFile":"D:/Zorro/testprint.pdf"}} 返回:{"ret":0,"rid":10,"data":{"Ret":"0"}} 11)请求移动光标位置,适用于WPS文字软件 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)请求获取当前用户名,适用于WPS文字、WPS表格软件 {"req":"Office_GetUserName","rid":12,"para":{}} 返回:{"ret":0,"rid":12,"data":{"Ret":"0","User":"test"}} 13)请求设置当前用户名,适用于WPS文字、WPS表格软件 {"req":"Office_PutUserName","rid":13,"para":{"User":"test"}} 返回:{"ret":0,"rid":13,"data":{"Ret":"0"}} 14)请求获取当前是否修订模式,适用于WPS文字软件 {"req":"Office_GetTrackRevisions","rid":14,"para":{}} 返回:{"ret":0,"rid":14,"data":{"Ret":"0","TrackRevisions":"0"}} 15)请求设置当前是否修订模式,适用于WPS文字软件 {"req":"Office_PutTrackRevisions","rid":15,"para":{"TrackRevisions":"1"}} 返回:{"ret":0,"rid":15,"data":{"Ret":"0"}} 16)请求修订模式后续操作,适用于WPS文字软件 Type为操作类型,0默认代表切换修改模式,1代表接受所有修订 2代表拒绝所有修订 {"req":"Office_TrackRevisions","rid":16,"para":{"Type":"1"}} 返回:{"ret":0,"rid":16,"data":{"Ret":"0"}} 17)请求获取是否显示修订信息,适用于WPS文字软件 {"req":"Office_GetShowRevisions","rid":17,"para":{}} 返回:{"ret":0,"rid":17,"data":{"Ret":"0","ShowRevisions":"0"}} 18)请求设置是否显示修订信息,适用于WPS文字软件 {"req":"Office_PutShowRevisions","rid":18,"para":{"ShowRevisions":"1"}} 返回:{"ret":0,"rid":18,"data":{"Ret":"0"}} 19)请求在当前位置添加批注,适用于WPS文字软件 Text为添加批注的文字描述 {"req":"Office_InsertComment","rid":19,"para":{"Text":"批注内容"}} 返回:{"ret":0,"rid":19,"data":{"Ret":"0"}} 20)请求获取当前文档书签数量,适用于WPS文字软件 {"req":"Office_MarkCount","rid":20,"para":{}} 返回:{"ret":0,"rid":2018,"data":{"Ret":"0"}} 21)请求判断当前书签是否存在,适用于WPS文字软件 Name为书签名称 {"req":"Office_MarkIsExist","rid":21,"para":{"Name":"Caption"}} 返回:{"ret":0,"rid":21,"data":{"Ret":"0"}} 22)请求获取当前文档所有书签,适用于WPS文字软件 {"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)请求指定序号的书签名称或指定名称的文字内容,适用于WPS文字软件 Index为书签序号 Name为书签名称 {"req":"Office_GetMarkInfo","rid":23,"para":{"Index":"1"}} {"req":"Office_GetMarkInfo","rid":23,"para":{"Name":"Caption"}} 返回:{"ret":0,"rid":23,"data":{"Ret":"0"}} 24)请求指定序号的书签名称,适用于WPS文字软件 Index为书签序号 {"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)光标跳转到指定名称的书签,适用于WPS文字软件 Name为书签名称 NoSelect为1代表去掉书签选中状态 {"req":"Office_GotoMark","rid":25,"para":{"Name":"Caption","NoSelect":1}} 返回:{"ret":0,"rid":25,"data":{"Ret":"0"}} 26)获取修订数量,适用于WPS文字软件 {"req":"Office_GetRevisionsCount","rid":26,"para":{}} 返回:{"ret":0,"rid":26,"data":{"Ret":"0","Count":0}} 27)创建指定目录,适用于WPS文字、WPS表格、WPS演示软件 Dir为子目录名称,可为全路径,需要确保有创建子目录权限,非全路径时,除非启动时指定了数据文件目录DataPath,否则默认使用中间件程序Data子目录作为根目录使用 {"req":"Office_CreateDir","rid":27,"para":{"Dir":"/doc"}} 返回:{"ret":0,"rid":27,"data":{"Ret":"0"}} 28)查找文档中图片并返回BASE64编码数据,适用于WPS文字、WPS表格、WPS演示软件 Index为图片序号 从1开始编号,先查Shapes再查InlineShapes {"req":"Office_GetImage","rid":28,"para":{"Index":1}} 返回:{"ret":0,"rid":28,"data":{"Ret":"0","Code":""}} Code为返回的编码数据 29)请求合并文档到指定书签内容,适用于WPS文字软件 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)请求合并指定文档到当前文档新的一页,适用于WPS文字软件 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"}} 5、事件通知: A、以下为WPS文字程序通知 B、PluginOK支持的事件通知: 1) 小程序是否响应了热键全屏 以下分别为WPS文字、WPS表格、WPS演示程序的全屏事件通知 {"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}} 6、其它 请求参数的JSON数据包,请确保是UTF-8无签名的编码。 更多接口请求说明,请参考安装目录中的文档TestWrl.txt、SDK包中的“PluginOK开发者手册.pdf”及“PluginOK中间件安全解决方案.pdf”。 如还有疑问请直接联系客服 加微信:ZorroSoft,或加QQ群:23126938