0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

简要介绍一下Python-UNO的使用方法

马哥Linux运维 2018-01-04 14:54 次阅读

OpenOffice是一个免费的、开源的办公套装,集成了允许开发者用不同语言进行开发的APIPython-UNO让你可以在Python环境下使用OpenOffice。本文简要介绍了一下Python-UNO的使用方法。

OpenOffice.org作为一款免费的开源Office套装,提供了强大的、兼容的解决方案,这为它树立了相当好的口碑。据它所称,下载次数已经超过了五千万次了,而且它可以在多个平台上运行。开发者很难忽视这样一个项目,这也是OpenOffice.org为什么要提供API允许开发者在不同语言环境下使用OpenOffice.org的原因了。

当然了,你可能很难想像Python也包含在OpenOffice.org允许使用的语言列表中,因为Python会让事情变得“太简单”了。而Python-UNO恰恰把一切变成可能。OpenOffice.org利用了通用网络对象(Universal Network Objects,UNO)。这项技术使得OpenOffice.org可以与不同语言写成的部件兼容协作。Python-UNO提供了使用它的一个Python接口

Python-UNO包含在OpenOffice.org里,所以不需要再安装其他东西了。不幸的是,这有一个缺点。由于OpenOffice.org 2.0里包含的Python版本是2.3.5,所以无法使用最近添加的功能。当然也有人在努力解决这个问题,让OpenOffice.org跟新一些的Python版本兼容。

也有一些linux发行版默认安装Python的时候也配置了Python-UNO使之可以工作,比如Ubuntu就是这么做的。你可以运行Python尝试import uno模块看看行不行。如果可以的话,就让我们开始使用Python-UNO吧。

连接OpenOffice.org

首先我们先连接OpenOffice.org,只有几个小步骤,很简单。在连接OpenOffice.org之前,我们要先确保它一直在监听。这包括在启动它的时候传递一个字符串给它。首先,确保OpenOffice.org完全退出(如果用的是Windows系统,还需要从系统盘中退出OpenOffice.org),然后打开终端,切换到OpenOffice.org的安装目录,并进入执行文件所在目录。接下来,我们将打开OpenOffice.org Writer,传入一个参数,允许OpenOffice.org监听到我们之后要做的连接:

这样打开的OpenOffice.org跟普通方式打开的外观是没有差别的。我们传递的参数创建了一个UNO接收器,它会监听我们以便通过Python-UNO和OpenOffice.org的API进行连接。在新窗口打开程序所在目录,找到OpenOffice.org的Python版本并执行之,这样会进入可交互的解释器。另外,如果你知道你的Linux发行版默认安装的Python里已经包括了Python-UNO,那你可以像往常一样打开Python。

第一步当然就是导入Python-UNO模块啦,名字是uno:

必须做的第一件事是导入一个本地的组件上下文。如果你想彻底弄清楚什么是组件上下文以及它的用途,你可以自行google。这里,我们稍稍解释一下。一个上下文管理器由一个服务管理器和相关对象组成,把它当成服务管理器存在的环境就是了。

那服务管理器是什么呢?顾名思义,服务管理器用来管理服务。它的名字就是其功能的简单定义。最后解释一下服务。服务就是绑定了一系列特定任务的对象。比如说,有一个特定的服务负责加载和管理文档,另一个用来连接OpenOffice.org的设置。服务是由服务管理器进行管理的,服务管理器存在于一个组件上下文。当然啦,事情没那么简单,但是这里我们不需要用到其他的知识。

简单介绍了一下组件上下文,服务管理器和服务这几个概念后,让我们继续,创建一个本地的组件上下文。我们之后会用它来获取OpenOffice.org的组件上下文:

现在我们有了一个本地组件上下文。接下来,我们还要获取UnoUrlResolver服务。这个服务用于连接OpenOffice.org。我们需要利用服务管理器的createInstanceWithContext方法,这个方法在local.ServiceManager中。参数设为我们想要的服务名称,和上下文实例:

简要介绍一下Python-UNO的使用方法

这样我们就可以连接OpenOffice.org了。很简单,只要调用一个方法,把参数设成我们启动OpenOffice.org Writer时传递的参数就可以了。之后,我们就可以利用OpenOffice.org的组件上下文,通过OpenOffice.org的API对它进行操作了:

简要介绍一下Python-UNO的使用方法

参数跟启动OpenOffice.org时的参数仅有微小的区别,只是加了“StarOffice.ComponentContext”请求OpenOffice.org的组件上下文而已。我们还添加了个协议(uno)在最前面。现在,我们已经连接上了OpenOffice.org。

使用桌面服务

既然我们可以使用OpenOffice.org的API,那么让我们来操作一下文件吧。我早前提到过有一个服务是负责当前文档的。这个服务的名称是“com.sun.star.frame.Desktop”。通过这个服务我们就可以玩转启动OpenOffice.org时创建的OpenOffice.org Writer文档了。首先,我们需要用前面说过的createInstanceWrithContext方法拿到服务,参数是服务名称和context。

简要介绍一下Python-UNO的使用方法

很好,现在我们有了Desktop服务了,也有能力加载文档并管理文档了。我们先尝试修改当前文档。用getCurrentComponent方法:

修改文档前,要先创建一个游标cursor。这很简单:

通过游标,我们可以往文档里添加一些内容。先试着加一段简单的字符串:

执行上面代码后,你应该可以看到文档中多出一行文本。加入断行符可以向文档中加入换行:

简单的缩进也很容易实现。只要加入一个缩进符“t”:

当然了,重复性地添加文本是无效的,这就是我们要操作游标的原因了。比如说,我们想把大一号的字体。这很容易通过游标属性实现。UNO对象包括了属性,这些属性可以用很简单的方法调用进行修改。在我们改变游标字体尺寸前,我们先获取目前的字体大小:

如你所见,字体尺寸属性的名称叫“CharHeight”。调用另一个方法可以修改这个属性。让我们把字体大小改成20:

现在字体大小已经改变了,我们可以添加一些字体大小为20的文本进文档里了:

不只是文字尺寸可以改变,基本上所有东西都能改变。让我们改变字体和字体粗细:

浅谈表格

工作中经常要用到表格,让我们看一下怎么在Python-UNO里使用表格。先打开一个新的文档:

在新的空白文档上开始使用表格。我们要做的表格包含五个国家,还有每个国家的人口。所以,这个表格会有6行,其中一行是表头;还有2列。下面是创建表格的命令:

当然,我们需要把表格的行数和列数传递给population。下面是初始化函数:

如果你看一下打开的文档,你还什么都看不到。你要插入这个表格,才看得到。表格的插入跟文本插入是类似的:

现在可以开始插入表格内容了。包括两个步骤,说明每个单元格的名字,然后插入文本。表格的第一行命名为“A”,第一列命名为“1”.这个命名模式持续到表格最后,每一个单元格的名字都是行名和列名的组合。先插入表头:

接下来,可以把国家信息填进去了:

结论

OpenOffice.org是相当强大的工具,特别是它还提供了可以被很多不同语言调用的API。幸运的是,这些语言里包括了Python,即Python-UNO。Python开发者们可以导入这个模块,然后创建一个本地组件上下文环境,这个环境能用来连接OpenOffice.org的上下文环境。连接后,开发者可以修改文档。虽然这篇文章只涉及了插入文本和表格还有改变字体属性,但是OpenOffice.org的API还提供了很多功能。有很多方法可以修改文本和表格。虽然我们只讲了OpenOffice.org的Writer软件,但是还有OpenOffice.org套装的其他应用可以使用。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • python
    +关注

    关注

    55

    文章

    4763

    浏览量

    84351

原文标题:Python操作OpenOffice

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Python库的twisted简介安装和使用方法

    Py之twisted:Python库之twisted简介、安装、使用方法等详细攻略
    发表于 12-25 10:03

    Python库的PyMySQL简介安装及使用方法

    Py之PyMySQL:Python库之PyMySQL的简介、安装、使用方法之详细攻略
    发表于 12-26 10:40

    Python库的Shutil简介和安装及使用方法

    Py之Shutil:Python库之Shutil简介、安装、使用方法之详细攻略
    发表于 12-27 16:46

    Python库的Xlrd简介和安装及使用方法

    Py之Xlrd:Python库之Xlrd简介、安装、使用方法之详细攻略
    发表于 12-27 16:46

    Python库的ipykernel简介安装及使用方法

    Py之ipykernel:Python库之ipykernel简介、安装、使用方法之详细攻略
    发表于 12-27 16:47

    python库之basemap安装和使用方法

    Py之basemap:python库之basemap的简介、安装、使用方法之详细攻略
    发表于 12-28 10:24

    请问一下缓冲器和译码器的使用方法

    本帖最后由 sunboy25 于 2019-5-16 09:54 编辑 我想问一下,有谁知道哪个教程中有介绍三态缓冲器和译码器在电路的使用方法
    发表于 05-15 22:55

    介绍一下8255A芯片的使用方法

    本次我们介绍一下8255A芯片的使用方法在对8255A进行编程操作时候,我们只需要了解三个步骤:(1)控制端口写控制字;(2)8255A端口地址计算;(3)对应端口读/写数据。8255A控制字
    发表于 07-29 07:37

    总结一下串口的几种使用方法

    使用方法对以后的开发还是很有帮助的。有关串口的知识我在之前的博客中有介绍:点击链接跳转.仅向上位机打印调试信息单纯利用串口向上位机打印调试信息,程序如下:void USART1_Init( uin...
    发表于 02-10 08:03

    ModelSim的简要使用方法

    ModelSim的简要使用方法,感兴趣的小伙伴们可以瞧瞧。
    发表于 11-10 14:20 4次下载

    电流表的使用方法_钳型电流表的使用方法及图解

     电流表是指用来测量交、直流电路中电流的仪表。在电路图中,电流表的符号为“圈A”。电流值以“安”或“A“为标准单位。本文主要介绍一下电流表的使用方法以及钳型电流表的使用方法及图解,
    发表于 02-08 10:18 11.5w次阅读

    python中的字典(dict)对象以及其使用方法

    本文通过以英文的形式全面讲解了python中的字典(dict)对象以及其使用方法
    发表于 05-15 10:00 1次下载

    Python基础教程之Python界面程序开发应用技术的详细资料概述

    本文介绍Python 开发界面程序的基本技术情况,简要分析了各种技术的优劣,并着重探讨了其中WxPython 界面库和Tkinter 界面库的使
    发表于 10-24 17:24 11次下载

    锡膏厂家浅谈一下焊锡丝的正确使用方法

    一下具体正确使用方法:1、焊锡方法要正确,使用正确的焊接方法,不但可以省时,还能减少锡渣的产生。2、焊锡丝焊接而成的焊点,只可以作为零件之间导电与散热之用,不能作为力的支撑点。3、尽
    的头像 发表于 06-15 14:21 915次阅读
    锡膏厂家浅谈<b class='flag-5'>一下</b>焊锡丝的正确<b class='flag-5'>使用方法</b>?

    分享一下STM32基于CubeMX独立看门狗的使用方法

    项目里面需要加个独立看门狗,就上网了解了一下,具体原理后期有时间再分享,今天先简单分享一下使用方法
    的头像 发表于 10-26 14:38 2939次阅读
    分享<b class='flag-5'>一下</b>STM32基于CubeMX独立看门狗的<b class='flag-5'>使用方法</b>