<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.openoffice.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=JimTittsler</id>
	<title>Apache OpenOffice Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.openoffice.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=JimTittsler"/>
	<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/wiki/Special:Contributions/JimTittsler"/>
	<updated>2026-08-15T01:12:39Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Python&amp;diff=82775</id>
		<title>Python</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Python&amp;diff=82775"/>
		<updated>2008-06-13T04:55:59Z</updated>

		<summary type="html">&lt;p&gt;JimTittsler: spelling/grammar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Extensions}}&lt;br /&gt;
[[image:Py-uno_128.png|PyUNO Logo]] [[image:Pyuno_logo_a.jpg]] &lt;br /&gt;
=== News ===&lt;br /&gt;
Efforts on moving PyUNO to &amp;#039;&amp;#039;&amp;#039;Python 2.5&amp;#039;&amp;#039;&amp;#039; continue. Liyuan is pushing this initiative and has [http://udk.openoffice.org/servlets/ReadMsg?listName=dev&amp;amp;msgNo=3704 commited the CWS] on the UDK mailing list the [[CWS]] however is not ready and was sent back on issue [http://www.openoffice.org/issues/show_bug.cgi?id=71327 71327].&lt;br /&gt;
&lt;br /&gt;
=== Python and OpenOffice.org ===&lt;br /&gt;
OpenOffice.org ships with a python scripting language on it&amp;#039;s versions 2.3.4. This Python distribution comes with the [[Uno]] module which connects the [[API|UNO API]] with the python scripting language. To run this version of Python on Linux you can go to the direct OpenOffice.org PATH. OOo-Python can be run from the command line as well as you might expect with any other distribution of Python.&lt;br /&gt;
&lt;br /&gt;
==== Where is the IDE ? ====&lt;br /&gt;
OpenOffice.org&amp;#039;s IDE doesn&amp;#039;t support Python, so development has to be done from another editor that does. Any volunteer for a binding is welcomed&lt;br /&gt;
&lt;br /&gt;
==== Tips &amp;amp; Tricks ====&lt;br /&gt;
&lt;br /&gt;
Here are some useful information, helping to use python in OOo&lt;br /&gt;
&lt;br /&gt;
===== Debug output =====&lt;br /&gt;
&lt;br /&gt;
If you launch a python script, any error will silently break the execution and your extension will be hard to debug. To change this behaviour, one can change the &amp;#039;&amp;#039;&amp;#039;LogLevel&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Have a look in &lt;br /&gt;
&amp;#039;&amp;#039;/path/to/ooo/program/&amp;#039;&amp;#039;&amp;#039;pythonscript.py&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
and replace &lt;br /&gt;
&amp;#039;&amp;#039;LogLevel.use = LogLevel.&amp;#039;&amp;#039;&amp;#039;NONE&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
with&lt;br /&gt;
&amp;#039;&amp;#039;LogLevel.use = LogLevel.&amp;#039;&amp;#039;&amp;#039;DEBUG&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
There are also currently undocumented environment variables, which tell the pyUno bridge to log every call, set therefor the environment variable&lt;br /&gt;
&amp;#039;&amp;#039;export PYUNO_LOGLEVEL=ARGS&amp;#039;&amp;#039;&lt;br /&gt;
, the output is a little hard to read, but helpful during development.&lt;br /&gt;
&lt;br /&gt;
This holds for unix, for windows you need some more switches and the output gets written to files (no stdout on windows :-( ).&lt;br /&gt;
&lt;br /&gt;
Some error messages still don&amp;#039;t appear in these logs, this will improve&lt;br /&gt;
in near future (cws pyunofixes4). Once the cws is integrated, I will document these switches on the official pyuno site. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Thanks to Joerg Budischewski&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
=== Python specific information for Extension creation ===&lt;br /&gt;
To create extensions for python it is important that you have enough relation with the UNO components as well as packaging your code to be able to easily distribute your scripts through the &amp;#039;&amp;#039;OpenOffice.org package manager&amp;#039;&amp;#039;. Please  check up the tutorials on how to componentize your code as well as how to deploy remote scripting through a service implementation.&lt;br /&gt;
&lt;br /&gt;
To learn to run Python on Windows you could visit [[Using Python on Windows| this link]] for more detail information.&lt;br /&gt;
&lt;br /&gt;
=== Getting Started ===&lt;br /&gt;
*[[Using Python on Windows]] - New to Python? Learn how to use python on Windows&lt;br /&gt;
*[[Using Python on Linux]] - A must read for an overwiew on Python and OOo relations&lt;br /&gt;
* [[pyUNO bridge]] - Official page of the PyUNO bridge at the [http://udk.openoffice.org/ UDK site]&lt;br /&gt;
* [[Python as a macro language]] in OpenOffice.org 2.x - How to use the Python scripting framework&lt;br /&gt;
* Introduction on testing pyUNO programs with [[doctests]]&lt;br /&gt;
* Create a [http://codesnippets.services.openoffice.org/Office/Office.MessageBoxWithTheUNOBasedToolkit.snip dialog box] in PyUNO.&lt;br /&gt;
* [http://codesnippets.services.openoffice.org/Office/Office.ConnectViaPipe.snip Connect to openoffice.org] from PyUNO&lt;br /&gt;
* [[PyUNO samples]] currently shipping with OpenOffice.org and the explanation.&lt;br /&gt;
* Enhanced [http://www.oooforum.org/forum/viewtopic.phtml?p=257496#257496 Capitalized.py] script by &amp;#039;&amp;#039;The gray Cardinal&amp;#039;&amp;#039; at OOoforum.&lt;br /&gt;
&lt;br /&gt;
=== PyUNO Modules ===&lt;br /&gt;
*[[Danny&amp;#039;s Python Modules]] - Collection guide from DannyB&amp;#039;s modules.&lt;br /&gt;
*[[PrinttoWriter.py]] - This makes it easy and convenient to print a bunch of text into a Writer document.&lt;br /&gt;
*[http://www.oooforum.org/forum/viewtopic.phtml?t=8456 Developing Calc Funcions in Python] - Learn how Python can be used to script your spreadsheets&lt;br /&gt;
*[http://www.oooforum.org/forum/viewtopic.phtml?p=56037#56037 Generating a Spreadsheet through Python] - Automatically generate new spreadsheets&lt;br /&gt;
*[http://www.oooforum.org/forum/viewtopic.phtml?t=9115 Python container components]&lt;br /&gt;
*[[PyUNOServer]] - The PyUNOServer is a script that works as an XML server for OpenOffice.org Calc&lt;br /&gt;
*[[calcParser]] - calcParser is a small parser using the native SAX utilities within the OpenOffice.org python&lt;br /&gt;
*[[OoConfig]] - OoConfig is a Python extension that seeks to provide a configuration editing facility similar to Mozilla&amp;#039;s about:config&lt;br /&gt;
*[[Bibliographic/Hints and Tips/OOoRISExport.py|OOoRISExport.py]] - Exports the bibliographic database in RIS format. Also [http://bibliographic.openoffice.org/files/documents/124/3078/RISImport.py RISImport.py]&lt;br /&gt;
*[[Zotero_Plugin |Zotero Plugin]] - The Zotero plugin provides citation and bibliographic table insertion and editing functions for Writer documents.&lt;br /&gt;
&lt;br /&gt;
=== Hacking Arround ===&lt;br /&gt;
*[[UNO component packaging]] - How to create UNO components as well as the basics of script componentizing&lt;br /&gt;
*[http://www.oooforum.org/forum/viewtopic.phtml?p=38234#38234 Python component to parse XML] - Python is great to parse XML, PyUNO is also excellent when working with XML&lt;br /&gt;
*[[Example of Service in Python]] - Learn how to run Python as a service, this is useful for remote scripting.&lt;br /&gt;
*[http://www.oooforum.org/forum/viewtopic.phtml?p=76972#76972 Modify spreadsheet] - Example of storing and retrieving a custom attribute on a spreadsheet cell.&lt;br /&gt;
*A simple [[daemon in Python]] - Learn how to run Python as a daemon&lt;br /&gt;
*[[Loook.py]] - a simple Python tool that searches for text strings in OpenOffice.org.&lt;br /&gt;
*[[odt2txt.py]] - convert ODF to plain text using python (and convert the txt to html).&lt;br /&gt;
&lt;br /&gt;
=== Python rules OOo (by B. Bois) ===&lt;br /&gt;
[[image:python_power_for_OOo.png|Python rules OOo :-)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:Python]]&lt;br /&gt;
[[Category:Uno]]&lt;/div&gt;</summary>
		<author><name>JimTittsler</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/DevGuide/Extensions/Checklist_for_Writing_Extensions&amp;diff=82774</id>
		<title>Documentation/DevGuide/Extensions/Checklist for Writing Extensions</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/DevGuide/Extensions/Checklist_for_Writing_Extensions&amp;diff=82774"/>
		<updated>2008-06-13T04:51:57Z</updated>

		<summary type="html">&lt;p&gt;JimTittsler: spelling there/their&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation/DevGuide/ExtensionsTOC&lt;br /&gt;
|ShowPrevNext=block&lt;br /&gt;
|PrevPage=Documentation/DevGuide/Extensions/Extension Layers&lt;br /&gt;
|NextPage=Documentation/DevGuide/Extensions/File Format&lt;br /&gt;
}}&lt;br /&gt;
{{DISPLAYTITLE:Checklist for Writing Extensions}}&lt;br /&gt;
This page gives a brief overview about what is important when developing an extension. &lt;br /&gt;
&lt;br /&gt;
# Use the  &amp;#039;&amp;#039;&amp;#039;.oxt&amp;#039;&amp;#039;&amp;#039; file extension and provide [[Documentation/DevGuide/Extensions/description.xml | description.xml]]. Look [http://extensions.openoffice.org/servlets/ReadMsg?list=dev&amp;amp;msgNo=142 here] why you should use  &amp;lt;code&amp;gt;.oxt&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Provide an [[Documentation/DevGuide/Extensions/Extension_Identifiers|&amp;#039;&amp;#039;&amp;#039;extension identifier&amp;#039;&amp;#039;&amp;#039;]] in the [[Documentation/DevGuide/Extensions/Description of XML Elements#Element /description/identifier|description.xml]]&lt;br /&gt;
# Provide a [[Documentation/DevGuide/Extensions/Extension_Versions|&amp;#039;&amp;#039;&amp;#039;version&amp;#039;&amp;#039;&amp;#039;]] in the [[Documentation/DevGuide/Extensions/Description of XML Elements#Element /description/dependencies|description.xml]].&lt;br /&gt;
# Provide a [[Documentation/DevGuide/Extensions/Display_Name|&amp;#039;&amp;#039;&amp;#039;display name&amp;#039;&amp;#039;&amp;#039;]] in the [[Documentation/DevGuide/Extensions/Description of XML Elements#Element /description/display-name|description.xml]].&lt;br /&gt;
# Specify the [[Documentation/DevGuide/Extensions/Target Platform|&amp;#039;&amp;#039;&amp;#039;target platforms&amp;#039;&amp;#039;&amp;#039;]] in the [[Documentation/DevGuide/Extensions/Description of XML Elements#Element /description/platform|description.xml]].&lt;br /&gt;
# Specify the [[Documentation/DevGuide/Extensions/Dependencies|&amp;#039;&amp;#039;&amp;#039;dependencies&amp;#039;&amp;#039;&amp;#039;]] in the [[Documentation/DevGuide/Extensions/Description of XML Elements#Element /description/dependencies|description.xml]]. For example, if your extension requires a &amp;#039;minimal version&amp;#039; of OOo then use the [[Documentation/DevGuide/Extensions/Description of XML Elements#Element /description/dependencies/OpenOffice.org-minimal-version|OpenOffice.org-minimal-version]] dependency.&lt;br /&gt;
# You may add a [[Documentation/DevGuide/Extensions/Simple_License|&amp;#039;&amp;#039;&amp;#039;license&amp;#039;&amp;#039;&amp;#039;]]. Text files containing a license need to be &amp;quot;registered&amp;quot; in the [[Documentation/DevGuide/Extensions/Description of XML Elements#Element /description/registration|description.xml]].  &lt;br /&gt;
# To allow an &amp;#039;&amp;#039;&amp;#039;&amp;#039;online update&amp;#039;&amp;#039;&amp;#039;&amp;#039; of the extension one does not need to prepare the extension when using the [http://extensions.services.openoffice.org OOo extension repository]. More information can be found [[Documentation/DevGuide/Extensions/Online Update of Extensions|here]].&lt;br /&gt;
# Provide an [[Documentation/DevGuide/Extensions/Options Dialog|&amp;#039;&amp;#039;&amp;#039;options page&amp;#039;&amp;#039;&amp;#039;]] in case the extension needs to be configured. Do not create your own menu or menu entries if their sole purpose is to adjust settings for the extension.&lt;br /&gt;
#Provide &amp;#039;&amp;#039;&amp;#039;[[Documentation/DevGuide/Extensions/Publisher Information|publisher information]]&amp;#039;&amp;#039;&amp;#039; in the [[Documentation/DevGuide/Extensions/Description of XML Elements#Element /description/publisher|description.xml]].&lt;br /&gt;
# Provide links to &amp;#039;&amp;#039;&amp;#039;release notes&amp;#039;&amp;#039;&amp;#039; (TODO: more documentation) in the description.xml. Currently only used within the &amp;#039;update dialog&amp;#039;. When using the [http://extensions.services.openoffice.org OOo extension repository], then the link to the release notes is automatically generated from the information entered on the web site. That is, when using the repository one does not need to provide this information in the description.xml.&lt;br /&gt;
# Provide content for [[Documentation/DevGuide/Extensions/Help Content|&amp;#039;&amp;#039;&amp;#039;help system&amp;#039;&amp;#039;&amp;#039;]] if necessary.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{PDL1}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation/Developer&amp;#039;s Guide/Extensions]]&lt;/div&gt;</summary>
		<author><name>JimTittsler</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Python&amp;diff=42913</id>
		<title>Python</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Python&amp;diff=42913"/>
		<updated>2007-08-18T22:24:19Z</updated>

		<summary type="html">&lt;p&gt;JimTittsler: /* Python specific information for Extension creation */ spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Extensions}}&lt;br /&gt;
[[image:Py-uno_128.png|PyUNO Logo]] [[image:Pyuno_logo_a.jpg]] &lt;br /&gt;
=== News ===&lt;br /&gt;
Efforts on moving PyUNO to &amp;#039;&amp;#039;&amp;#039;Python 2.5&amp;#039;&amp;#039;&amp;#039; continue. Liyuan is pushing this initiatie and has [http://udk.openoffice.org/servlets/ReadMsg?listName=dev&amp;amp;msgNo=3704 commited the CWS] on the UDK mailing list the [[CWS]] however is not ready and was sent back on issue [http://www.openoffice.org/issues/show_bug.cgi?id=71327 71327].&lt;br /&gt;
&lt;br /&gt;
=== Python and OpenOffice.org ===&lt;br /&gt;
OpenOffice.org ships with a python scripting language on it&amp;#039;s versions 2.3.4. This Python distribution comes with the [[Uno]] module which connects the [[API|UNO API]] with the python scripting language. To run this version of Python on Linux you can go to the direct OpenOffice.org PATH. OOo-Python can be run from the command line as well as you might expect with any other distribution of Python.&lt;br /&gt;
&lt;br /&gt;
==== Where is the IDE ? ====&lt;br /&gt;
OpenOffice.org&amp;#039;s IDE doesn&amp;#039;t support Python, so development have to be done from other editor that does.&lt;br /&gt;
&lt;br /&gt;
=== Python specific information for Extension creation ===&lt;br /&gt;
To create extensions for python is important that you have enough relation with the UNO components as well as packaging your code to be able to easily distribute your scripts through the &amp;#039;&amp;#039;OpenOffice.org package manager&amp;#039;&amp;#039;. Please  check up the tutorials on how to componentize your code as well as how to deploy remote scripting through a service implementation.&lt;br /&gt;
&lt;br /&gt;
To learn to run Python on Windows you could visit [[Using Python on Windows| this link]] for more detail information.&lt;br /&gt;
&lt;br /&gt;
=== Getting Started ===&lt;br /&gt;
*[[Using Python on Windows]] - New to Python? Learn how to use python on Windows&lt;br /&gt;
*[[Using Python on Linux]] - A must read for an overwiew on Python and OOo relations&lt;br /&gt;
* [[pyUNO bridge]] - Official page of the PyUNO bridge at the [http://udk.openoffice.org/ UDK site]&lt;br /&gt;
* [[Python as a macro language]] in OpenOffice.org 2.x - How to use the Python scripting framework&lt;br /&gt;
* Introduction on testing pyUNO programs with [[doctests]]&lt;br /&gt;
* [http://www.oooforum.org/forum/viewtopic.php?t=4368 Setting up Python-bridge on Debian] - How to install and activate the PyUNO in a Debian box.&lt;br /&gt;
* Create a [http://codesnippets.services.openoffice.org/Office/Office.MessageBoxWithTheUNOBasedToolkit.snip dialog box] in PyUNO.&lt;br /&gt;
* [http://codesnippets.services.openoffice.org/Office/Office.ConnectViaPipe.snip Connect to openoffice.org] from PyUNO&lt;br /&gt;
* [[PyUNO samples]] currently shipping with OpenOffice.org and the explanation.&lt;br /&gt;
&lt;br /&gt;
=== PyUNO Modules ===&lt;br /&gt;
*[[Danny&amp;#039;s Python Modules]] - Collection guide from DannyB&amp;#039;s modules.&lt;br /&gt;
*[[PrinttoWriter.py]] - This makes it easy and convenient to print a bunch of text into a Writer document.&lt;br /&gt;
*[http://www.oooforum.org/forum/viewtopic.phtml?t=8456 Developing Calc Funcions in Python] - Learn how Python can be used to script your spreadsheets&lt;br /&gt;
*[http://www.oooforum.org/forum/viewtopic.phtml?p=56037#56037 Generating a Spreadsheet through Python] - Automatically generate new spreadsheets&lt;br /&gt;
*[http://www.oooforum.org/forum/viewtopic.phtml?t=9115 Python container components]&lt;br /&gt;
*[[PyUNOServer]] - The PyUNOServer is a script that works as an XML server for OpenOffice.org Calc&lt;br /&gt;
*[[calcParser]] - calcParser is a small parser using the native SAX utilities within the OpenOffice.org python&lt;br /&gt;
&lt;br /&gt;
=== Hacking Arround ===&lt;br /&gt;
*[[UNO component packaging]] - How to create UNO components as well as the basics of script componentizing&lt;br /&gt;
*[http://www.oooforum.org/forum/viewtopic.phtml?p=38234#38234 Python component to parse XML] - Python is great to parse XML, PyUNO is also excellent when working with XML&lt;br /&gt;
*[[Example of Service in Python]] - Learn how to run Python as a service, this is useful for remote scripting.&lt;br /&gt;
*[http://www.oooforum.org/forum/viewtopic.phtml?p=76972#76972 Modify spreadsheet] - Example of storing and retrieving a custom attribute on a spreadsheet cell.&lt;br /&gt;
*A simple [[daemon in Python]] - Learn how to run Python as a daemon&lt;br /&gt;
*[[Loook.py]] - a simple Python tool that searches for text strings in OpenOffice.org.&lt;br /&gt;
*[[odt2txt.py]] - convert ODF to plain text using python (and convert the txt to html).&lt;br /&gt;
&lt;br /&gt;
=== Python rules OOo (by B. Bois) ===&lt;br /&gt;
[[image:python_power_for_OOo.png|Python rules OOo :-)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:Python]]&lt;br /&gt;
[[Category:Uno]]&lt;/div&gt;</summary>
		<author><name>JimTittsler</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Python&amp;diff=42908</id>
		<title>Python</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Python&amp;diff=42908"/>
		<updated>2007-08-18T22:14:42Z</updated>

		<summary type="html">&lt;p&gt;JimTittsler: /* Hacking Arround */ spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Extensions}}&lt;br /&gt;
[[image:Py-uno_128.png|PyUNO Logo]] [[image:Pyuno_logo_a.jpg]] &lt;br /&gt;
=== News ===&lt;br /&gt;
Efforts on moving PyUNO to &amp;#039;&amp;#039;&amp;#039;Python 2.5&amp;#039;&amp;#039;&amp;#039; continue. Liyuan is pushing this initiatie and has [http://udk.openoffice.org/servlets/ReadMsg?listName=dev&amp;amp;msgNo=3704 commited the CWS] on the UDK mailing list the [[CWS]] however is not ready and was sent back on issue [http://www.openoffice.org/issues/show_bug.cgi?id=71327 71327].&lt;br /&gt;
&lt;br /&gt;
=== Python and OpenOffice.org ===&lt;br /&gt;
OpenOffice.org ships with a python scripting language on it&amp;#039;s versions 2.3.4. This Python distribution comes with the [[Uno]] module which connects the [[API|UNO API]] with the python scripting language. To run this version of Python on Linux you can go to the direct OpenOffice.org PATH. OOo-Python can be run from the command line as well as you might expect with any other distribution of Python.&lt;br /&gt;
&lt;br /&gt;
==== Where is the IDE ? ====&lt;br /&gt;
OpenOffice.org&amp;#039;s IDE doesn&amp;#039;t support Python, so development have to be done from other editor that does.&lt;br /&gt;
&lt;br /&gt;
=== Python specific information for Extension creation ===&lt;br /&gt;
To create extensions for python is important that you have enough relation with the UNO components as well sa packaging your code to be able to easily distribute your scripts through the &amp;#039;&amp;#039;OpenOffice.org package manager&amp;#039;&amp;#039;. Please  check up the tutorials on how to componetize your code as well as how to deploy remote scripting through a service implementation.&lt;br /&gt;
&lt;br /&gt;
To learn to run Python on Windows you could visit [[Using Python on Windows| this link]] for more detail information.&lt;br /&gt;
&lt;br /&gt;
=== Getting Started ===&lt;br /&gt;
*[[Using Python on Windows]] - New to Python? Learn how to use python on Windows&lt;br /&gt;
*[[Using Python on Linux]] - A must read for an overwiew on Python and OOo relations&lt;br /&gt;
* [[pyUNO bridge]] - Official page of the PyUNO bridge at the [http://udk.openoffice.org/ UDK site]&lt;br /&gt;
* [[Python as a macro language]] in OpenOffice.org 2.x - How to use the Python scripting framework&lt;br /&gt;
* Introduction on testing pyUNO programs with [[doctests]]&lt;br /&gt;
* [http://www.oooforum.org/forum/viewtopic.php?t=4368 Setting up Python-bridge on Debian] - How to install and activate the PyUNO in a Debian box.&lt;br /&gt;
* Create a [http://codesnippets.services.openoffice.org/Office/Office.MessageBoxWithTheUNOBasedToolkit.snip dialog box] in PyUNO.&lt;br /&gt;
* [http://codesnippets.services.openoffice.org/Office/Office.ConnectViaPipe.snip Connect to openoffice.org] from PyUNO&lt;br /&gt;
* [[PyUNO samples]] currently shipping with OpenOffice.org and the explanation.&lt;br /&gt;
&lt;br /&gt;
=== PyUNO Modules ===&lt;br /&gt;
*[[Danny&amp;#039;s Python Modules]] - Collection guide from DannyB&amp;#039;s modules.&lt;br /&gt;
*[[PrinttoWriter.py]] - This makes it easy and convenient to print a bunch of text into a Writer document.&lt;br /&gt;
*[http://www.oooforum.org/forum/viewtopic.phtml?t=8456 Developing Calc Funcions in Python] - Learn how Python can be used to script your spreadsheets&lt;br /&gt;
*[http://www.oooforum.org/forum/viewtopic.phtml?p=56037#56037 Generating a Spreadsheet through Python] - Automatically generate new spreadsheets&lt;br /&gt;
*[http://www.oooforum.org/forum/viewtopic.phtml?t=9115 Python container components]&lt;br /&gt;
*[[PyUNOServer]] - The PyUNOServer is a script that works as an XML server for OpenOffice.org Calc&lt;br /&gt;
*[[calcParser]] - calcParser is a small parser using the native SAX utilities within the OpenOffice.org python&lt;br /&gt;
&lt;br /&gt;
=== Hacking Arround ===&lt;br /&gt;
*[[UNO component packaging]] - How to create UNO components as well as the basics of script componentizing&lt;br /&gt;
*[http://www.oooforum.org/forum/viewtopic.phtml?p=38234#38234 Python component to parse XML] - Python is great to parse XML, PyUNO is also excellent when working with XML&lt;br /&gt;
*[[Example of Service in Python]] - Learn how to run Python as a service, this is useful for remote scripting.&lt;br /&gt;
*[http://www.oooforum.org/forum/viewtopic.phtml?p=76972#76972 Modify spreadsheet] - Example of storing and retrieving a custom attribute on a spreadsheet cell.&lt;br /&gt;
*A simple [[daemon in Python]] - Learn how to run Python as a daemon&lt;br /&gt;
*[[Loook.py]] - a simple Python tool that searches for text strings in OpenOffice.org.&lt;br /&gt;
*[[odt2txt.py]] - convert ODF to plain text using python (and convert the txt to html).&lt;br /&gt;
&lt;br /&gt;
=== Python rules OOo (by B. Bois) ===&lt;br /&gt;
[[image:python_power_for_OOo.png|Python rules OOo :-)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:Python]]&lt;br /&gt;
[[Category:Uno]]&lt;/div&gt;</summary>
		<author><name>JimTittsler</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Extensions_best_practices&amp;diff=42907</id>
		<title>Extensions best practices</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Extensions_best_practices&amp;diff=42907"/>
		<updated>2007-08-18T22:07:25Z</updated>

		<summary type="html">&lt;p&gt;JimTittsler: /* Licenses */ spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== How to write OpenOffice.org GUI Extensions today ==&lt;br /&gt;
The [[Extensions development#Project: Enhancing_Extensions Infrastructure of OpenOffice.org 2.0.3|Extension Infrastructure Enhancement Project]] has the goal to introduce missing functionality in this area step-by-step with the next OO.o updates. The respective tasks have high priority for [http://www.sun.com Sun]&amp;#039;s OpenOffice.org Development Team. Anyhow, some important functionality is currently missing completely, but many things can be even implemented in a more or less clean way already. In most cases you should be able to implement a &amp;#039;clean&amp;#039; extension even today.&lt;br /&gt;
 &lt;br /&gt;
So, what are your choices today?&lt;br /&gt;
&lt;br /&gt;
=== Compatibility ===&lt;br /&gt;
# Use the OO.o SDK to develop and build your extension. This prevents you from using types that are not guaranteed to stay compatible.&lt;br /&gt;
# Avoid usage of unpublished UNO types.&lt;br /&gt;
&lt;br /&gt;
=== GUI Design and Implementation ===&lt;br /&gt;
# Never use VCL, because VCL API is not guaranteed to stay compatible, not even over micro OO.o updates. Use UNO AWT instead. If something is missing/broken in UNO AWT, don&amp;#039;t close your eyes! File a bug and insist that it gets implemented/fixed quickly. Improving UNO AWT has very high priority.&lt;br /&gt;
# The OO.o Dialog Editor can be used even today for dialog design. You can put the XML dialog descriptions into your extension&amp;#039;s package. The Extension Manager is already able to deploy XML dialog descriptions. There is a UNO Service available that creates an UNO AWT dialog from an XML dialog description. For event binding you currently have basically two choices:&lt;br /&gt;
## &amp;#039;&amp;#039;&amp;#039;Since OOo 2.0.4:&amp;#039;&amp;#039;&amp;#039; Use the dialog editor to design the dialogs. Implement the event logic using a language supported by UNO. Assign UNO events to the controls. Put both the dialog XML and the event logics into your extension. ([http://specs.openoffice.org/ide/NonScriptDialogEvents.odt Feature Specification])&lt;br /&gt;
## Use the dialog editor to design the dialogs. Assign no events to the controls. At runtime, after creating the UNO AWT dialog, attach the needed event listeners to the controls.&lt;br /&gt;
## Use the dialog editor to design the dialogs. Write some BASIC code that implements event handlers for your dialog controls. Those handlers might be very small, in the most simple approach they would just call one of your UNO event handling objects. The BASIC library containing your glue code can easily put into the package for your extension. The OO.o Extension Manager already supports deployment of BASIC libraries.&lt;br /&gt;
## Use the dialog editor to design the dialogs. Write a macro in a language supported by OO.o Scripting Framework (Java, Beanshell, ...) that implements event handlers for your dialog controls. The Dialog Editor already supports binding events to Scripting Framework macros. The macro containing your code can easily put into the package for your extension. The OO.o Extension Manager already supports deployment of Scripting Framework macros.&lt;br /&gt;
&lt;br /&gt;
=== GUI Localization ===&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Since OOo 2.2:&amp;#039;&amp;#039;&amp;#039; The OO.o Dialog Editor supports creation and editing of multi language dialogs. [http://specs.openoffice.org/appwide/dialog_ide/GUI_Translation_in_Dialog_IDE.odt Feature Specification])&lt;br /&gt;
# Obtain the right locale-dependent strings at runtime and to set it at the respective UNO AWT controls.&lt;br /&gt;
# Recently the UNO service com.sun.star.resource.OfficeResourceLoader was introduced that is able to access arbitrary resource strings that are accessible by the OO.o ResMgr class. This service can be of help if you just want to use an already existing OO.o resource string.&lt;br /&gt;
# A good approach is to use the localization features of the UNO Configuration service. The UNO Configuration Service allows to define locale-dependend strings. The Configuration service  returns values of those string configuration items according to the locale set upon initialization of the Configuration service.&lt;br /&gt;
&lt;br /&gt;
=== Extension Features ===&lt;br /&gt;
&lt;br /&gt;
==== Dependencies ====&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Since OO.o 2.0.4:&amp;#039;&amp;#039;&amp;#039; It is possible to define dependencies for packages. ([http://specs.openoffice.org/appwide/packagemanager/extensiondependencies1.odt Feature Specification]) An extension can specify that it needs a minimal OO.o version. Formally, the dependency is an empty XML element whose name consists of the namespace name &amp;quot;http://openoffice.org/extensions/description/2006&amp;quot; and the local part &amp;quot;&amp;#039;&amp;#039;&amp;#039;OpenOffice.org-minimal-version&amp;#039;&amp;#039;&amp;#039;&amp;quot;.  It shall have two attributes, namely the &amp;quot;name&amp;quot; attribute required for every dependency and an attribute with unprefixed name &amp;quot;value&amp;quot; whose value is the string representation of an OOo version starting with OOo 2.1 (in which case the value is the string &amp;quot;2.1&amp;quot;).  The dependency is fulfilled if and only if the value of the current OOo version is (element-by-element lexicographically) greater than or equal to the specified value. It is not possible to define that an extension requires an OO.o version 2.0.3 or older. However, if you want that yor extension can only be installed in OOo 2.0.4 or newer, use the OXT Extension Package format for your extension. OXT cannot be installed prior to OOo 2.0.4.&lt;br /&gt;
# Prior to OO.o 2.0.4, it is not possible to specify runtime dependencies for packages.&lt;br /&gt;
&lt;br /&gt;
==== Versions ====&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Since OO.o 2.1:&amp;#039;&amp;#039;&amp;#039; It is possible to specify version information for extensions. ([http://specs.openoffice.org/appwide/packagemanager/extensionversion.odt Feature Specification])&lt;br /&gt;
# Prior to OO.o 2.1 it is not possible to specify version information for packages. However this is not a big issue until you want to provide the first update for your component. Packages without explicit version information will be considered to be “version 1”. However, package versioning must be available latest when the first official package update needs to be released.&lt;br /&gt;
&lt;br /&gt;
==== Licenses ====&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Since OO.o 2.0.4:&amp;#039;&amp;#039;&amp;#039; It is possible to include a license text in the extension package. The text will be displayed while installing the extension. Installation will be aborted in case the user declines the license. ([http://specs.openoffice.org/appwide/packagemanager/simple_extension_license.odt Feature Specification])&lt;br /&gt;
# Prior to OO.o 2.0.4, no licensing features are available.&lt;br /&gt;
&lt;br /&gt;
==== Product Registration ====&lt;br /&gt;
This feature is not yet available.&lt;br /&gt;
&lt;br /&gt;
==== Digital Signatures ====&lt;br /&gt;
This feature is not yet available.&lt;br /&gt;
&lt;br /&gt;
==== Common User Interface for Extension Preferences ====&lt;br /&gt;
This feature is not yet available.&lt;br /&gt;
&lt;br /&gt;
==== Help Content ====&lt;br /&gt;
# Currently there is no known way to integrate own help content with the OO.o help system.&lt;br /&gt;
# You could put an HTML (or other format supported by Writer) file into your extension package. When the user requests help for your extension (for instance by pressing a help button you designed), you could load your help file into Writer. Not a very cool solution, though. Note: Currently it is very inconvenient to figure out the root directory of your package installation. How to do this is explained here: http://api.openoffice.org/docs/DevelopersGuide/Components/Components.xhtml#1_9_1_UNO_Package_Installation_Using_unopkg , in section Package Bundle Structure =&amp;gt; Arbitrary Files. (To address this problem, we will design and implement an API that allows to directly obtain the package installation root.)&lt;br /&gt;
# A even more primitive approach is to use a simple message box for displaying the help text of your extension.&lt;br /&gt;
&lt;br /&gt;
==== Package File Format ====&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Since OO.o 2.0.4&amp;#039;&amp;#039;&amp;#039;, a new Package file format is available – &amp;#039;&amp;#039;&amp;#039;OXT&amp;#039;&amp;#039;&amp;#039; (OO.o eXTension). OXT files have basically the same structure as UNO packages. They are ZIP files containing the parts building the extension. OXT packages cannot be installed in OO.o version prior to 2.0.4. For detailed information see the [http://api.openoffice.org/docs/DevelopersGuide/Extensions/Extensions.xhtml Extensions] chapter of the Developers Guide. See also [[UNO component packaging]].&lt;br /&gt;
&lt;br /&gt;
==== Online Update ====&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Since OO.o 2.2&amp;#039;&amp;#039;&amp;#039;, online update of extensions is supported by the Extension Manager. ([http://specs.openoffice.org/appwide/packagemanager/online_update_for_extensions.odt Feature Specification])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Extensions]]&lt;/div&gt;</summary>
		<author><name>JimTittsler</name></author>
	</entry>
</feed>