What is WPTools?
WPTools is a word processing component for Borland Delphi and C++Builder.
It loads and saves RTF files. Its RTF implementation is one of the most complete on the component market (header/footer, paragraph styles, optional footnote support, table header rows).
The "premium" edition also does columns, text boxes and footnotes. It also includes a special XML reader and writer unit.
But WPTools does not only serve to edit text, it is a powerful toolset for mass mailing and, optional, RTF reports.
The package also includes a lean but powerful XML interface (unit WPXMLInt.pas) - it makes it extremely easy to store structured information in memory with integrated support for saving and loading.
The component also comes with a set of glyphs which You may use in Your application when you have licensed WPTools 7.
The first version of our product was released on the Delphi market in January 1996. Over the years it has evolved further to become what you now see. First of all, HTML and WYSIWYG support was added, later we also added the page layout view and fast zooming. At the beginning of 2004 version 4.22 was released - it was the last release of a WPTools version which was still partially based on the RTF Engine created in 1996.
During 2003 and 2004 WPCubed GmbH, managed by Julian Ziersch, developed a new word processing engine. This new engine was constructed to provide solutions for the wide variety of demands which were raised over the last 8 years and addresses issues which could not be solved within the framework of the old WPTools engine.
WPTools has been quite successful over the last 8 years and was used in a multitude of projects, both large and small. It is the only text editor which was developed in native Delphi and which supports WYSIWYG page layout view (with WYSIWYG header and footer), including support for tab stops. The competition continues to struggle to achieve the standard set by WPTools, thus demonstrating that the original concept was very good. So why was this rewrite necessary?
In-depth modifications were required to add support for new features, such as nested tables. Plus, it necessary to remove pointer arithmetic completely. Those pointers had been very important in 1996 to enhance performance and because the compiler did not support arrays with variable lengths. Furthermore, some parts of the programming interface had become redundant over the years and last, but not least, CSS and XML development brought new ideas to word processing, which could only be implemented in a complete re-write. Since WPTools 5 the engine works with property inheritance, this means if a deeper element does not define a certain property (think of indents, shading and alike) the property is used which was defined at a higher level.
The new RTF-Engine was first used for WPTools 5. WPTools 6 is build upon the stable WPTools 5 kernel, but introduces several interesting new features and optimizes the support for the new unicode enabled compiler Delphi 2009 and Delphi 2010 and XE.
Unlike competing products WPTools 5 implemented separation of data and display from the very beginning. The included style support always made it possible to have a set of styles which is valid for different text at the same time. Further more there always was double page and multi column display.
The new WPTools 7 is mostly based on the architecture of WPTools 5 and 6, however it was necessary to split up some of the pascal units into smaller units. The formatting logic has now been implemented in special units, which have to be linked in when required and can be left out, if not. This helps to make compiled code smaller and also to implement alternative formatting code.
WPTools 7 updates some older components which are still widely used in products, i.e. the TWPToolbar. This unique component makes it possible to create a full featured text editor without writing any code. Now the toolbar is customizable, also at runtime. Without having to spend a lot of time, You can enhance your project by simply linking in the new units.
Special features of Delphi XE3 have also been integrated into WPTools 7.
The migration from WPTools 5 or 6 to 7 has been made as easy as possible - usually you only need to add some new units to the uses clause.
What does WPTools Version 7 do?
This is what it is all about. WPTools is the tool to edit documents, the user can insert multiple header and footer texts and all works in a WYSIWYG manner.
When you compare the word processing features with competing products please check out how natural the tables in WPTools "feel". A table can be wider than the text area, it is possible to select ranges of cells and using the border dialog apply borders to that range as if it was just one cell.
WPTools can also display the pages in multiple columns and supports different page sizes with one document.
WPTools separates the editor logic from the data. This makes it possible to work with the text in memory and have just one or more viewer display this text at different layout modes or zoom levels.
The developer can insert pages from any source (owner drawn) into the displayed pages. This way it is possible to mix these pages with RTF pages and preview and print them all at once. It is also possible to have an editable text, followed by a report created by the specialized reporting engine and preview everything in the same editor!
WPTools has the ability to dynamically create and display text during page formatting. This makes it possible to display calculated sums in dynamic table footers. Because the display changes after each reformat, this is an ideal solution for creating invoices since the report is completely editable!
WPTools has incredibly powerful and fast table support. It is fast enough to hold thousands of rows! If you have the "WPReporter Addon" (it is included in the "Bundle") also calculation in tables is possible.
It is possible to merge in text, plain or formatted and also images. This is probably the most important feature since WPTools always supported non destructive mailmerge. It is also possible to let the user modify the merged document and read out the changes to save them in the database.
Also possible: Data entry forms
The new TableAdd function is very easy to use but still very powerful. As we prove in our "ThreadSave" demo the text creation can take place in sub threads.
The central class is TParagraph. It implements many low level methods to read and write directly into the text.
When activated the logical pages in the document are distributed on virtual labels on a virtual label sheet. This makes it possible to do a mailmerge and then preview or even edit the labels before they are printed. We have not seen such a feature in any other component. WPTools 7b
In general WPTools is optimized for document editing. But for special tasks we have integrated a new and alternative formatting routine to display HTML files.
r) MIME support (based on Synapse).