The open source Translator project was started in July 2006, when Microsoft worked with partners (Clever Age, Dialogika & Sonata) to demonstrate pragmatic interoperability between Microsoft Office and Open Office documents. Today, after multiple releases of the project with more than 2.5 millions downloads, the translator is a mature project and version 3.0 was released in March 2009 (read the blog post).

Version 3.0 focuses on improving the overall fidelity of the translation between Open XML and ODF as well as the performance. The previous version (2.5) of the Translator introduced ODF compatible “Templates” intended to provide greater visual fidelity during the translation process:

Here’s a demo of the Translator created by my colleague Jean-Christophe Cimetiere with version 2.5, but from the end-user perspective version 3.0 is identical:

Open XML-ODF Translator Demo

From a technical perspective, the translator consists of a set of XSL transformations between the two XML formats (Open XML and ODF), along with some pre- and post-processing to manage the packaging (zip / unzip), and some advanced processing (complex transformations). The following diagram is a high level architecture of the Translator:

The translation engine at the core of the Translator may be used independently and hosted by a back-office server application or incorporated into hosted services or batch processing. In the latter case, Translator includes a command line interface.

As an open source project, the Translator could be a great foundation for engineering work around document interoperability. ISVs can use the code as the basis for additional translators and programs and create a wide range of interoperability solutions that bridge Open XML and ODF. Novell has incorporated the translator into its implementation of OpenOffice for SUSE Linux, and others have taken the translator and integrated it into the Ubuntu Linux Open Office version.

The Open XML / ODF Translator project is hosted on Sourceforge, where you can get the installers (7 languages are supported) as well the source code: http://odf-converter.sourceforge.net/