WPTools uses reader and writer classes. This makes it possible to - even in the standard version which does not contain all of the source code - to extend or to modify the way files are loaded and saved.
All reader and writer classes have been completely rewritten for Version 5. The latest programming techniques have been introduced to make the reading and writing fast and save.
WPTools 5 reads and writes its own "WPTOOLS" format, ANSI, RTF and HTML/CSS texts.
Reader and Writer Classes
Extensible concept to support file formats
- Page format and Margins
- Header and Footer texts
- Images in BMP, WMF and PNG format (requires GraphicEX library)
- subtractive styles
- Numbering Stylesheets (\list ..)
- References and bookmarks (TOC!)
- Nested Tables
- Paragraph Attributes, i.e. indent and spacing, justification
- Character Attributes
- Unicode Characters \u
- Character attributes, FONT, B, I, U
- StyleSheets <style>
- inline CSS styles <p style="">
- styles references <p class="">
- hyperlinks, also with references to styles <a class="" href="">
- inline span objects <span style="">, <span class="">
WPTools supports attributes known from the RTF and from CSS specification. Unfortunately neither one includes all the possibilities of the other. For example, CSS has no possibility to store tab stops. So you may ask why we do not use XML as file format. Using additional parameters would make it easy to store all the attributes WPTools supports. That would introduce other problems:
Unlike HTML XML requires a clear nesting of tags, this means that each XML TAG has to be closed on the level it was opened. But this would limit the capabilities of WPTools. There are several elements which can be closed on a different level, i.e. hyper links. A hyper link (<A>) can be opened somewhere within one paragraph and be closed within the next. The same is true for bookmarks and of course mail merge fields.
So we decided to create the "WPTOOLS" format to be HTML like, this means it works with TAGs which are using named parameters. The intention was to make the WPTOOLS format readable by HTML readers. Not only to display it in a web browser (which works) but to use it as input for an indexing system. So all indexing systems which can handle HTML can also handle the WPTOOLS format. A general HTML reader will see the plain text and the tables in WPTOOLS format and ignore the embedded images since they have been embedded Base64 encoded escaped by HTML comments.