Serif - Software With Imagination PagePlus X2. Half Price
Basket: Total:
0 items
$0.00
Login  
PagePlus PhotoPlus DrawPlus WebPlus MoviePlus PanoramaPlus ImpactPlus AlbumPlus FontManager MediaPlus PopArtPlus MontagePlus Other Products
Price List Online Store Purchase & Download Order Direct Upgrade Center Corporate Educational
Contact Support My Account Tutorials Updates & Patches Product Registration FAQs Support Policies Product Manuals
Forums Affiliates Contest Newsletter 'How To' Guides User Submissions Link To Us
OEM Partners Distributors Reseller Partners Become a Partner
About Serif News Media Section Technology Career Opportunities Contact Us License Agreements Legal Notices
International
Technology
About Serif
News
Media Section
Technology
· Text Engine
Geometry Engine
Graphics Engine
OEM Licensing
Image Warping
Career Opportunities
Contact Us
License Agreements
Terms and Conditions
The Serif Text Engine

The Serif Text Engine is a standalone DLL that supplies PagePlus with its sophisticated text layout abilities. It has been engineered in C++ to the highest possible standards, using the latest thinking in object oriented design. The Text Engine will be of use to anyone creating a product with text layout functionality, such as a word-processor, web page authoring tool, document processor or desktop publishing product (though you may have a hard time convincing us that it is in our best interests to license it to you for a DTP product).

There are several Word Processing "controls" on the market (Including the Rich Edit Control from Microsoft), which could form the basis of a simple text editing application. A list of these is maintained by Sophist Solutions here. The Text Engine is designed to support sophisticated, multi-page, multi-column documents with irregular wrapping regions and a high level of typographical control as required by a modern desktop publishing product.

Serif has over 10 years experience of developing desktop publishing products and the development of the Text Engine drew upon all of that experience. It could potentially save you years of effort.

Overview of the Text Engine

The job of the Text Engine is to compose Stories into Layouts. A Story is the logical text stream data, the Glyphs, along with their Attributes. A Layout is an ordered collection of Columns and Wrap Shapes. The Story flows down the columns in order, avoiding any wrap shapes it encounters along the way. User events, such as key presses and mouse clicks are passed to the engine, which re-flows the affected region of text and tells the client application which areas to invalidate. For maximum flexibility, text-rendering functions are supplied by the client application. This is how PagePlus is able to draw text with graduated fills, in rotated text frames, or text on a curve while the Text Engine knows nothing about these features.

The Text Engine efficiently stores your text, attributes and layout information and will save or load them to a stream if required. It also, manages undo and redo stacks of unlimited size. Composition or re-composition of text can be performed on demand or in idle time and is very fast. In a test for this web site, the Text Engine composed the entire text of Shakespeare's Hamlet (116 pages) in less than 1 second on a 400MHz Pentium II.

Features of the Text Engine

The best way to evaluate the Serif Text Engine is to obtain a copy of Serif PagePlus, which uses all of the functionality. All Serif products are very competitively priced and have a 30-day money back guarantee, so you can't lose. Once you have the product you can test the performance of the following features:

  • Bulleted and Numbered lists.
  • Dropped Capitals.
  • Hierarchical Paragraph and Character Styles.
  • Unlimited undo, redo and repeat functions.
  • Multiple Wrap settings, wrap inside or outside irregular regions.
  • RTF import and export to clipboard or files.
  • Auto-fitting of Text content to a layout.
  • Support for hyphenation engines.
  • Support for online spelling and grammar checking.
  • Full character spacing controls and optional Auto-Kerning.
  • Full word, line and paragraph spacing controls.
  • Pagination controls, multiple break characters.
  • Hyperlinks and power fields.
  • Intelligent mouse selection of text.
  • Smart Quotes and Auto-correction of text.
  • Mail Merge provision.

The Code

The Text Engine has been designed using the latest object oriented design principles and makes considerable use of Design Patterns such as Factories, Visitors, Flyweights and Observers. This makes it very easy to extend the engine by deriving new classes. For example, if you wished to allow pictures to be embedded within your text stream you would simply derive a new Glyph class.

Wherever possible, the Text Engine uses the Standard Template Library (STL) for its container classes so as to minimize Windows platform dependencies.

Documentation

The Text Engine Documentation is available online here. If you would like a zip file of the full documentation, please get in touch.

MFC Dependencies

At present the Text Engine only addresses the Windows platform and has a few dependencies on the Microsoft Foundation Classes (MFC). It would not be difficult to remove all the MFC dependencies for implementation of the Text Engine on another platform. The complete list of all MFC classes used directly by the Text Engine follows:

  • CObject  Used mainly for RTTI and Serialization.
  • CArchive  Used for Serialization
  • CString  Basic string operations
  • CStringArray  Arrays of strings
  • CException  Basic exception handling
  • CArchiveException  Exception handling for Serialization
  • CFile  For File export and import
  • COleDataObject  For Clipboard operations
  • COleDataSource  For Clipboard operations
  • COlePasteSpecialDialog  For Clipboard operations
  • CRect  For Describing rectangles
  • CPoint  For Describing points
  • CFont  MFC Font class
  • CDC  For Getting Text Metrics
  • CDumpContext  For Debugging purposes only
  • CRuntimeClass  For RTTI

Licensing the Text Engine

The Serif Text Engine is not a shrink-wrapped product. It is a core technology of our company's products. It is very unlikely to be within the means of the individual or hobbyist programmer. All requests to license the library, in whole or in part will be treated on an individual basis. If you require further information please contact:

Darren Darvill
Head of Development
Serif (Europe) Ltd
Nottingham, UK
Tel +44 (0) 115 9142000