Extensions, plugins and custom solutions
Integrating with business processes and existing applications
Open Document Format is not tied to a single vendor, or to the out-of-the-box productivity apps alone. Depending on your workflow and user needs, ODF can help to create more value to any bespoke solutions your organisation may be using or commissioning. The fact that ODF is incorporated in commonly available office products, does position it as a valuable interoperability mechanism between different (classes of) applications. Combining ODF with other data flows means that the structured information inside can be reused or consumed inside your office environment.
ODF is tightly organised, yet versatile and extensible. This should not come as a surprise, if you happen to know it is built on another very common open standard called XML (Extensible Markup Language). XML is the de facto web standard for structured data, created by the World Wide Web Consortium (W3C). There are quite a few other W3C standards that are reused throughout ODF specifications, such as RDF metadata, Synchronised Multimedia and digital signatures.
Sharing technological building blocks between the web and office applications is quite logical, because of the many common traits between the two. Quite a few office applications offer online editing environments that are accessed over the internet through a web browser. The extensive use of web technologies in an office format is very beneficial in a number of ways:
- large ecosystem lowers the cost for implementing ODF
- while contributing to an overall economy of scale
- increased robustness from using proven technologies
- easy sharing of assets and technology components with web applications (write once, use everywhere)
ODF opens many possibilities for integrating with business processes and internal applications. It also opens fun and creative possibilities. For instance, do you need to embed a live webpage inside a presentation? Do you want a complete music score inside a text document? Do you have a pressing need to put a zoomable 3D globe inside a spreadsheet to show where your organisation is buying the most products and services? There are ODF applications that allows you to do all of this, and more.
ODF has much to offer to customise your workflow in a responsible and scalable manner:
- a flexible container that can embed pretty much any existing type of digital object and allow it to be used in an office document
- a robust fallback mechanism that allows regular 'non-aware' ODF implementations to correctly render custom objects
- custom metadata that can be added anywhere, to any element within a document (ideally suited for Linked Data
- a number of specific standardised constructs such as charts, spreadsheet formula's
- a way to capture the history of certain document elements ('tracked changes')
- offline portability
- benefit from advanced accessibility features in ODF ecosystem
- a standard way to serialize a compound document into a single human readable file
Conformance classes
OpenDocument has two so called "conformance classes" for producers and consumers of documents, for the creation of:
- conforming documents
- extended conforming documents
If possible try to limit yourself to "conforming" documents, as these have the largest possible reach. If you really need to create "extended conforming" documents, make the application properly flag the document as doing so to do so. Otherwise validators will generate lots of warnings. Consider following the recommendations set by the standard for OpenDocument extended producers, and adding adequate information to the document metadata to point to relevant information.
Product plugins and extensions
For many products you can download or install auxiliary pieces of software to add custom functionality to your office productivity tools. Different applications tend to give different names:
- add-ons
- plugins
- extensions
If the functionality of an add-in concerns content creation or manipulation, note that this might impact the conformance of your document output. The same of course holds for custom applications. If you are responsible for developing such a solution, consider using one of the existing libraries that work with ODF.
In most cases add-ins and bespoke solutions can and should stay within the safe environment of the standard, and do not need to resort to "extended conformance". If all you need is to inject data from outside of an office application, there are many way to make it possible.
Plugins that insert visual information should always use the universal mechanism for claiming a draw area within the document to embed multiple alternative renderings of objects as a fall-back. That makes sure the content can still be viewed by any conformant application, no matter what. This feature gives ODF the capability of providing an editable document that is portable across applications, while allowing fine-grained custom solutions as well as feature differentiation among different products.
Best practices
Alternative renderings
Provide multiple alternative renderings of any visually objects your application inserts into a document as a fallback:
- a vector version (using the web standard SVG) for sharp images
- a bitmap version (using the web standard PNG) as baseline
- your custom file format (encoded as base64)
That way the content can still be viewed by a conformant application, no matter what. ODF documents are often consumed offline, and so you cannot provide the right format for a consuming application on the fly. Alternative renderings are key to benefit from the capability of ODF to provide an editable document that is portable across applications, while allowing customisation.
Take care of accessibility
- Do not forget to add proper accessibility information to the objects you add, such as a title and long description.
- Do the same for the SVG rendering, which may be the primary consumption method for some people using assistive technologies.
- If the plugin has a user interface, make sure that is accessible as well.
If you use a commercial plugin, ask your vendor to take care of this for you. If you would like to use an open source plugin and this functionality is not yet present, contribute any accessibility features you add back to the project or commission the developers to add this (simple) additional functionality.
Use RDF metadata as landmarks
If you have an external application that modifies or generates a document, attaching a short snippet of RDF metadata in situ. This will allow you to link that data to its origins so you can later:
- refresh information if it becomes available without risks
- trace back any issues later
Validate the output of product add-ons and custom solutions
If the functionality of a add-on or a custom solution concerns content creation or manipulation, note that this might impact the conformance of your document output. Use an ODF validator to check the output.
Contribute to the standard
There is always room for development. If you have identified a user need that does something which is not yet part of the ODF standard, and you feel it is potentially important to others, you should consider joining the ODF technical committee and adding the functionality to the standard.