pywpsrpc
WPS Office for Linux二次开发C++接口Python绑定.
Read this in other languages: English
WPS Office二次开发接口
WPS二次开发接口允许开发者通过给定的接口来调起WPS并执行指定的任务,
比如你可以打开、编辑然后保存文档,转换文档格式等文档自动化操作,又或者将WPS嵌入到自己的程序、进行功能扩展等。
关于详细的接口文档,可参考
对于pywpsrpc本身的文档,可跳转到wiki查看。
依赖
- Python 3.6+
- Qt5 (C++ SDK依赖)
- WPS Office for Linux 11.1.0.9080+
- sip 6.0+ (仅编译)
- qmake (仅编译)
- g++ (仅编译)
- 桌面环境(WPS运行需要)
PS,目前WPS整合模式有BUG,非把WPS嵌入到自己进程的场景建议先切换到多组件模式
如何编译
在项目顶层目录下运行终端执行: sip-build
如果需要查看编译相关输出信息,可添加 --verbose 选项
安装
建议通过PyPi安装:
pip install pywpsrpc
如果默认的源太慢,建议自行搜索添加中国pip源
通过源码编译安装:
先打包执行: sip-wheel
打包完成后再通过pip install pywpsrpc-*.whl
命令安装
快速上手
from pywpsrpc.rpcwpsapi import (createWpsRpcInstance, wpsapi)
from pywpsrpc import RpcIter
hr, rpc = createWpsRpcInstance()
hr, app = rpc.getWpsApplication()
hr, doc = app.Documents.Add()
selection = app.Selection
selection.InsertAfter("Hello, world")
selection.Font.Bold = True
selection.EndKey()
selection.InsertParagraph()
selection.MoveDown()
selection.TypeText("pywpsrpc~")
paras = doc.Paragraphs
for para in RpcIter(paras):
print(para.Range.Text)
for i in range(0, paras.Count):
print(paras[i + 1].OutlineLevel)
def onDocumentBeforeSave(doc):
print("onDocumentBeforeSave called for doc: ", doc.Name)
return True, False
rpc.registerEvent(app,
wpsapi.DIID_ApplicationEvents4,
"DocumentBeforeSave",
onDocumentBeforeSave)
doc.SaveAs2("test.docx")
app.Quit(wpsapi.wdDoNotSaveChanges)
例子
文档互转
嵌入
WPS嵌入第三方进程窗口
在服务器上运行
点我查看
关于授权
pywpsrpc为MIT开源授权协议,项目本身允许商用,但前提是你所使用的WPS Office For Linux版本允许商用(目前个人版本即社区版本不允许),具体需要联系WPS官方咨询。对于不在合理范围使用本项目的,本项目不承担任何法律责任。