Development/Extension Development

From The Document Foundation Wiki
Jump to: navigation, search

You can develop extensions for LibreOffice in C++, Python, Java, JavaScript and LibreOffice Basic. They are bundled as .oxt files and can be shared on extensions.libreoffice.org.

There are also special Calc extensions known as Add-Ins that add spreadsheet functions to Calc. You can also make galleries, wizards and autotext collections.

In an effort to not duplicate information, you can refer to OpenOffice's documentation (they are still largely compatible).

Before you can start, you need to install the SDK.

Samples

To jump-start development, you can take a look at the source of existing extensions on GitHub and SourceForge, such as the LibreOffice Love Letter Writer (in Python). We also have a collection of SDK examples.

Eclipse Plugin

TDF offers the Eclipse Plugin "LOEclipse" which helps with developing LibreOffice extensions/components in Java.

You can find it on the Eclipse Marketplace. There is also a Starter Extension which should help getting up to speed.

Compatibility notes

The LibreOffice developers are conservative when it comes to changes to the public (UNO) API and thus, most extensions written for OpenOffice.org or Apache OpenOffice will still work with LibreOffice. If changes happen, they are noted in the ReleaseNotes (API changes in 4.2, 4.1 and 4.0).

  • The OpenOffice.org-minimal-version dependency states that an extension works in the specified OpenOffice.org versions as well as in LibreOffice versions that correspond to at least the specified OpenOffice.org reference version. All LibreOffice versions up to 4.2.3 report that they correspond to OpenOffice.org reference version 3.4, while LibreOffice versions since 4.2.4 report that they correspond to OpenOffice.org reference version 4.1. Using this dependency, the extension declares that it only uses features found in the specified OpenOffice.org reference version (and that it consequently works across all the products, not only for OpenOffice.org itself).