This is a project under development for
Google's Summer of Code 2005 program.
It is an add-on
component to OpenOffice.org. It inserts itself as a menu item. When
selected, scans through the current document and converts those
document elements which are incompatible with Microsoft's .DOC format
to similar document elements, attempting to minimize the disruption
to the document. Currently I only plan on supporting .DOC for Word
97 and later, since earlier versions of .DOC are even more limited
than the current version.
This has several advantages over
just saving the OpenOffice document to the .DOC format.
For
one, it allows the user to preview how the OpenOffice document would
look in Word. If they are dissatisfied with the result, they do not
have to save -- in large documents, saving to .DOC can take a
significant amount of extra time, while this component is not
performing a lot of intensive tasks and so will not take a noticeable
amount of time. They can also readjust the document within
OpenOffice after they see how the export to .DOC changes their
document.
Second, it serves to showcase the limitations of
.DOC, when you can so quickly see how your document must change to
retain .DOC compatibility.
Third, it is more accurate than
.DOC export. For instance, my current, unfinished version solves a
problem with text frames anchored to other text frames. In .DOC,
text frames must be anchored to characters. Because of this, when
saving a Writer document to .DOC format, these frames are not saved.
However, my component preserves these interior text frames and
re-anchors them to the same character as the parent text frame.
Thus, if you save the result to .DOC after running my add-on, you get
a higher-fidelity copy of the original document.
The project
is written in C++ using the OpenOffice.org API, including their
meta-language called UNO. It should run on all platforms that
OpenOffice.org runs on, however, it will likely see the most use in
Windows environments, since the .DOC format is used primarily if not
exclusively for Microsoft Word. All development and testing is
taking place on a system running Windows XP.