Extensions Packagers

From Apache OpenOffice Wiki
Revision as of 08:26, 12 August 2014 by Joesch (Talk | contribs)

Jump to: navigation, search


BasicAddonBuilder is an OpenOffice.org extension that allow you to export a StarBasic library in the OpenOffice.org extension format, ready for deployment. BasicAddonBuilder does not require special skills or a deep knowledge of extensions specifications. A wizard-style dialog will guide you through the process, allowing you to define in a graphical way all menu and toolbars that will be added to the OpenOffice.org user interface in order to launch macros from your StarBasic library.


The exported extension (AKA UNO package) will be ready to install in any PC running OpenOffice.org 2.0 or above, using the Package manager. (Menu Tools->Package manager...)


In order to use BasicAddonBuilder, you must have OpenOffice.org 2.2 or above installed. BasicAddonBuilder will not work with OpenOffice.org 1.x


BasicAddonBuilder is downloadable at this location and can be installed with the Extension manager.

  • Menu Tools->Extension manager...

Further information in the OpenOffice.org Help

Known issues

  • Missing documentation

The following features are not yet supported:

  • Dependances management of the generated extension
  • Import/export of BasicAddonBuilder projects


Current versions of BasicAddonBuilder for OpenOffice.org are always available here:

Contacting author

Please send your suggestions and bug reports to: Paolo Mantovani Any feedback is welcome!

BasicAddonBuilder and AOO 4.x

From AOO 4.0 has the configuration file addons.xcu a modified structure for toolbars, see: http://wiki.openoffice.org/wiki/Extensions/Extensions_and_Apache_OpenOffice_4.0#addons.xcu_changes

Therefore an update for BasicAddonBuilder is necessary because:

  • own toolbar of the BasicAddonBuilder 0.5.0 (and earlier releases) is not displayed in AOO 4.0 (and later versions)
  • BasicAddonBuilder 0.5.0 (and earlier releases) can not create extensions, which include toolbars that can be displayed in AOO 4.0 (and later versions)

I wrote Paolo Mantovani, and Paolo replied me that he currently does not have time to create a new version of BasicAddonBuilder. Therefore, I (Jörg Schmidt) have now created a new Version (0.5.1).

BasicAddonBuilder 0.5.1 (Beta)

At the moment there are (initially for testing purposes) two different versions of BasicAddonBuilder 0.5.1

http://calc-info.de/files/BasicAddonBuilder-0.5.1.oxt (compatible with AOO 4.x)
http://calc-info.de/files/BasicAddonBuilder-oo3x-0.5.1.oxt (compatible up to AOO 3.4.1 and LibreOffice(*))

Both versions can produce compatible extensions for all versions of OOo, AOO and LO(*).

(*) not specifically tested

Requirements / Install
In order to use BasicAddonBuilder 0.5.1, you must have OpenOffice.org (2.2 or above) or LibreOffice installed. Please note that for AOO up to version 3.4.1 and LO another installation file must be used, as for AOO 4.x.
BasicAddonBuilder can be installed with the Extension manager (Menu Tools->Extension manager...).

Questions and bug reports

Please send an email to Jörg Schmidt

The following figures show the additional functions of BasicAddonBuilder 0.5.1

  • adjustable compatibility for toolbars in the created extension
  • embed the publisher in the created extension (in the file description.xml)

General Options

Licence and Version

BasicAddonBuilder 0.5.2

I got by Derby Russell, a new corrected version. Thank you.

Jörg Schmidt

The new version Basic Addon Builder 0.5.2 is available for download here: http://calc-info.de/files/BasicAddonBuilder-0.5.2.oxt

Note: this version is for Apache OpenOffice version 4.0 and higher.

The corrections are as follows: (Changes made by Derby Russell for 0.5.2) In the PkgExporter module:

  • the line 74 was changed from: sTempDirUrl = GetTempFile() & "/" to sTempDirUrl = GetTempFile()
  • line 75 was added: sTempDirUrl = EnsureFolderNameIsLongType(sTempDirUrl)
  • line 76 was added: sTempDirUrl = sTempDirUrl & "/"
  • at line 597 a new function: pmxInStrRev was added
  • at line 639 a new function: SplitFolderPath was added
  • at line 652 a new function: SplitFolderName was added
  • at line 664 a new function: SplitFolderNamePath was added
  • at line 690 a new function: EnsureFolderNameIsLongType was added

Extension Compiler

There are many kinds of extensions: they may use languages other than Basic, or even set a configuration without any executable code. Usually an extension provides menus and toolbars for one or more applications (Writer, Calc...).

For a professional look you will have to add copyright statements, create your own help pages, provide automatic update. All displayable texts will probably have to be translated in several languages. This means editing lots of files, testing and editing each time you have found a bug, or added a feature, or added a new language.

The Extension Compiler can handle all kinds of extensions and reduce your work load. Its documentation guides you through most of the process. You don't need to know all the implementation details, you don't need a complex environment. You will edit a Writer document to write the extension description, the license text, the help pages for your extension, in various languages if needed.

The help pages for your extension may be specific to each application (Calc, Writer, Draw...). They are called by a help button in your dialogs, or by contextual help in the dialogs or menus, or from the help window. These help pages will be seamlessly integrated into the OpenOffice help system.

You will then write a linear succession of simple Basic instructions to describe your extension. At a click on a button in the document, the Extension Compiler will create the files description.xml, addon.xml, manifest.xml, xxxWindowState.xml, and the license, extension description, display name, help pages for different languages. All files will be encoded in UTF-8 to support national characters, and stored in sub-folders. After a few seconds your oxt package is ready to be installed!

If you made an error, or if you are not satisfied with your extension, change some instructions and run again. For complex extensions (e.g. many menus or buttons), incremental design is easy: start simple, test, add a feature, test it, add another feature, etc.


The extensions are installable on OpenOffice.org 2.4 or more recent (Apache OpenOffice, LibreOffice).


Extension Compiler is a Writer template document. Store it in a folder where macros are allowed.

From this template, create a new Writer document by double-click or key Enter. You will be prompted to save it under the name of your extension in a dedicated folder where macro execution is allowed.

You will store in this dedicated folder all the libraries, files, images, needed for your extension. You may use sub-folders.

Latest changes

Version 2.1

Extension Compiler can now compile extensions having more than one toolbar in an application context, for example an extension that adds 2 toolbars in Calc.

Version 2.0

Extension Compiler can now compile the same extension to different variants, if needed : OpenOffice.org or compatible, Apache OpenOffice 4.0 or more recent, LibreOffice 3.5 or more recent.

Related Issues

There are currently some limitations or bugs in the extension mechanism itself, see these Issues.


The latest version of Extension Compiler is downloadable at this location.

A French translation of the manual is downloadable at this location.

To help understand how it works, here are two examples of extension projects:

A simple extension

The archive SimpleDemo.zip contains the files necessary to compile the extension Images Embedder version 1.0.0. This extension installs a Basic program, without dialogs, and a menu item in Tools → Add-Ons. This menu item displays in several languages.

The archive unzips into a directory named ImagesEmbedder/.

Open the document ImagesEmbedder.odt, then at chapter 2.3.1 click the button Compile to OpenOffice.org or compatible. The oxt file will be created in the same folder.

A sophisticated extension

The file ExtensionDemo.zip shows more interesting features. The extension will require at least OpenOffice.org version 3.3.0.

This archive unzips into a directory named Demo/. It contains all the data to create the extension ExtExample. The compiled extension package is also in the folder.

ExtExample adds a toolbar and some commands in the menu Tools > Add-Ons of Writer and Calc. In Writer, Tools → Add-Ons sub-menu can start sample scripts in Basic, Python BeanShell, JavaScript, Java macro.

Since there is a Toolbar, this extension is compiled to:

  • OpenOffice.org compatible (including LibreOffice)
  • Apache OpenOffice 4.0

Since it uses non-Basic scripts, this extension is also compiled for the current user only and for all users.

The Extension Compiler creates the four variants from a unique extension.

Contacting author

Extension Compiler is written by Bernard Marcelly. Please send your suggestions and bug reports at the address indicated in the document. Feedback are welcome.

Personal tools