D-Type Rendering Technology

Standard Suite

Extensions & Plugins

Power Suite

Apps & Tools

Power Suite

D-Type PowerDoc Engine
Celebrating Resolution Independence Day

This rendering machinery is powerful, portable, lightweight, flexible, fast and resolution independent. Verdict: ideal for high quality e-books, forms, charts, maps, splash pages, user interface and all sorts of resolution-independent electronic documents and multi-media presentations.

Overview

D-Type PowerDoc Engine is a high-performance cross-platform C/C++ rendering library and API for professional high-quality resolution independent and scalable 2D presentations consisting of text, bitmap and vector graphics. This powerful library is suitable for all types of applications that create, manipulate, display and store information. While D-Type PowerDoc Engine relies on D-Type Font Engine and D-Type Rasterizer to render text and shapes, this engine has several distinct features:

D-Type PowerDoc Engine excels at rendering high-quality electronic documents and works well on all types of output devices, monitors, LCD and TV screens. The engine generates exactly the same result, down to the pixel, on any platform your application will run on — whether this is Windows, macOS, Linux, iOS, Android or your own custom embedded system.

What is D-Type PowerDoc?

Document Rendering Technology

D-Type PowerDoc is a powerful, portable, high-quality and high-performance resolution independent rendering technology. Its primary purpose is to create and render entire pages and documents in a device, resolution and platform independent manner. This includes e-books, large amounts of text, forms, charts, maps, CD/DVD and multi-media presentations, splash pages, user interface and all types of similar electronic "documents".

High-Level Scalable Graphics Library

D-Type PowerDoc Engine is a high-level scalable graphics library featuring a rich set of 2D graphics primitives. The term scalable means that all graphics primitives (e.g. text, shapes, bitmap images) are interpreted as vectors rather than bitmaps. This allows applications to scale the output to virtually any desired size without compromising the quality. Additionally, this approach makes it possible to apply various mathematical transformations to any rendered objects, including compression, expansion, rotation, skew, perspective or any combination. Finally, the term high-level indicates that D-Type PowerDoc Engine is not just a collection of routines for drawing graphics primitives, but a technology for creating and rendering entire pages and documents in an object oriented manner.

Portable Document and Rendering Technology

Documents created by D-Type PowerDoc technology can be stored on disk for later use or appended to another document in order to create more complex documents. Documents stored on disk in D-Type PowerDoc format are device, resolution and platform independent and fully portable across applications and different platforms (e.g. Windows, Mac, Linux). D-Type PowerDoc API is also fully cross platform which means that applications that utilize D-Type PowerDoc API are usually cross platform too — they are typically written once and compiled on many different platforms without any modifications. Therefore, D-Type PowerDoc is a portable document and rendering technology.

What is Not D-Type PowerDoc?

D-Type PowerDoc is not a vector based drawing application or a desktop publishing application. However, D-Type PowerDoc is very suitable as the rendering engine in these types of applications. This is because D-Type PowerDoc provides all the infrastructure necessary to build complex text and graphical objects that are typically used in vector based drawing programs and desktop publishing applications.

Also, D-Type PowerDoc is not a language or technology for describing the logical structure of documents. In other words, D-Type PowerDoc Engine is not designed to directly process structural content in documents (e.g. chapters, headings, subheadings, paragraphs, lists, data tables, table of contents etc). The representation and handling of structural content, when desired, is the responsibility of your application. But once again, D-Type PowerDoc Engine provides all the infrastructure necessary to render complex structured documents quickly and efficiently and can be very suitable as the primary rendering engine in applications that process and manipulate structured documents.

Key Features

Consistent Object Oriented Rendering Model

D-Type PowerDoc unifies text, vector and bitmap graphics in its clean, intuitive and advanced object oriented rendering model. With D-Type PowerDoc Engine documents are constructed using PowerDoc objects. PowerDoc objects are the building blocks of any document, regardless of how complex it is.

Advanced Graphics Capabilities

D-Type PowerDoc Engine provides applications with advanced graphics capabilities, including high quality, true color 24-bpp anti-aliased rendering with 8-bpp alpha channels, alpha-masking and blending and high quality bitmap resampling filters. D-Type PowerDoc renders vector and bitmap graphics equally well.

Advanced Text Layout and Rendering Capabilities

D-Type PowerDoc Engine provides text layout and text rendering capabilities that few other products can offer. Bidirectional text with arbitrary nesting depths, support for complex scripts such as Arabic, Indic or Thai, horizontal and vertical writing direction, inline objects that can be anchored anywhere in text, advanced typographical properties and incredible text processing and rendering speed are just some of the features that D-Type PowerDoc Engine is known for.

Live Text Editing

D-Type PowerDoc Engine provides built-in infrastructure for "live" text editing. This means that D-Type PowerDoc applications can easily get precise information about the position and extent of each glyph rendered on the screen, obtain an index that maps that glyph back into the input text and get some other useful information about the result of text layout operations. This then allows D-Type PowerDoc applications to very easily support highlighting blocks of selected text, implement cursor movement, hit testing etc. All this functionality is made possible through the use of Frames, which are special PowerDoc objects representing arbitrary quadrilaterals (i.e. 4-point polygons) enclosing every glyph rendered on the screen. Frames are described more thoroughly in the technical documentation provided with the evaluation libraries. The great thing about Frames is that they work reliably regardless of how complex the text is, whether it is unidirectional or bidirectional, whether it is rendered horizontally, vertically, transformed, in perspective etc.

Affine and 2D Perspective Transformations

Affine and 2D perspective transformations (i.e. a full 3x3 transform matrix) can be applied to any PowerDoc object, whether text, bitmap or vector based. This allows D-Type PowerDoc applications to easily transform objects (e.g. stretch, rotate, skew) and even render them in perspective, much like 2D objects are rendered in 3D space. Of course, the text remains fully editable (via Frames) even when rendered in perspective.

Basic Concepts

A typical D-Type PowerDoc document consists of one or more pages. The term page is very generic and, depending on the application, can have different meanings: a page in a book, a layer, a worksheet, a computer screen or any other 2D surface.

Each page consists of one or more PowerDoc images. By definition, images are visual representations of PowerDoc objects. Typical PowerDoc objects include characters, text lines, text areas, rectangles, circles, custom shapes, gradients, bitmap images and other primitives. Before a PowerDoc object can be drawn, an image specifying its position on the page must be created. Later, images can be moved, copied to another page, multiplied etc. However, not all PowerDoc objects have images. For example, some objects simply hold data and have no visual representation.

Every object has one or more properties. For example, color and transparency (pdRGBT) are the properties of the Surface object, while font (pdFontIndex) and font size (pdFontDw and pdFontDh) are the properties of the Typography object.

More complex objects are built on simpler ones. This is achieved by linking. For example, the Shadow object is built by linking to the Surface object and supplying two additional properties: pdShadowDx and pdShadowDy. Similarly, the Character object is built by linking to the Typography object and supplying an additional pdCode property. In this way, an object hierarchy is established.

Once all the properties are set and the object hierarchy established, a D-Type PowerDoc document can be drawn or stored on disk for later use. This is achieved by a single call to the appropriate function.

D-Type PowerDoc Engine API also allows applications to create and embed custom objects into PowerDoc Engine documents. Since these documents can be permanently saved on disk, an application can use the PowerDoc file format to store its own data.

Specifications

Supported Objects
  • Lines, Polylines and Curves
  • Arcs
  • Rectangles
  • Circles and Ellipses
  • Slices
  • Custom Shapes and Polygons
  • Predefined Shapes and Polygons
  • Characters
  • Simple Text Lines
  • Simple Text Arcs
  • Simple Text Paths
  • Simple Text Areas
  • Simple Text Designs
  • Rich Text Lines
  • Rich Text Arcs
  • Rich Text Paths
  • Rich Text Areas
  • Rich Text Designs
  • Grids
  • Patterns
  • Gradients
  • Bitmap Images (with or without an alpha channel)
  • 3D Models
  • Form Controls
  • Groups

    and more..
Advanced Features
  • Custom objects
  • Visual Editor. See PowerDoc Editor for details.
  • High quality rendering, anti-aliasing, sub-pixel precision, alpha channels
  • A full 3x3 transformation matrix can be applied to any PowerDoc object. This includes 2D perspective transformations and affine transformations such as scaling, skewing, rotation etc.
  • Masking and alpha-blending
  • Support for G, GA, RGB and RGBA bitmap images
  • BMP/PNG/JPEG import and export functions
  • High quality bitmap resampling filters. These filters can be applied even to bitmap images that are skewed, rotated or rendered in perspective.
  • Built-in infrastructure for live text editing. Text remains editable even when a 3x3 transformation matrix is applied to it.
  • Support for left-to-right scripts and right-to-left scripts such as Arabic or Hebrew
  • Support for both horizontal and vertical writing direction with either horizontal or vertical glyph orientation
  • Sixteen different types of text progression (e.g. Left-to-Right & Top-to-Bottom, Top-to-Bottom & Left-to-Right, Top-to-Bottom & Right-to-Left etc.)
  • Advanced typography and shaping engine for complex scripts (e.g. ligatures, Arabic script)
  • Any object can be converted to a PowerGlyph and anchored in text. This makes it possible to embed pictures, tables, math formulas and other complex structures in text.
  • Font Embedding
  • Advanced text rendering algorithms for enhanced glyph positioning and text legibility
  • An API for fully scalable forms, dialogs and user interface
  • Sub-pixel rendering optimized for LCD screens
  • Full access to D-Type Font Engine and Rasterizer API
Availability
  • Windows
  • Linux
  • macOS
  • iOS
  • Android
  • Windows Phone

Example 1

Alpha-masking

Example 2

Arabic Script and Bidirectional Text

Example 3

Ligatures

Example 4

Anchoring Objects In Text

Example 5

Text And Shapes With Custom Pattern Fill

Screenshots That Demonstrate Rendering Capabilities

Click the thumbnail to see a larger version of the image.

True color RGB anti-aliased rendering with 8-bpp alpha-masking

Another alpha-masking example

Excellent quality thanks to D-Type Font Engine and Rasterizer

Text edges don't have to be straight!

International text and Unicode support

Complex scripts (Arabic, Thai, Hindi) in perspective. This text is selectable and editable.

Text with embedded objects in perspective. Again, this text is fully selectable and editable.

Sixteen different types of text progression

Layered text...

...and special text effects.

Mix complex bidirectional scripts in horizontal writing mode...

...or vertical.

Text on path with different alignment and orientation

Unicode scripts with ligatures

Examples of gradients

A library of high-quality bitmap icons

Special text effects using transformations and alpha-masking

A library of common vector shapes

A library of patterns

A library of text area types

Output text any way you want - Part 1

Output text any way you want - Part 2

Vertical text alignment

Simple 2D diagram

Render simple 2D illustrations...

...or complex 3D objects.