office-gobmx/lotuswordpro/README.md
Bartosz Kosiorek 7bb911d118 tdf#112626 lotuswordpro: switch to constexpr and update documentation
Change-Id: I566c22285978f7b31961d105d02d99d0696908b9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137041
Tested-by: Jenkins
Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2022-07-14 10:32:23 +02:00

33 lines
1.5 KiB
Markdown

# Import Filter for File Format of Lotus Word Pro (lwp)
## Description
> :warning: **Import Filter supports only Lotus Word Pro 97 and next versions**
The import is not direct, but via an intermediate format: [StarOffice XML](http://xml.openoffice.org/xml_specification_draft.pdf),
the predecessor of ODF (yes, the code is old). The entry point to
the filter is class `LotusWordProImportFilter` (refer to Source code
section), but that just hooks up the necessary machinery for processing
StarOffice XML produced by the filter. The real fun starts in function
`ReadWordproFile()` (`source/filter/lwpfilter.cxx`); this function
initializes the parser (class `Lwp9Reader`) and the [SAX XML](https://en.wikipedia.org/wiki/Simple_API_for_XML) handler that
produces the output (class `XFSaxStream`). The `Lwp9Reader` class then does
the actual parsing.
If the module is built with debug level greater than `0`, it is possible
to examine the intermediate XML: set [environment variable](https://en.wikipedia.org/wiki/Environment_variable)
`DBG_LWPIMPORT_DIR=` to an existing directory. During opening an `.lwp`
document, a file named `lwpimport.xml` will be created in `DBG_LWPIMPORT_DIR` directory.
## Source Code
### Module Contents
* `inc`: module-global headers (can be included by any file in source)
* `qa`: `cppunit` tests
* `source`: the filter itself
* `util`: UNO passive registration config
### Source Contents
* `filter`: `lwp` document format parser
* `filter/LotusWordProImportFilter.cxx`: the entry point to the filter
* `filter/xfilter`: export to StarOffice XML