LibreOffice has 3 kinds of extensions.
.oxtfiles and can be shared on extensions.libreoffice.org.
- Extensions are the preferred way for sysadmins to modify default settings. A guide for developing configuration extensions is available in PDF or ODT format. A sample OXT configuration extension accompanies the guide.
- There are also special Calc extensions known as Add-Ins that add spreadsheet functions to Calc. As a UNO components you can provide new implementations of existing functionality or specialized components like Calc Add-Ins, Add-Ons, DataPilots, Chart Add-Ins, or linguistic components: Spellchecker, Hyphenator or Thesaurus (see Add-Ins documentation).
- You can also pack extensions for additional Templates, Gallery and Autotexts.
In an effort to not duplicate information, you can refer to OpenOffice's documentation. They are still largely compatible, but extra check should be performed since LibreOffice is moving forwards rapidly (see Compatibility notes below).
- Extension development - this page in the Apache OpenOffice wiki
- Extension development starters and tutorials
Current resources are currently being consolidated on the LibreOffice help pages.
Before you can start, you need to install the SDK.
- the LibreOffice Love Letter Writer (in Python);
- the LibreOffice Search extensions which adds a context menu entry in order to search online for the selected text] (in C++);
- LOTC standing for LibreOffice Theme Changer which is a tool allowing to change the LibreOffice theme easily (see help for more info) (in Bash 4+ scripting);
- add your own ;)
The LibreOffice source code also has a collection of SDK examples.
TDF offers the Eclipse Plugin "LOEclipse" which helps with developing LibreOffice extensions/components in Java.
- unodit automate some of the tedious tasks with dialogs in order to help you write your own extension for LibreOffice in Python
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).
OpenOffice.org-minimal-versiondependency 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).
- If an extension makes use of features specific to LibreOffice, starting with LibreOffice 3.5 it can specify a new dependency
http://libreoffice.org/extensions/description/2011. Its required
valueattribute (without namespace) specifies the minimally supported LibreOffice version; it should not contain a micro version number, and it should not be less than
The generally required
nameattribute (with namespace
http://openoffice.org/extensions/description/2006) should be “
LibreOffice version” (where
versionis the given version value).
Examples may be found in core/tree/desktop/test/deployment/dependencies: loversion35.oxt or loversion36.oxt.
- If an extension is intended for a specific version of LibreOffice, starting with LibreOffice 7.0 it can specify a new dependency
http://libreoffice.org/extensions/description/2011in addition to the dependency
LibreOffice-minimal-version. This should be needed very rarely.