diff options
author | CoprDistGit <infra@openeuler.org> | 2023-06-20 05:10:08 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-06-20 05:10:08 +0000 |
commit | beed635d745ec01685d5c65530ec51bc5b3fdda7 (patch) | |
tree | 953f7e6a7910aebfa3320da5acb1fe52303cce68 /python-pywpsrpc.spec | |
parent | 457cfe0729661f11b74ad3d1f0e1c610e754b379 (diff) |
automatic import of python-pywpsrpcopeneuler20.03
Diffstat (limited to 'python-pywpsrpc.spec')
-rw-r--r-- | python-pywpsrpc.spec | 522 |
1 files changed, 522 insertions, 0 deletions
diff --git a/python-pywpsrpc.spec b/python-pywpsrpc.spec new file mode 100644 index 0000000..8f00371 --- /dev/null +++ b/python-pywpsrpc.spec @@ -0,0 +1,522 @@ +%global _empty_manifest_terminate_build 0 +Name: python-pywpsrpc +Version: 2.3.6 +Release: 1 +Summary: Python bindings for the WPS Office RPC +License: MIT +URL: https://github.com/timxx/pywpsrpc +Source0: https://mirrors.aliyun.com/pypi/web/packages/8c/10/184b06650ebc6f0565c80977f1d61344d77922f66553b69556a1e2905a21/pywpsrpc-2.3.6.tar.gz +BuildArch: noarch + + +%description +# pywpsrpc + +[](https://github.com/timxx/pywpsrpc/actions) +[](https://pypi.org/project/pywpsrpc/) +[](http://python.org/) +[](https://opensource.org/licenses/MIT) + +WPS Office for Linux二次开发C++接口Python绑定. + +*Read this in other languages: [English](README_en.md)* + +## WPS Office二次开发接口 + +WPS二次开发接口允许开发者通过给定的接口来调起WPS并执行指定的任务, +比如你可以打开、编辑然后保存文档,转换文档格式等文档自动化操作,又或者将WPS嵌入到自己的程序、进行功能扩展等。 + +关于详细的接口文档,可参考 + +- WPS官方的开发网站 <https://open.wps.cn/docs/client/wpsLoad> +- VBA官方文档 <https://docs.microsoft.com/en-us/office/vba/api/overview/> + + +对于pywpsrpc本身的文档,可跳转到[wiki](https://github.com/timxx/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`命令安装 + + +## 快速上手 + +``` python +# 第一步先import所需模块(rpcxxxapi,xxx为对应项目的名字) +# rpcwpsapi模块为WPS文字项目的开发接口 +# rpcwppapi则是WPS演示的 +# rpcetapi毫无疑问就是WPS表格的了 +# 另外还有common模块,为前三者的公共接口模块,通常不能单独使用 + +# 调起WPS必需通过createXXXRpcInstance接口,所以导入它是必需的 +# 以WPS文字为例 +from pywpsrpc.rpcwpsapi import (createWpsRpcInstance, wpsapi) +from pywpsrpc import RpcIter + + +# 这里仅创建RPC实例 +hr, rpc = createWpsRpcInstance() + +# 注意: +# WPS开发接口的返回值第一个总是HRESULT(无返回值的除外) +# 通常不为0的都认为是调用失败(0 == common.S_OK) +# 可以使用common模块里的FAILED或者SUCCEEDED去判断 + +# 通过rpc实例调起WPS进程 +hr, app = rpc.getWpsApplication() + +# 比如添加一个空白文档 +hr, doc = app.Documents.Add() + +# 加点文字 +selection = app.Selection +selection.InsertAfter("Hello, world") + +# 将前面插入的"Hello, world"加粗 +selection.Font.Bold = True + +# 光标移到末尾 +selection.EndKey() + +# 再插入空段 +selection.InsertParagraph() + +# 光标移到新段 +selection.MoveDown() + +# 再码些文字 +selection.TypeText("pywpsrpc~") + +# 使用RpcIter遍历所有段 +paras = doc.Paragraphs +for para in RpcIter(paras): + print(para.Range.Text) + +# 或者通过索引方式 +for i in range(0, paras.Count): + # 注意:首个元素总是从1开始 + print(paras[i + 1].OutlineLevel) + +def onDocumentBeforeSave(doc): + # 如果想取消当前文档保存,第二个返回值设为True + print("onDocumentBeforeSave called for doc: ", doc.Name) + # SaveAsUI, Cancel + return True, False + +# 注册文档保存前通知 +rpc.registerEvent(app, + wpsapi.DIID_ApplicationEvents4, + "DocumentBeforeSave", + onDocumentBeforeSave) + +# 保存文档, onDocumentBeforeSave会被调用到 +doc.SaveAs2("test.docx") + +# 退出WPS进程 +# 使用wpsapi.wdDoNotSaveChanges来忽略文档改动 +app.Quit(wpsapi.wdDoNotSaveChanges) +``` + +## 例子 + +### 文档互转 + - [WPS文字](examples/rpcwpsapi/convertto) + - [WPS演示](examples/rpcwppapi/wpp_convert.py) + - [WPS表格](examples/rpcetapi/et_convert.py) + +### 嵌入 +[WPS嵌入第三方进程窗口](examples/rpcwpsapi/embedded) + +## 在服务器上运行 +[点我查看](https://github.com/timxx/pywpsrpc/wiki/Run-on-Server) + + + +%package -n python3-pywpsrpc +Summary: Python bindings for the WPS Office RPC +Provides: python-pywpsrpc +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-pywpsrpc +# pywpsrpc + +[](https://github.com/timxx/pywpsrpc/actions) +[](https://pypi.org/project/pywpsrpc/) +[](http://python.org/) +[](https://opensource.org/licenses/MIT) + +WPS Office for Linux二次开发C++接口Python绑定. + +*Read this in other languages: [English](README_en.md)* + +## WPS Office二次开发接口 + +WPS二次开发接口允许开发者通过给定的接口来调起WPS并执行指定的任务, +比如你可以打开、编辑然后保存文档,转换文档格式等文档自动化操作,又或者将WPS嵌入到自己的程序、进行功能扩展等。 + +关于详细的接口文档,可参考 + +- WPS官方的开发网站 <https://open.wps.cn/docs/client/wpsLoad> +- VBA官方文档 <https://docs.microsoft.com/en-us/office/vba/api/overview/> + + +对于pywpsrpc本身的文档,可跳转到[wiki](https://github.com/timxx/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`命令安装 + + +## 快速上手 + +``` python +# 第一步先import所需模块(rpcxxxapi,xxx为对应项目的名字) +# rpcwpsapi模块为WPS文字项目的开发接口 +# rpcwppapi则是WPS演示的 +# rpcetapi毫无疑问就是WPS表格的了 +# 另外还有common模块,为前三者的公共接口模块,通常不能单独使用 + +# 调起WPS必需通过createXXXRpcInstance接口,所以导入它是必需的 +# 以WPS文字为例 +from pywpsrpc.rpcwpsapi import (createWpsRpcInstance, wpsapi) +from pywpsrpc import RpcIter + + +# 这里仅创建RPC实例 +hr, rpc = createWpsRpcInstance() + +# 注意: +# WPS开发接口的返回值第一个总是HRESULT(无返回值的除外) +# 通常不为0的都认为是调用失败(0 == common.S_OK) +# 可以使用common模块里的FAILED或者SUCCEEDED去判断 + +# 通过rpc实例调起WPS进程 +hr, app = rpc.getWpsApplication() + +# 比如添加一个空白文档 +hr, doc = app.Documents.Add() + +# 加点文字 +selection = app.Selection +selection.InsertAfter("Hello, world") + +# 将前面插入的"Hello, world"加粗 +selection.Font.Bold = True + +# 光标移到末尾 +selection.EndKey() + +# 再插入空段 +selection.InsertParagraph() + +# 光标移到新段 +selection.MoveDown() + +# 再码些文字 +selection.TypeText("pywpsrpc~") + +# 使用RpcIter遍历所有段 +paras = doc.Paragraphs +for para in RpcIter(paras): + print(para.Range.Text) + +# 或者通过索引方式 +for i in range(0, paras.Count): + # 注意:首个元素总是从1开始 + print(paras[i + 1].OutlineLevel) + +def onDocumentBeforeSave(doc): + # 如果想取消当前文档保存,第二个返回值设为True + print("onDocumentBeforeSave called for doc: ", doc.Name) + # SaveAsUI, Cancel + return True, False + +# 注册文档保存前通知 +rpc.registerEvent(app, + wpsapi.DIID_ApplicationEvents4, + "DocumentBeforeSave", + onDocumentBeforeSave) + +# 保存文档, onDocumentBeforeSave会被调用到 +doc.SaveAs2("test.docx") + +# 退出WPS进程 +# 使用wpsapi.wdDoNotSaveChanges来忽略文档改动 +app.Quit(wpsapi.wdDoNotSaveChanges) +``` + +## 例子 + +### 文档互转 + - [WPS文字](examples/rpcwpsapi/convertto) + - [WPS演示](examples/rpcwppapi/wpp_convert.py) + - [WPS表格](examples/rpcetapi/et_convert.py) + +### 嵌入 +[WPS嵌入第三方进程窗口](examples/rpcwpsapi/embedded) + +## 在服务器上运行 +[点我查看](https://github.com/timxx/pywpsrpc/wiki/Run-on-Server) + + + +%package help +Summary: Development documents and examples for pywpsrpc +Provides: python3-pywpsrpc-doc +%description help +# pywpsrpc + +[](https://github.com/timxx/pywpsrpc/actions) +[](https://pypi.org/project/pywpsrpc/) +[](http://python.org/) +[](https://opensource.org/licenses/MIT) + +WPS Office for Linux二次开发C++接口Python绑定. + +*Read this in other languages: [English](README_en.md)* + +## WPS Office二次开发接口 + +WPS二次开发接口允许开发者通过给定的接口来调起WPS并执行指定的任务, +比如你可以打开、编辑然后保存文档,转换文档格式等文档自动化操作,又或者将WPS嵌入到自己的程序、进行功能扩展等。 + +关于详细的接口文档,可参考 + +- WPS官方的开发网站 <https://open.wps.cn/docs/client/wpsLoad> +- VBA官方文档 <https://docs.microsoft.com/en-us/office/vba/api/overview/> + + +对于pywpsrpc本身的文档,可跳转到[wiki](https://github.com/timxx/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`命令安装 + + +## 快速上手 + +``` python +# 第一步先import所需模块(rpcxxxapi,xxx为对应项目的名字) +# rpcwpsapi模块为WPS文字项目的开发接口 +# rpcwppapi则是WPS演示的 +# rpcetapi毫无疑问就是WPS表格的了 +# 另外还有common模块,为前三者的公共接口模块,通常不能单独使用 + +# 调起WPS必需通过createXXXRpcInstance接口,所以导入它是必需的 +# 以WPS文字为例 +from pywpsrpc.rpcwpsapi import (createWpsRpcInstance, wpsapi) +from pywpsrpc import RpcIter + + +# 这里仅创建RPC实例 +hr, rpc = createWpsRpcInstance() + +# 注意: +# WPS开发接口的返回值第一个总是HRESULT(无返回值的除外) +# 通常不为0的都认为是调用失败(0 == common.S_OK) +# 可以使用common模块里的FAILED或者SUCCEEDED去判断 + +# 通过rpc实例调起WPS进程 +hr, app = rpc.getWpsApplication() + +# 比如添加一个空白文档 +hr, doc = app.Documents.Add() + +# 加点文字 +selection = app.Selection +selection.InsertAfter("Hello, world") + +# 将前面插入的"Hello, world"加粗 +selection.Font.Bold = True + +# 光标移到末尾 +selection.EndKey() + +# 再插入空段 +selection.InsertParagraph() + +# 光标移到新段 +selection.MoveDown() + +# 再码些文字 +selection.TypeText("pywpsrpc~") + +# 使用RpcIter遍历所有段 +paras = doc.Paragraphs +for para in RpcIter(paras): + print(para.Range.Text) + +# 或者通过索引方式 +for i in range(0, paras.Count): + # 注意:首个元素总是从1开始 + print(paras[i + 1].OutlineLevel) + +def onDocumentBeforeSave(doc): + # 如果想取消当前文档保存,第二个返回值设为True + print("onDocumentBeforeSave called for doc: ", doc.Name) + # SaveAsUI, Cancel + return True, False + +# 注册文档保存前通知 +rpc.registerEvent(app, + wpsapi.DIID_ApplicationEvents4, + "DocumentBeforeSave", + onDocumentBeforeSave) + +# 保存文档, onDocumentBeforeSave会被调用到 +doc.SaveAs2("test.docx") + +# 退出WPS进程 +# 使用wpsapi.wdDoNotSaveChanges来忽略文档改动 +app.Quit(wpsapi.wdDoNotSaveChanges) +``` + +## 例子 + +### 文档互转 + - [WPS文字](examples/rpcwpsapi/convertto) + - [WPS演示](examples/rpcwppapi/wpp_convert.py) + - [WPS表格](examples/rpcetapi/et_convert.py) + +### 嵌入 +[WPS嵌入第三方进程窗口](examples/rpcwpsapi/embedded) + +## 在服务器上运行 +[点我查看](https://github.com/timxx/pywpsrpc/wiki/Run-on-Server) + + + +%prep +%autosetup -n pywpsrpc-2.3.6 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-pywpsrpc -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Jun 20 2023 Python_Bot <Python_Bot@openeuler.org> - 2.3.6-1 +- Package Spec generated |