With the DtpDocuments component suite, you, the developer, can instantly add professional-quality document editing capabilities to your VCL applications. It is not the next reporting component that can only output square, unblended shapes and text blocks. This component can handle virtually every graphical aspect, including native free rotation and alpha blending on pixel and shape level.
DtpDocuments is used in a very diverse number of applications:
Desktop Publishing and home publishing applications
Multipage print previews
CAD/GIS editors (2D) - also eCAD, ODB++
Flowcharting and diagramming applications (e.g. VISIO-alike)
Features of the document
The TDtpDocument component is designed from the ground up to take away a lot of work from your hands:
Provide a scrollable region that visually looks like a paper page on which the user can drag, drop and edit all kinds of shapes, using mouse and keyboard. Scrolling and zooming, as well as moving shapes is super fast and completely flicker free due to smart internal caching and full usage of MMX.
Provide a complete multi-page document object that holds any number of pages, which are also accessible through a clickable thumbnail list.
Provide a complete storage mechanism to store these pages and their contents into one file. The file can also efficiently store any kind of embedded data in shapes (e.g. images), as well as user data through events.
Provides full cut/copy/paste for shapes and pages within the application or even between applications using the Windows clipboard.
Provides high-quality printing, either complete document or selections, at multiple resolutions, to a device (printer) or to an image.
Full undo and redo functionality is built right into the component. No need to worry about writing your own, it is already there. There is a configurable undo limit and the undo information is stored very efficiently (transaction based).
Positioning helpers are provided: grid, dots, or checker pattern, functions "snap to grid" and hotzone scrolling. Rotation is free by default but with StepAngle it can be configured to be done in steps.