Universal Network Objects
| Company type | Software component model |
|---|---|
| Industry | Software development |
| Products | Component model for OpenOffice.org and LibreOffice |
Universal Network Objects (UNO) serves as the component model underlying the OpenOffice.org and LibreOffice suites. This interface-driven architecture is crafted to facilitate interoperability among various programming languages, object models, and hardware platforms, whether operating locally, across LANs, or through Internet connections.
Programmers have the ability to implement or utilize UNO components from any language that supports existing language bindings. Fully supported bindings are available for C++ (subject to compiler specifics), Java, Object REXX, Python, and Tcl. Additionally, read-only bindings exist for StarOffice Basic, OLE Automation, and the .NET Common Language Infrastructure, making this API a common choice for macro development.
UNO components operate within the UNO Runtime Environment (URE).
The UNO implementation in Apache OpenOffice is provided under the terms of the Apache License Version 2, distributed as free and open-source software.
UNO in function invocation
Typical scenarios include external applications invoking LibreOffice through UNO to export an ODT file as PDF or to import and convert a DOCX document. Another frequent application is manipulating cells and formulas within LibreOffice Calc spreadsheets.
Prominent tools utilizing this capability are Docvert, JODConverter, and unoConv.
UNO for Add-On development
Custom UNO components can be developed and embedded into OpenOffice/LibreOffice as "Add-Ons," thereby enhancing features and integrating seamlessly with menus and toolbars.
The integration process generally follows three key stages:
- Registering new components using the
unopkgutility. - Incorporating components as services with support from ProtocolHandler and JobDispatch.
- Altering the user interface by creating an XML file that defines menu or toolbar modifications.
An example of such an application is jOpenDocument.
External links
- Apache OpenOffice
- UNO Development Kit project page
- Overview and technical details
- Java overview-summary
- OpenOffice.org Software Development Kit
- ODF Toolkit: Transition Steps
- Developer's Guide
- LibreOffice
- Language bridges (native for Java and Python)
- UNO for Object REXX
- UNO for PHP (C++ implementation)
- UNO for FreePascal/Delphi (possibly orphaned)