2021-03-29 12:25:26 -05:00
|
|
|
# Import Filter for File Format of Lotus Word Pro (lwp)
|
2021-02-21 11:24:21 -06:00
|
|
|
|
2021-03-29 12:25:26 -05:00
|
|
|
## Description
|
2021-02-21 11:24:21 -06:00
|
|
|
|
|
|
|
The import is not direct, but via an intermediate format: StarOffice
|
|
|
|
XML, 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
|
2021-03-29 12:25:26 -05:00
|
|
|
`ReadWordproFile()` (`source/filter/lwpfilter.cxx`); this function
|
|
|
|
initializes the parser (class `Lwp9Reader`) and the SAX XML handler that
|
|
|
|
produces the output (class `XFSaxStream`). The Lwp9Reader class then does
|
2021-02-21 11:24:21 -06:00
|
|
|
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
|
2021-03-29 12:25:26 -05:00
|
|
|
`DBG_LWPIMPORT_DIR=` to an existing directory and, on opening an lwp
|
|
|
|
document, a file named `lwpimport.xml` will be created in that directory.
|
2021-02-21 11:24:21 -06:00
|
|
|
|
2021-03-29 12:25:26 -05:00
|
|
|
## Source Code
|
2021-02-21 11:24:21 -06:00
|
|
|
|
2021-03-29 12:25:26 -05:00
|
|
|
### 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
|
2021-02-21 11:24:21 -06:00
|
|
|
|
2021-03-29 12:25:26 -05:00
|
|
|
### Source Contents
|
|
|
|
* `filter`: `lwp` document format parser
|
|
|
|
* `filter/LotusWordProImportFilter.cxx`: the entry point to the filter
|
|
|
|
* `filter/xfilter`: export to StarOffice XML
|