OOXML interoperability
Enabling users to work across LibreOffice and Microsoft Office on OOXML file format without a need for conversion.
Details of the Workshop
When working together on documents, users tend to choose to work with the same tool that their colleagues use so as to be compatible and avoid format conversion. This helps traditional leading office tools like Microsoft Office to create stickiness and attract all the users to their dominating file format. To disrupt this cycle it is not enough to allow importing of formats like OOXML into LibreOffice. Only by making LibreOffice truly compatible with Microsoft Office OOXML format, will we allow users to work with LibreOffice without having to be concerned about the office tools chose by their colleagues.
In today's mobile world, users access their documents from multiple devices including tablets and smartphones, where one editing tool does not dominate the landscape. This creates a big opportunity for an alternative office suite which is compatible with Microsoft Office to become the dominant office tool for users - first on their mobile devices and later also on their traditional PC/Mac environment.
In this workshop we will to discuss how to enable working across LibreOffice and Microsoft Office on OOXML file format without a need for conversion. We are going to discuss different aspects of data preservation - how to preserve unknown data without rendering or manipulation. Also we will discuss how to use an automatic testing suite to test thousands of files, how to compare the compatibility in the XML file level as well as comparing pixels in rendering level. We will cover some of the major compatibility issues that need to be resolved, and show examples of issues that we solved.
Topics of Discussion
- Working in a team with multiple office tools without converting files.
- Preserve vs Render vs Manipulation - the MVC model
- Preserve xml elements vs preserve pixels.
- Preserve while manipulating the object vs manipulating other doc objects.
- Rendering unknown objects in correct layout.
- Manipulating while preserving unknown properties.
- Automatic testing.
- Mapping of big compatibility issues.
- Examples and analysis.