Hey there all,
I am trying to set up an automatic word-count script that takes a
document in a wide array of formats (.doc, .odt, .rtf, etc) and prints
the number of words contained therein. I have been searching for a
library that handles a wide array of text formats, and the most
comprehensive tool seems to be OOo. However, I'm having a lot of
trouble scripting it using Uno.
First of all, I'm currently trying to use PyUno for the scripting.
Here's what my session looks like:
> r...@ryan-desktop:~$ openoffice.org -headless
> -accept="socket,host=localhost,port=2002;urp;"
> r...@ryan-desktop:~$ python
> Python 2.6.4 (r264:75706, Dec 7 2009, 18:43:55)
> [GCC 4.4.1] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
> >>> import uno
> >>> localContext = uno.getComponentContext()
> >>> resolver =
> >>> localContext.ServiceManager.createInstanceWithContext("com.sun.star.bridge.UnoUrlResolver",localContext)
> >>> remoteContext =
> >>> resolver.resolve("uno:socket,host=localhost,port=2002;urp;StarOffice.ComponentContext")
> >>> desktop =
> >>> remoteContext.ServiceManager.createInstanceWithContext("com.sun.star.frame.Desktop",remoteContext)
> >>> document = desktop.getCurrentComponent()
> >>> controller = document.getCurrentController()
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> AttributeError: 'NoneType' object has no attribute 'getCurrentController'
The commands I entered come from these sources:
http://www.devshed.com/c/a/Python/Python-and-OpenOfficeorg/1/
http://codesnippets.services.openoffice.org/Office/Office.FetchingServicesFromDesktop.snip
I'm using Python 2.6.4, PyUno 1.9, and OOo 3.1.1 on Ubuntu Karmic.
So, my questions are these:
* Is there a better way to do word counting than using PyUno, as I'm
trying to do?
* How can I use PyUno (or another tool) to connect to OOo, load a
document, and retrieve the word count?
Thank you much,
Ryan
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]