Appears in: Text Layout (Automatic)
Alignment of a text line.
Supported values:
0 = Left: The text line is aligned left.
1 = Center: The text line is centered.
2 = Right: The text line is aligned right.
3 = Justify Type A / Left: Justify the text line by inserting extra spacing after each character. If this is not possible (e.g. the text line contains a single character), then align left.
4 = Justify Type B / Left: Justify the text line by inserting extra spacing only after the space characters. If this is not possible (e.g. the text line does not have any space characters), then align left.
5 = Justify Type A / Center: Justify the text line by inserting extra spacing after each character. If this is not possible (e.g. the text line contains a single character), then center.
6 = Justify Type B / Center: Justify the text line by inserting extra spacing only after the space characters. If this is not possible (e.g. the text line does not have any space characters), then center.
7 = Justify Type A / Right: Justify the text line by inserting extra spacing after each character. If this is not possible (e.g. the text line contains a single character), then align right.
8 = Justify Type B / Right: Justify the text line by inserting extra spacing only after the space characters. If this is not possible (e.g. the text line does not have any space characters), then align right.
9 = Justify Type B / Justify Type A / Left: Justify the text line by inserting extra spacing only after the space characters. If this is not possible (e.g. the text line does not have any space characters), then justify the text line by inserting extra spacing after each character. If this is not possible (e.g. the text line contains a single character), then align left.
10 = Justify Type B / Justify Type A / Center: Justify the text line by inserting extra spacing only after the space characters. If this is not possible (e.g. the text line does not have any space characters), then justify the text line by inserting extra spacing after each character. If this is not possible (e.g. the text line contains a single character), then center.
11 = Justify Type B / Justify Type A / Right: Justify the text line by inserting extra spacing only after the space characters. If this is not possible (e.g. the text line does not have any space characters), then justify the text line by inserting extra spacing after each character. If this is not possible (e.g. the text line contains a single character), then align right.
Appears in: Text Layout (Automatic)
Alignment of the last text line in a paragraph.
Supported values:
0 = Left: The text line is aligned left.
1 = Center: The text line is centered.
2 = Right: The text line is aligned right.
3 = Justify Type A / Left: Justify the text line by inserting extra spacing after each character. If this is not possible (e.g. the text line contains a single character), then align left.
4 = Justify Type B / Left: Justify the text line by inserting extra spacing only after the space characters. If this is not possible (e.g. the text line does not have any space characters), then align left.
5 = Justify Type A / Center: Justify the text line by inserting extra spacing after each character. If this is not possible (e.g. the text line contains a single character), then center.
6 = Justify Type B / Center: Justify the text line by inserting extra spacing only after the space characters. If this is not possible (e.g. the text line does not have any space characters), then center.
7 = Justify Type A / Right: Justify the text line by inserting extra spacing after each character. If this is not possible (e.g. the text line contains a single character), then align right.
8 = Justify Type B / Right: Justify the text line by inserting extra spacing only after the space characters. If this is not possible (e.g. the text line does not have any space characters), then align right.
9 = Justify Type B / Justify Type A / Left: Justify the text line by inserting extra spacing only after the space characters. If this is not possible (e.g. the text line does not have any space characters), then justify the text line by inserting extra spacing after each character. If this is not possible (e.g. the text line contains a single character), then align left.
10 = Justify Type B / Justify Type A / Center: Justify the text line by inserting extra spacing only after the space characters. If this is not possible (e.g. the text line does not have any space characters), then justify the text line by inserting extra spacing after each character. If this is not possible (e.g. the text line contains a single character), then center.
11 = Justify Type B / Justify Type A / Right: Justify the text line by inserting extra spacing only after the space characters. If this is not possible (e.g. the text line does not have any space characters), then justify the text line by inserting extra spacing after each character. If this is not possible (e.g. the text line contains a single character), then align right.
Appears in: Bitmap Image
For images that contain an alpha channel (pdImageDataGrayAlpha and pdImageDataRGBAlpha), this is the interpretation of the alpha channel. For monochrome images (pdImageDataMono) this is the interpretation of the bits (pixels) in each byte.
Supported values:
For GA and RGBA images
0 = Ignore the 2nd byte in GA images and 4th byte in RGBA images. Assuming that the channels are not reordered using the pdOrderingArr property, this will result in the alpha channel being ignored.
1 = Alpha channel represents transparency. This is true even if the channels are reordered using the pdOrderingArr property.
2 = Alpha channel represents opacity. This is true even even if the channels are reordered using the pdOrderingArr property.
For monochrome images
0 = Bits (pixels) in each byte are ordered left to right; 1 represent black, 0 represent white
1 = Bits (pixels) in each byte are ordered left to right; 1 represent white, 0 represent black
2 = Bits (pixels) in each byte are ordered right to left; 1 represent black, 0 represent white
3 = Bits (pixels) in each byte are ordered right to left; 1 represent white, 0 represent black
Appears in: Text Arc, Rich Text Arc, Slice, Arc
Initial (start) angle in degrees. Must be between 0 and 360.
Sample values:
0 = Angle of 0 degrees
90 = Angle of 90 degrees
Appears in: Text Line, Text Design, Rich Text Line, Rich Text Design
Angle in degrees. Must be between 0 and 360.
Length of an arc in degrees. Must be between 0 and 360.
Sample values:
180 = Length of 180 degrees
240 = Length of 240 degrees
Appears in: Group Member, System Guide
Attributes of an object.
1) When used to build the Group Member object, this value should be interpreted as follows:
Bit 0 unset = indicates a visible PowerDoc object.
Bit 0 set = indicates a hidden PowerDoc object. Hidden object are not rendered.
Bit 2 unset = do not use fractional positioning for object origins.
Bit 2 set = use fractional positioning for object origins.
All other bits are reserved for future use and must be set to 0.
2) When used to build the System Guide object, the interpretation is different:
Bit 0 = If set, show right part of the guide
Bit 1 = If set, show bottom part of the guide
Bit 2 = If set, show left part of the guide
Bit 3 = If set, show top part of the guide
Bit 4 = If set, the right part is just a short segment, otherwise it is infinitely long
Bit 5 = If set, the bottom part is just a short segment, otherwise it is infinitely long
Bit 6 = If set, the left part is just a short segment, otherwise it is infinitely long
Bit 7 = If set, the top part is just a short segment, otherwise it is infinitely long
Appears in: Bitmap Image, Library Bitmap Image
Background color bytes when edge smoothing is enabled (4 bytes). This property is respected only when edge smoothing is enabled, as follows:
- In RGBA images all 4 bytes are used; these 4 bytes represent the background color of an image. The color value is interpreted the same way as the color value of each individual pixel in the corresponding pdImageDataRGBAlpha property of the Bitmap Image Data object.
- In RGB images the first three bytes are used; these 3 bytes represent the background color of an image. The color value is interpreted the same way as the color value of each individual pixel in the corresponding pdImageDataRGB property of the Bitmap Image Data object. The fourth byte is unused and should be set to 255.
- In GA images the first two bytes are used; these 2 bytes represent the background color of an image. The color value is interpreted the same way as the color value of each individual pixel in the corresponding pdImageDataGrayAlpha property of the Bitmap Image Data object. The last two bytes are unused and should be set to 255.
- In G images only the first byte is used; this byte represent the background color of an image. The color value is interpreted the same way as the color value of each individual pixel in the corresponding pdImageDataGray property of the Bitmap Image Data object. The last three bytes are unused and should be set to 255.
In all cases, the pdOrderingArr property affects the used bytes the same way as it affects the corresponding bytes in the pdImageDataRGBAlpha, pdImageDataRGB, pdImageDataGrayAlpha and pdImageDataGray properties.
Appears in: PowerFont
Bounding box in document units (4 elements, each element is 4 bytes long). The elements represent XMin, YMin, XMax and YMax coordinates of the bounding box.
Exception: The bounding box associated with a PowerFont is flipped in the Y direction. This means its coordinates are actually (XMin, -YMax, XMax, -YMin).
Sample values:
"-50, -50, 350, 350"
Appears in: Surface Definition
Appears in: Text Line, Text Area, Rich Text Line, Rich Text Area
Indicates whether text should be rendered in a device independent, device dependent or mixed mode. Review the "Rendering Great Looking Text With D-Type" document for a comprehensive overview.
Supported values:
0 = Device Independent Mode. Text will be rendered in a device independent mode, which means that text metrics are independent of the device, resolution or zoom factor and are mathematically accurate. Therefore, in text areas and rich text areas, characters that are supposed to vertically line up will always line up. In addition, all text lines will always fit within the width of the enclosing area. This is the default mode. Recommended for WYSIWYG applications.
1 = Device Dependent Mode #1. Text will be rendered in a device dependent mode, which means that text metrics are device specific. This mode utilizes a complex device dependent formula that is specially crafted to give good looking character spacing (calculated in whole-pixel units). This mode corresponds to the DV_TEXTMODE_DEVICE value in D-Type Standard Engine. See the dtxTextDoOutput family of functions in D-Type Standard Engine Manual for details.
Important note for text areas and rich text areas: Because this mode is device dependent, please be aware that the length of certain text lines will sometimes exceed the width of the enclosing area; also characters that are supposed to vertically line up will usually not line up. This behavior is by design.
2 = Device Dependent Mode #2. Text will be rendered in a device dependent mode, which means that text metrics are device specific. This mode is similar to Device Dependent Mode #1 since it also utilizes a complex device dependent formula crafted to give good looking character spacing. However, this mode produces even better looking and easier to read text, especially at smaller sizes. This is accomplished by artificially increasing the amount of character spacing between certain characters and in certain conditions. This mode corresponds to the DV_TEXTMODE_DEVICE_2 value in D-Type Standard Engine. See the dtxTextDoOutput family of functions in D-Type Standard Engine Manual for details.
Important note for text areas and rich text areas: Because this mode is device dependent (and also because the character spacing may be artificially increased), please be aware that the length of certain text lines will sometimes exceed the width of the enclosing area; also characters that are supposed to vertically line up will usually not line up. This behavior is by design.
101 = Mixed Mode #1. By default, the engine will render all text using Device Dependent Mode #1. In text areas and rich text areas, however, if there are any text lines whose length would exceed the width of the enclosing area, then those text lines will be rendered in a device independent manner. Consequently, for text areas and rich text areas, this mode guarantees that all text lines will always fit within the width of the enclosing area.
102 = Mixed Mode #2. By default, the engine will render all text using Device Dependent Mode #2. In text areas and rich text areas, however, if there are any text lines whose length would exceed the width of the enclosing area, then the engine will attempt to render those lines using Device Dependent Mode #1. If, after this, there are still some text lines whose length exceeds the width of the enclosing area, then those lines will be rendered in a device independent manner. Consequently, for text areas and rich text areas, this mode guarantees that all text lines will always fit within the width of the enclosing area. This mode usually produces great looking character spacing and is highly recommended whenever true WYSIWYG support is not a priority.
Appears in: PowerFont, Library Polyline, Library Shape, Line, Rectangle, Circle/Ellipse, Pattern, Grid, Gradient, Gradient (As Fast Rectangle), Gradient (As Inverter), Bitmap Image, Library Bitmap Image, 3D Model
In general, this property represents the height of a line, shape or other object in document units. Most objects assume a positive height. But some objects (e.g. lines) can have either a positive or a negative height. In these cases, the height property also indicates the direction.
This property may also be used for some other more specific purposes. For example, in PowerFonts this property refers to the font's base height (or vertical units per em-square).
Sample values:
400 = Height of 400 document units
-100 = Height of -100 document units
Appears in: PowerFont Record, PowerFont, Library Polyline, Library Shape, Line, Rectangle, Circle/Ellipse, Pattern, Grid, Gradient, Gradient (As Fast Rectangle), Gradient (As Inverter), Bitmap Image, Library Bitmap Image, 3D Model
In general, this property represents the width of a line, shape or some other object in document units. Most objects assume a positive width. However, some objects (e.g. lines) can have either a positive or a negative width. In these cases, this property also indicates the direction.
This property may also be used for some other more specific purposes. For example, in PowerFonts it refers to the font's base width (or horizontal units per em-square). Similarly, in PowerFont records this property serves as the advance width of a glyph.
Sample values:
500 = Width of 500 document units
-200 = Width of -200 document units
Appears in: Text Layout (Automatic), Group Member
Horizontal offset in document units.
Appears in: Text Layout (Automatic), Group Member
Vertical offset in document units.
Dynamic Width
Appears in: Surface Definition
Array of Style Effects
Style effects to apply to a surface. This is an array that contains one or more effect values. The maximum number of values this array can hold is 64. The array begins with the first EffectID, which is followed by the first set of n EffectParameter values. The array continues with the second EffectID, which is followed by the second set of n EffectParameter values. The array continues with the third EffectID, which is followed by the third set of n EffectParameter values. And so on. Once again, the total number of EffectID and EffectParameter values in the array cannot exceed 64.
The number of EffectParameter values in each set (n) depends on the actual EffectID in that set. Some EffectID values have no parameters, while others have 1 or 2 parameters. See Appendix - Style Effects for details.
EffectID identifies one of D-Type's special effects, while EffectParameter values provide effect specific parameters. Some effects have no parameters, while others have 1 or 2 EffectParameter values. The following chart lists all currently supported style effects and explains how to use their parameters:
EffectID: 0 (DV_EFFECT_NONE)
Description: No special effect
Number of Required EffectParameter Values (n): 0
EffectID: 1 (DV_EFFECT_HBLUR_FUZZY)
Description: Fuzzy Blur - only horizontal
Number of Required EffectParameter Values (n): 1
1st EffectParameter: The amount of horizontal blur in pixels.
EffectID: 2 (DV_EFFECT_VBLUR_FUZZY)
Description: Fuzzy Blur - only vertical
Number of Required EffectParameter Values (n): 1
1st EffectParameter: The amount of vertical blur in pixels.
EffectID: 3 (DV_EFFECT_HVBLUR_FUZZY)
Description: Fuzzy Blur - horizontal and vertical
Number of Required EffectParameter Values (n): 2
1st EffectParameter: The amount of horizontal blur in pixels.
2nd EffectParameter: The amount of vertical blur in pixels.
EffectID: 4 (DV_EFFECT_HBLUR_GAUSS)
Description: Gaussian Blur - only horizontal
Number of Required EffectParameter Values (n): 1
1st EffectParameter: The amount of horizontal blur in pixels.
EffectID: 5 (DV_EFFECT_VBLUR_GAUSS)
Description: Gaussian Blur - only vertical
Number of Required EffectParameter Values (n): 1
1st EffectParameter: The amount of vertical blur in pixels.
EffectID: 6 (DV_EFFECT_HVBLUR_GAUSS)
Description: Gaussian Blur - horizontal and vertical
Number of Required EffectParameter Values (n): 2
1st EffectParameter: The amount of horizontal blur in pixels.
2nd EffectParameter: The amount of vertical blur in pixels.
EffectID: 7 (DV_EFFECT_EMBOSS_50_NW)
Description: 50% Transparent Emboss - North-West
Number of Required EffectParameter Values (n): 2
1st EffectParameter: The amount of horizontal emboss in pixels.
2nd EffectParameter: The amount of vertical emboss in pixels.
EffectID: 8 (DV_EFFECT_EMBOSS_50_NE)
Description: 50% Transparent Emboss - North-East
Number of Required EffectParameter Values (n): 2
1st EffectParameter: The amount of horizontal emboss in pixels.
2nd EffectParameter: The amount of vertical emboss in pixels.
EffectID: 9 (DV_EFFECT_EMBOSS_50_SW)
Description: 50% Transparent Emboss - South-West
Number of Required EffectParameter Values (n): 2
1st EffectParameter: The amount of horizontal emboss in pixels.
2nd EffectParameter: The amount of vertical emboss in pixels.
EffectID: 10 (DV_EFFECT_EMBOSS_50_SE)
Description: 50% Transparent Emboss - South-East
Number of Required EffectParameter Values (n): 2
1st EffectParameter: The amount of horizontal emboss in pixels.
2nd EffectParameter: The amount of vertical emboss in pixels.
EffectID: 11 (DV_EFFECT_PATTERN_PHOTO)
Description: Pattern Group 1 - Photo Shades
Number of Required EffectParameter Values (n): 1
1st EffectParameter: Pattern fill index. Refer to Appendix - Pattern Fills for a list of available pattern fills.
EffectID: 12 (DV_EFFECT_PATTERN_SHADES)
Description: Pattern Group 2 - Fine Shades
Number of Required EffectParameter Values (n): 1
1st EffectParameter: Pattern fill index. Refer to Appendix - Pattern Fills for a list of available pattern fills.
EffectID: 13 (DV_EFFECT_PATTERN_STRIPES)
Description: Pattern Group 3 - Stripes
Number of Required EffectParameter Values (n): 1
1st EffectParameter: Pattern fill index. Refer to Appendix - Pattern Fills for a list of available pattern fills.
EffectID: 14 (DV_EFFECT_PATTERN_ORNAMENTAL)
Description: Pattern Group 4 - Ornamental
Number of Required EffectParameter Values (n): 1
1st EffectParameter: Pattern fill index. Refer to Appendix - Pattern Fills for a list of available pattern fills.
EffectID: 15 (DV_EFFECT_EDGE_50_NW)
Description: 50% Transparent Shaded Edge - North-West
Number of Required EffectParameter Values (n): 2
1st EffectParameter: The horizontal shading factor in pixels.
2nd EffectParameter: The vertical shading factor in pixels.
EffectID: 16 (DV_EFFECT_EDGE_50_NE)
Description: 50% Transparent Shaded Edge - North-East
Number of Required EffectParameter Values (n): 2
1st EffectParameter: The horizontal shading factor in pixels.
2nd EffectParameter: The vertical shading factor in pixels.
EffectID: 17 (DV_EFFECT_EDGE_50_SW)
Description: 50% Transparent Shaded Edge - South-West
Number of Required EffectParameter Values (n): 2
1st EffectParameter: The horizontal shading factor in pixels.
2nd EffectParameter: The vertical shading factor in pixels.
EffectID: 18 (DV_EFFECT_EDGE_50_SE)
Description: 50% Transparent Shaded Edge - South-East
Number of Required EffectParameter Values (n): 2
1st EffectParameter: The horizontal shading factor in pixels.
2nd EffectParameter: The vertical shading factor in pixels.
EffectID: 19 (DV_EFFECT_BODY_50_NW)
Description: 50% Transparent Shaded Body - North-West
Number of Required EffectParameter Values (n): 2
1st EffectParameter: The horizontal shading factor in pixels.
2nd EffectParameter: The vertical shading factor in pixels.
EffectID: 20 (DV_EFFECT_BODY_50_NE)
Description: 50% Transparent Shaded Body - North-East
Number of Required EffectParameter Values (n): 2
1st EffectParameter: The horizontal shading factor in pixels.
2nd EffectParameter: The vertical shading factor in pixels.
EffectID: 21 (DV_EFFECT_BODY_50_SW)
Description: 50% Transparent Shaded Body - South-West
Number of Required EffectParameter Values (n): 2
1st EffectParameter: The horizontal shading factor in pixels.
2nd EffectParameter: The vertical shading factor in pixels.
EffectID: 22 (DV_EFFECT_BODY_50_SE)
Description: 50% Transparent Shaded Body - South-East
Number of Required EffectParameter Values (n): 2
1st EffectParameter: The horizontal shading factor in pixels.
2nd EffectParameter: The vertical shading factor in pixels.
EffectID: 23 (DV_EFFECT_EDGE_100_NW)
Description: Opaque Shaded Edge - North-West
Number of Required EffectParameter Values (n): 2
1st EffectParameter: The horizontal shading factor in pixels.
2nd EffectParameter: The vertical shading factor in pixels.
EffectID: 24 (DV_EFFECT_EDGE_100_NE)
Description: Opaque Shaded Edge - North-East
Number of Required EffectParameter Values (n): 2
1st EffectParameter: The horizontal shading factor in pixels.
2nd EffectParameter: The vertical shading factor in pixels.
EffectID: 25 (DV_EFFECT_EDGE_100_SW)
Description: Opaque Shaded Edge - South-West
Number of Required EffectParameter Values (n): 2
1st EffectParameter: The horizontal shading factor in pixels.
2nd EffectParameter: The vertical shading factor in pixels.
EffectID: 26 (DV_EFFECT_EDGE_100_SE)
Description: Opaque Shaded Edge - South-East
Number of Required EffectParameter Values (n): 2
1st EffectParameter: The horizontal shading factor in pixels.
2nd EffectParameter: The vertical shading factor in pixels.
EffectID: 27 (DV_EFFECT_BODY_100_NW)
Description: Opaque Shaded Body - North-West
Number of Required EffectParameter Values (n): 2
1st EffectParameter: The horizontal shading factor in pixels.
2nd EffectParameter: The vertical shading factor in pixels.
EffectID: 28 (DV_EFFECT_BODY_100_NE)
Description: Opaque Shaded Body - North-East
Number of Required EffectParameter Values (n): 2
1st EffectParameter: The horizontal shading factor in pixels.
2nd EffectParameter: The vertical shading factor in pixels.
EffectID: 29 (DV_EFFECT_BODY_100_SW)
Description: Opaque Shaded Body - South-West
Number of Required EffectParameter Values (n): 2
1st EffectParameter: The horizontal shading factor in pixels.
2nd EffectParameter: The vertical shading factor in pixels.
EffectID: 30 (DV_EFFECT_BODY_100_SE)
Description: Opaque Shaded Body - South-East
Number of Required EffectParameter Values (n): 2
1st EffectParameter: The horizontal shading factor in pixels.
2nd EffectParameter: The vertical shading factor in pixels.
EffectID: 31 (DV_EFFECT_SHADE_INNER_A)
Description: Inner Shade A
Number of Required EffectParameter Values (n): 2
1st EffectParameter: The horizontal shading factor in pixels.
2nd EffectParameter: The vertical shading factor in pixels.
EffectID: 32 (DV_EFFECT_SHADE_INNER_B)
Description: Inner Shade B
Number of Required EffectParameter Values (n): 2
1st EffectParameter: The horizontal shading factor in pixels.
2nd EffectParameter: The vertical shading factor in pixels.
EffectID: 33 (DV_EFFECT_SHADE_INNER_C)
Description: Inner Shade C
Number of Required EffectParameter Values (n): 2
1st EffectParameter: The horizontal shading factor in pixels.
2nd EffectParameter: The vertical shading factor in pixels.
EffectID: 34 (DV_EFFECT_HBOLD)
Description: Bold - only horizontal
Number of Required EffectParameter Values (n): 1
1st EffectParameter: The amount of horizontal emboldening in pixels.
EffectID: 35 (DV_EFFECT_VBOLD)
Description: Bold - only vertical
Number of Required EffectParameter Values (n): 1
1st EffectParameter: The amount of vertical emboldening in pixels.
EffectID: 36 (DV_EFFECT_HVBOLD)
Description: Bold - horizontal and vertical
Number of Required EffectParameter Values (n): 2
1st EffectParameter: The amount of horizontal emboldening in pixels.
2nd EffectParameter: The amount of vertical emboldening in pixels.
EffectID: 37 (DV_EFFECT_HBOLD_VBLUR_FUZZY)
Description: Horizontal Bold with vertical Fuzzy Blur
Number of Required EffectParameter Values (n): 2
1st EffectParameter: The amount of horizontal emboldening in pixels.
2nd EffectParameter: The amount of vertical blur in pixels.
EffectID: 38 (DV_EFFECT_VBOLD_HBLUR_FUZZY)
Description: Vertical Bold with horizontal Fuzzy Blur
Number of Required EffectParameter Values (n): 2
1st EffectParameter: The amount of horizontal blur in pixels.
2nd EffectParameter: The amount of vertical emboldening in pixels.
EffectID: 39 (DV_EFFECT_PATTERN_INVPHOTO)
Description: Inverted Pattern Group 1 - Photo Shades
Number of Required EffectParameter Values (n): 1
1st EffectParameter: Pattern fill index. Refer to Appendix - Pattern Fills for a list of available pattern fills.
EffectID: 40 (DV_EFFECT_PATTERN_INVSHADES)
Description: Inverted Pattern Group 2 - Fine Shades
Number of Required EffectParameter Values (n): 1
1st EffectParameter: Pattern fill index. Refer to Appendix - Pattern Fills for a list of available pattern fills.
EffectID: 41 (DV_EFFECT_PATTERN_INVSTRIPES)
Description: Inverted Pattern Group 3 - Stripes
Number of Required EffectParameter Values (n): 1
1st EffectParameter: Pattern fill index. Refer to Appendix - Pattern Fills for a list of available pattern fills.
EffectID: 42 (DV_EFFECT_PATTERN_INVORNAMENTAL)
Description: Inverted Pattern Group 4 - Ornamental
Number of Required EffectParameter Values (n): 1
1st EffectParameter: Pattern fill index. Refer to Appendix - Pattern Fills for a list of available pattern fills.
EffectID: 43 (DV_EFFECT_PATTERN_CUSTOM)
Description: Custom Pattern Fill
Number of Required EffectParameter Values (n): 1
1st EffectParameter: Custom pattern fill index.
EffectID: 44 (DV_EFFECT_RESERVED_A)
Description: Reserved for future use
Number of Required EffectParameter Values (n): 0
EffectID: 45 (DV_EFFECT_RESERVED_B)
Description: Reserved for future use
Number of Required EffectParameter Values (n): 0
EffectID: 46 (DV_EFFECT_HBLUR_STACK)
Description: Stack Blur - only horizontal
Number of Required EffectParameter Values (n): 1
1st EffectParameter: The amount of horizontal blur in pixels.
EffectID: 47 (DV_EFFECT_VBLUR_STACK)
Description: Stack Blur - only vertical
Number of Required EffectParameter Values (n): 1
1st EffectParameter: The amount of vertical blur in pixels.
EffectID: 48 (DV_EFFECT_HVBLUR_STACK)
Description: Stack Blur - horizontal and vertical
Number of Required EffectParameter Values (n): 2
1st EffectParameter: The amount of horizontal blur in pixels.
2nd EffectParameter: The amount of vertical blur in pixels.
EffectID: 49 (DV_EFFECT_HBOLD_VBLUR_GAUSS)
Description: Horizontal Bold with vertical Gaussian Blur
Number of Required EffectParameter Values (n): 2
1st EffectParameter: The amount of horizontal emboldening in pixels.
2nd EffectParameter: The amount of vertical blur in pixels.
EffectID: 50 (DV_EFFECT_VBOLD_HBLUR_GAUSS)
Description: Vertical Bold with horizontal Gaussian Blur
Number of Required EffectParameter Values (n): 2
1st EffectParameter: The amount of horizontal blur in pixels.
2nd EffectParameter: The amount of vertical emboldening in pixels.
EffectID: 51 (DV_EFFECT_HBOLD_VBLUR_STACK)
Description: Horizontal Bold with vertical Stack Blur
Number of Required EffectParameter Values (n): 2
1st EffectParameter: The amount of horizontal emboldening in pixels.
2nd EffectParameter: The amount of vertical blur in pixels.
EffectID: 52 (DV_EFFECT_VBOLD_HBLUR_STACK)
Description: Vertical Bold with horizontal Stack Blur
Number of Required EffectParameter Values (n): 2
1st EffectParameter: The amount of horizontal blur in pixels.
2nd EffectParameter: The amount of vertical emboldening in pixels.
EffectID: 53 (DV_EFFECT_RESERVED_B)
Description: Reserved for future use
Number of Required EffectParameter Values (n): 0
EffectID: 54 (DV_EFFECT_RESERVED_C)
Description: Reserved for future use
Number of Required EffectParameter Values (n): 0
EffectID: 55 (DV_EFFECT_HOUTLINE)
Description: Outline - only horizontal
Number of Required EffectParameter Values (n): 1
1st EffectParameter: Horizontal outline value in pixels.
EffectID: 56 (DV_EFFECT_VOUTLINE)
Description: Outline - only vertical
Number of Required EffectParameter Values (n): 1
1st EffectParameter: Vertical outline value in pixels.
EffectID: 57 (DV_EFFECT_HVOUTLINE)
Description: Outline - horizontal and vertical
Number of Required EffectParameter Values (n): 2
1st EffectParameter: Horizontal outline value in pixels.
2nd EffectParameter: Vertical outline value in pixels.
Notes:
Note 1: Effects 4, 5 and 6 (Gaussian Blur) are computationally intensive. The larger the amount of blur, the more time it takes to render the effect. Use Gaussian Blur with caution, especially on slower machines.
Note 2: Fuzzy Blur and Stack Blur are extremely fast and suitable for real-time blurring.
Note 3: Gaussian Blur and Stack Blur produce softer, more aesthetically pleasing look compared to Fuzzy Blur.
Note 4: In order to use effects 11, 12, 13, 14, 39, 40, 41 or 42, the engine must be initialized using the dtype.pat file. This file contains pattern fill definitions listed in Appendix - Pattern Fills.
Note 5: Effects 34, 35, 36 (Bold) can be used to simulate bold typefaces.
Sample values:
"24, 15, 1" = Single Style Effect: Opaque Shaded Edge - North-East (DV_EFFECT_EDGE_100_NE) with the horizontal shading factor of 15 pixels and vertical shading factor of 1 pixel
"24, 15, 1, 13, 6" = First Style Effect: Opaque Shaded Edge - North-East (DV_EFFECT_EDGE_100_NE) with the horizontal shading factor of 15 pixels and vertical shading factor of 1 pixel; Second Style Effect: Pattern Group 3 - Stripes (DV_EFFECT_PATTERN_STRIPES) with pattern fill #6
"3, 5, 10" = Single Style Effect: Fuzzy Blur - horizontal and vertical (DV_EFFECT_HVBLUR_FUZZY) with the horizontal blur amount of 5 pixels and vertical blur amount of 10 pixels
"11, 22" = Single Style Effect: Pattern Group 1 - Photo Shades (DV_EFFECT_PATTERN_PHOTO) with pattern fill #22
"3, 5, 10, 11, 22" = First Style Effect: Fuzzy Blur - horizontal and vertical (DV_EFFECT_HVBLUR_FUZZY) with the horizontal blur amount of 5 pixels and vertical blur amount of 10 pixels; Second Style Effect: Pattern Group 1 - Photo Shades (DV_EFFECT_PATTERN_PHOTO) with pattern fill #22
"11, 22, 3, 5, 10" = First Style Effect: Pattern Group 1 - Photo Shades (DV_EFFECT_PATTERN_PHOTO) with pattern fill #22; Second Style Effect: Fuzzy Blur - horizontal and vertical (DV_EFFECT_HVBLUR_FUZZY) with the horizontal blur amount of 5 pixels and vertical blur amount of 10 pixels
Appears in: Surface Definition
Style Effect
Style effect to apply to a surface. The first byte is EffectID, the second byte is EffectParameter. Thus, the length of this field, when converted to the binary format, is precisely 2 bytes.
EffectID identifies one of D-Type's special effects. EffectParameter is used in conjunction with EffectID and provides effect specific parameters. Typically this is the value/amount of the effect. The following chart lists all currently supported style effects and explains how to use their parameters:
EffectID: 0 (DV_EFFECT_NONE)
Description: No special effect
EffectParameter: Has no meaning and should be set to 0.
EffectID: 1 (DV_EFFECT_HBLUR_FUZZY)
Description: Fuzzy Blur - only horizontal
EffectParameter: The amount of blur in pixels.
EffectID: 2 (DV_EFFECT_VBLUR_FUZZY)
Description: Fuzzy Blur - only vertical
EffectParameter: The amount of blur in pixels.
EffectID: 3 (DV_EFFECT_HVBLUR_FUZZY)
Description: Fuzzy Blur - horizontal and vertical
EffectParameter: The amount of blur in pixels.
EffectID: 4 (DV_EFFECT_HBLUR_GAUSS)
Description: Gaussian Blur - only horizontal
EffectParameter: The amount of blur in pixels.
EffectID: 5 (DV_EFFECT_VBLUR_GAUSS)
Description: Gaussian Blur - only vertical
EffectParameter: The amount of blur in pixels.
EffectID: 6 (DV_EFFECT_HVBLUR_GAUSS)
Description: Gaussian Blur - horizontal and vertical
EffectParameter: The amount of blur in pixels.
EffectID: 7 (DV_EFFECT_EMBOSS_50_NW)
Description: 50% Transparent Emboss - North-West
EffectParameter: The amount of emboss in pixels.
EffectID: 8 (DV_EFFECT_EMBOSS_50_NE)
Description: 50% Transparent Emboss - North-East
EffectParameter: The amount of emboss in pixels.
EffectID: 9 (DV_EFFECT_EMBOSS_50_SW)
Description: 50% Transparent Emboss - South-West
EffectParameter: The amount of emboss in pixels.
EffectID: 10 (DV_EFFECT_EMBOSS_50_SE)
Description: 50% Transparent Emboss - South-East
EffectParameter: The amount of emboss in pixels.
EffectID: 11 (DV_EFFECT_PATTERN_PHOTO)
Description: Pattern Group 1 - Photo Shades
EffectParameter: Pattern fill index. Refer to Appendix - Pattern Fills for a list of available pattern fills.
EffectID: 12 (DV_EFFECT_PATTERN_SHADES)
Description: Pattern Group 2 - Fine Shades
EffectParameter: Pattern fill index. Refer to Appendix - Pattern Fills for a list of available pattern fills.
EffectID: 13 (DV_EFFECT_PATTERN_STRIPES)
Description: Pattern Group 3 - Stripes
EffectParameter: Pattern fill index. Refer to Appendix - Pattern Fills for a list of available pattern fills.
EffectID: 14 (DV_EFFECT_PATTERN_ORNAMENTAL)
Description: Pattern Group 4 - Ornamental
EffectParameter: Pattern fill index. Refer to Appendix - Pattern Fills for a list of available pattern fills.
EffectID: 15 (DV_EFFECT_EDGE_50_NW)
Description: 50% Transparent Shaded Edge - North-West
EffectParameter: The shading factor in pixels.
EffectID: 16 (DV_EFFECT_EDGE_50_NE)
Description: 50% Transparent Shaded Edge - North-East
EffectParameter: The shading factor in pixels.
EffectID: 17 (DV_EFFECT_EDGE_50_SW)
Description: 50% Transparent Shaded Edge - South-West
EffectParameter: The shading factor in pixels.
EffectID: 18 (DV_EFFECT_EDGE_50_SE)
Description: 50% Transparent Shaded Edge - South-East
EffectParameter: The shading factor in pixels.
EffectID: 19 (DV_EFFECT_BODY_50_NW)
Description: 50% Transparent Shaded Body - North-West
EffectParameter: The shading factor in pixels.
EffectID: 20 (DV_EFFECT_BODY_50_NE)
Description: 50% Transparent Shaded Body - North-East
EffectParameter: The shading factor in pixels.
EffectID: 21 (DV_EFFECT_BODY_50_SW)
Description: 50% Transparent Shaded Body - South-West
EffectParameter: The shading factor in pixels.
EffectID: 22 (DV_EFFECT_BODY_50_SE)
Description: 50% Transparent Shaded Body - South-East
EffectParameter: The shading factor in pixels.
EffectID: 23 (DV_EFFECT_EDGE_100_NW)
Description: Opaque Shaded Edge - North-West
EffectParameter: The shading factor in pixels.
EffectID: 24 (DV_EFFECT_EDGE_100_NE)
Description: Opaque Shaded Edge - North-East
EffectParameter: The shading factor in pixels.
EffectID: 25 (DV_EFFECT_EDGE_100_SW)
Description: Opaque Shaded Edge - South-West
EffectParameter: The shading factor in pixels.
EffectID: 26 (DV_EFFECT_EDGE_100_SE)
Description: Opaque Shaded Edge - South-East
EffectParameter: The shading factor in pixels.
EffectID: 27 (DV_EFFECT_BODY_100_NW)
Description: Opaque Shaded Body - North-West
EffectParameter: The shading factor in pixels.
EffectID: 28 (DV_EFFECT_BODY_100_NE)
Description: Opaque Shaded Body - North-East
EffectParameter: The shading factor in pixels.
EffectID: 29 (DV_EFFECT_BODY_100_SW)
Description: Opaque Shaded Body - South-West
EffectParameter: The shading factor in pixels.
EffectID: 30 (DV_EFFECT_BODY_100_SE)
Description: Opaque Shaded Body - South-East
EffectParameter: The shading factor in pixels.
EffectID: 31 (DV_EFFECT_SHADE_INNER_A)
Description: Inner Shade A
EffectParameter: The shading factor in pixels.
EffectID: 32 (DV_EFFECT_SHADE_INNER_B)
Description: Inner Shade B
EffectParameter: The shading factor in pixels.
EffectID: 33 (DV_EFFECT_SHADE_INNER_C)
Description: Inner Shade C
EffectParameter: The shading factor in pixels.
EffectID: 34 (DV_EFFECT_HBOLD)
Description: Bold - only horizontal
EffectParameter: The amount of emboldening in pixels.
EffectID: 35 (DV_EFFECT_VBOLD)
Description: Bold - only vertical
EffectParameter: The amount of emboldening in pixels.
EffectID: 36 (DV_EFFECT_HVBOLD)
Description: Bold - horizontal and vertical
EffectParameter: The amount of emboldening in pixels.
EffectID: 37 (DV_EFFECT_HBOLD_VBLUR_FUZZY)
Description: Horizontal Bold with vertical Fuzzy Blur
EffectParameter: The amount of emboldening and blur in pixels.
EffectID: 38 (DV_EFFECT_VBOLD_HBLUR_FUZZY)
Description: Vertical Bold with horizontal Fuzzy Blur
EffectParameter: The amount of emboldening and blur in pixels.
EffectID: 39 (DV_EFFECT_PATTERN_INVPHOTO)
Description: Inverted Pattern Group 1 - Photo Shades
EffectParameter: Pattern fill index. Refer to Appendix - Pattern Fills for a list of available pattern fills.
EffectID: 40 (DV_EFFECT_PATTERN_INVSHADES)
Description: Inverted Pattern Group 2 - Fine Shades
EffectParameter: Pattern fill index. Refer to Appendix - Pattern Fills for a list of available pattern fills.
EffectID: 41 (DV_EFFECT_PATTERN_INVSTRIPES)
Description: Inverted Pattern Group 3 - Stripes
EffectParameter: Pattern fill index. Refer to Appendix - Pattern Fills for a list of available pattern fills.
EffectID: 42 (DV_EFFECT_PATTERN_INVORNAMENTAL)
Description: Inverted Pattern Group 4 - Ornamental
EffectParameter: Pattern fill index. Refer to Appendix - Pattern Fills for a list of available pattern fills.
EffectID: 43 (DV_EFFECT_PATTERN_CUSTOM)
Description: Custom Pattern Fill
EffectParameter: Custom pattern fill index.
EffectID: 44 (DV_EFFECT_RESERVED_A)
Description: Reserved for future use
EffectParameter: Has no meaning and should be set to 0.
EffectID: 45 (DV_EFFECT_RESERVED_B)
Description: Reserved for future use
EffectParameter: Has no meaning and should be set to 0.
EffectID: 46 (DV_EFFECT_HBLUR_STACK)
Description: Stack Blur - only horizontal
EffectParameter: The amount of blur in pixels.
EffectID: 47 (DV_EFFECT_VBLUR_STACK)
Description: Stack Blur - only vertical
EffectParameter: The amount of blur in pixels.
EffectID: 48 (DV_EFFECT_HVBLUR_STACK)
Description: Stack Blur - horizontal and vertical
EffectParameter: The amount of blur in pixels.
EffectID: 49 (DV_EFFECT_HBOLD_VBLUR_GAUSS)
Description: Horizontal Bold with vertical Gaussian Blur
EffectParameter: The amount of emboldening and blur in pixels.
EffectID: 50 (DV_EFFECT_VBOLD_HBLUR_GAUSS)
Description: Vertical Bold with horizontal Gaussian Blur
EffectParameter: The amount of emboldening and blur in pixels.
EffectID: 51 (DV_EFFECT_HBOLD_VBLUR_STACK)
Description: Horizontal Bold with vertical Stack Blur
EffectParameter: The amount of emboldening and blur in pixels.
EffectID: 52 (DV_EFFECT_VBOLD_HBLUR_STACK)
Description: Vertical Bold with horizontal Stack Blur
EffectParameter: The amount of emboldening and blur in pixels.
EffectID: 53 (DV_EFFECT_RESERVED_B)
Description: Reserved for future use
EffectParameter: Has no meaning and should be set to 0.
EffectID: 54 (DV_EFFECT_RESERVED_C)
Description: Reserved for future use
EffectParameter: Has no meaning and should be set to 0.
EffectID: 55 (DV_EFFECT_HOUTLINE)
Description: Outline - only horizontal
EffectParameter: Outline value in pixels.
EffectID: 56 (DV_EFFECT_VOUTLINE)
Description: Outline - only vertical
EffectParameter: Outline value in pixels.
EffectID: 57 (DV_EFFECT_HVOUTLINE)
Description: Outline - horizontal and vertical
EffectParameter: Outline value in pixels.
Notes:
Note 1: Effects 4, 5 and 6 (Gaussian Blur) are computationally intensive. The larger the amount of blur, the more time it takes to render the effect. Use Gaussian Blur with caution, especially on slower machines.
Note 2: Fuzzy Blur and Stack Blur are extremely fast and suitable for real-time blurring.
Note 3: Gaussian Blur and Stack Blur produce softer, more aesthetically pleasing look compared to Fuzzy Blur.
Note 4: In order to use effects 11, 12, 13, 14, 39, 40, 41 or 42, the engine must be initialized using the dtype.pat file. This file contains pattern fill definitions listed in Appendix - Pattern Fills.
Note 5: Effects 34, 35, 36 (Bold) can be used to simulate bold typefaces.
Sample values:
"18 0F" (24, 15) = Opaque Shaded Edge - North-East (DV_EFFECT_EDGE_100_NE) with the shading factor of 15 pixels
"03 0F" (3, 15) = Fuzzy Blur - horizontal and vertical (DV_EFFECT_HVBLUR_FUZZY) with the blur amount of 15 pixels
"0D 04" (13, 4) = Pattern Group 3 - Stripes (DV_EFFECT_PATTERN_STRIPES) with pattern fill #4
Appears in: PowerFont Record, Group Member, Generic Object
Rendering function that describes the visual object pointed to by the pdFnDrawObjectPtr link.
Supported values:
0 = Nothing
1 = Text Line
2 = Text Arc
3 = Text Area
4 = Line
5 = Circle/Ellipse
6 = Rectangle
7 = True Circle/Ellipse
8 = Slice
9 = Arc
10 = Rich Text Area
11 = Pattern
12 = Grid
13 = Custom Shape or Polygon
14 = Gradient, Gradient (As Fast Rectangle), Gradient (As Inverter)
15 = Bitmap Image
16 = Char
17 = Rich Text Line
18 = Library Shape
19 = Rich Text Arc
20 = Glyph
21 = Generic Object
22 = Group
23 = PowerGlyph
24 = Polyline (also Bezier and B-Spline curves)
25 = Library Polyline
26 = Text Design
27 = Rich Text Design
28 = Text Path
29 = Rich Text Path
30 = Library Bitmap Image
31 = Background Surface
10000 = Button
10001 = Radio Button
10002 = Check Box
10003 = Text Box
10004 = List Box
10005 = Horizontal Slider
10006 = Vertical Slider
10007 = Rich Text Box
10008 = Rich Button
Appears in: Font Data
Font Caching.
Tells the engine how to cache the font. This parameter will be described more thoroughly in the future. For now, set this parameter to 0 which identifies a standard caching scheme. This caching scheme ensures a good performance with all supported font formats.
Appears in: Font Data
Font format.
Supported values:
0 = D-Type Font Format (.dtf)
1 = TrueType or OpenType with TrueType outlines (.ttf) or TrueType Collection (.ttc) [Apple Mac ASCII Encoding]
3 = TrueType or OpenType with TrueType outlines (.ttf) or TrueType Collection (.ttc) [Windows Unicode Encoding]
6 = OpenType (.otf) containing Type 2/CFF outlines [Apple Mac ASCII Encoding]
5 = OpenType (.otf) containing Type 2/CFF outlines [Windows Unicode Encoding]
2 = Adobe Type 1 (.pfb or .pfa) [Adobe Standard Encoding]
7 = Adobe Type 1 (.pfb or .pfa) [ISO Latin Encoding]
8 = Adobe Type 1 (.pfb or .pfa) [Synthesized Windows Unicode Encoding]
11 = Adobe Type 3 PostScript (.ps) [ISO Latin Encoding] - must obey D-Type's strict parsing rules
12 = Adobe Type 3 PostScript (.ps) [Synthesized Windows Unicode Encoding] - must obey D-Type's strict parsing rules
14 = Bare CFF (.cff) [Adobe Standard Encoding]
15 = Bare CFF (.cff) [ISO Latin Encoding]
16 = Bare CFF (.cff) [Synthesized Windows Unicode Encoding]
All the above values are inherited from D-Type Standard Engine. See D-Type Standard Engine Manual for more details.
Appears in: Font Data
Font Hinting.
Tells the engine whether to apply hinting to the font. Hinted fonts typically produce better looking and sharper output, however they are somewhat slower to process than non-hinted fonts (especially if they contain many complex glyphs such as in Chinese/Japanese/Korean fonts).
Supported values:
0 = don't apply hinting to the font
1 = apply native hinting when available, otherwise apply auto-hinting to the font
2 = apply auto-hinting to the font
3 = apply native hinting when available, otherwise apply compact auto-hinting
4 = apply compact auto-hinting exclusively
All the above values are inherited from D-Type Standard Engine. See D-Type Standard Engine Manual for more details.
Appears in: Font Data
Font collection number.
Some font files are actually font collections (e.g. D-Type or TrueType Collections) which contain multiple fonts in the same file. Font collection number identifies a font in the font collection. Set the font collection number to 0 to open the first font in the collection. If this value is too large, the font will not open.
Appears in: Typography (For Outline Fonts), Typography (For PowerFonts)
Height of a font or PowerFont in document units. If negative, font glyphs will be mirrored horizontally.
Sample values:
12 = Font height of 12 document units
48 = Font height of 48 document units
-48 = Font height of 48 document units, mirrored horizontally
Appears in: Typography (For Outline Fonts), Typography (For PowerFonts)
Width of a font or PowerFont in document units. If negative, font glyphs will be mirrored vertically.
Sample values:
12 = Font width of 12 document units
48 = Font width of 48 document units
-48 = Font width of 48 document units, mirrored vertically
Appears in: Typography (For Outline Fonts)
A system dependent font index used to reference a font.
Sample values:
0 = CMU Sans Serif, Medium
1 = CMU Concrete Roman, Roman
2 = CMU Bright Roman, Roman
3 = CMU Bright SemiBold, SemiBold
Appears in: Typography (For Outline Fonts)
Unique Font Identifier. This is a 16-byte string that uniquely identifies the font. Contact D-Type for naming conventions.
Sample values:
'F0010_ARIAL__NS0' = Arial, Regular
'F0011_TIMES__NS0' = Times New Roman, Regular
'F0013_COUR___NS0' = Courier New, Medium
'F0010_DENMRK_SS0' = Denmark Regular, Regular
'F0010_GENTI__NS0' = Gentium, Regular
Appears in: Text Line, Text Arc, Text Area, Rich Text Line, Rich Text Arc, Rich Text Area, Text Path, Rich Text Path
Global text direction and bidirectional text display method.
Supported values:
A) Horizontal Layout (Text in Rows) and Bidirectional Reordering:
0 = Left-to-Right, Top-to-Bottom (e.g. Latin, Cyrillic, Greek)
1 = Right-to-Left, Top-to-Bottom (e.g. Arabic, Hebrew)
2 = Left-to-Right, Bottom-to-Top
3 = Right-to-Left, Bottom-to-Top
4 = Same as 0 but swap Portrait & Landscape
5 = Same as 1 but swap Portrait & Landscape
6 = Same as 2 but swap Portrait & Landscape
7 = Same as 3 but swap Portrait & Landscape
B) Vertical Layout (Text in Columns) and Bidirectional Reordering:
8 = Top-to-Bottom, Right-to-Left (e.g. Vertical Chinese)
9 = Bottom-to-Top, Right-to-Left
10 = Top-to-Bottom, Left-to-Right
11 = Bottom-to-Top, Left-to-Right
12 = Same as 8 but swap Portrait & Landscape
13 = Same as 9 but swap Portrait & Landscape
14 = Same as 10 but swap Portrait & Landscape
15 = Same as 11 but swap Portrait & Landscape
C) Horizontal Layout (Text in Rows) and Bidirectional Rotation:
16 = Left-to-Right, Top-to-Bottom (e.g. Latin, Cyrillic, Greek)
17 = Right-to-Left, Top-to-Bottom (e.g. Arabic, Hebrew)
18 = Left-to-Right, Bottom-to-Top
19 = Right-to-Left, Bottom-to-Top
20 = Same as 16 but swap Portrait & Landscape
21 = Same as 17 but swap Portrait & Landscape
22 = Same as 18 but swap Portrait & Landscape
23 = Same as 19 but swap Portrait & Landscape
D) Vertical Layout (Text in Columns) and Bidirectional Rotation:
24 = Top-to-Bottom, Right-to-Left (e.g. Vertical Chinese)
25 = Bottom-to-Top, Right-to-Left
26 = Top-to-Bottom, Left-to-Right
27 = Bottom-to-Top, Left-to-Right
28 = Same as 24 but swap Portrait & Landscape
29 = Same as 25 but swap Portrait & Landscape
30 = Same as 26 but swap Portrait & Landscape
31 = Same as 27 but swap Portrait & Landscape
Notes:
D-Type Engine can display text in horizontal writing mode (text in rows) and vertical writing mode (text in columns). In horizontal writing mode, the global text progression can be Letf-to-Right/Top-to-Bottom, Right-to-Left/Top-to-Bottom, Letf-to-Right/Bottom-to-Top or Right-to-Left/Bottom-to-Top. In vertical writing mode, the global text progression can be Top-to-Bottom/Right-to-Left, Bottom-to-Top/Right-to-Left, Top-to-Bottom/Left-to-Right or Bottom-to-Top/Left-to-Right.
Additionally, D-Type Engine can display bidirectional text (e.g. a mixture of left-to-right text such as English or Chinese and right-to-left text such as Arabic or Hebrew) using two different methods: the first method is Bidirectional Reordering, the second method is Bidirectional Rotation. Visually, these two methods produce quite different output. However, both are suitable for displaying text that was processed by the Unicode Bidirectional Algorithm (BiDi).
With Bidirectional Reordering the characters are reordered for display depending on the relative direction of the containing text fragment. Thus, a left-to-right text fragment has its characters ordered (visually) in the opposite order from a right-to-left text fragment. While reading bidirectional text, from start to end, the reader must alternate the reading direction (left-to-right/right-to-left in horizontal writing mode or top-to-bottom/bottom-to-top in vertical writing mode) each time a change of direction occurs. This is also the progression of the cursor as it advances from one character to another. This means that with Bidirectional Reordering, the order in which the characters are displayed is not the same as the order in which they are stored in memory (logical or storage order).
With Bidirectional Rotation all characters are ordered uniformly (e.g. from left-to-right in horizontal writing mode or top-to-bottom in vertical writing mode) regardless of whether the containing text fragment has a left-to-right or right-to-left direction. However, their rotation depends on the relative direction of the containing text fragment. More specifically, characters that are part of a left-to-right text fragment are rotated 180 degrees relative to the characters that are part of a right-to-left text fragment. Thus, while reading bidirectional text, from start to end, the reader must rotate the display surface or tilt his/her head (clockwise or counterclockwise) each time a change of direction occurs. However, the reading direction and the progression of the cursor remain uniform. This also means that with Bidirectional Rotation, the order in which the characters are displayed is the same as the order in which they are stored in memory.
Bidirectional Reordering is frequently used in horizontal writing mode and also works well in vertical writing mode. Bidirectional Rotation is typically not used in horizontal writing mode due to the fact that almost all Unicode scripts, when displayed in horizontal writing mode, have their orientation set to portrait (meaning that the glyph's x-axis in font design space is parallel with the baseline). Using Bidirectional Rotation in this case would require the user to rotate the display surface by 180 degrees (clockwise or counterclockwise) each time a change of direction is encountered -- which is, needles to say, far from practical. However, Bidirectional Rotation works well in vertical writing mode. This is due to the fact that vertical writing is used mostly with CJK scripts (Chinese/Japanese/Korean) which typically have their orientation set to landscape (meaning that the glyph's x-axis in font design space is perpendicular to the baseline). Non-CJK scripts, such as Latin or Arabic then have their orientation set to portrait. Under this scheme, the reading direction and the progression of the cursor is always top-to-bottom. When reading the majority of content (i.e. CJK text), there is no need to rotate the display surface. However, when a left-to-right text fragment (e.g. English) is encountered, the reader rotates the display surface by 90 degrees clockwise. Similarly, when a right-to-left text fragment (e.g. Arabic) is encountered, the reader rotates the display surface by 90 degrees counterclockwise. In all three cases (Chinese, English and Arabic) the characters are ordered from top to bottom and the reader is never expected to alter the reading direction (which would otherwise be required if Bidirectional Reordering was used). This is not to say that Bidirectional Reordering cannot be used in vertical writing mode. However, Bidirectional Rotation might work better in certain applications as rotating the display surface by 90 degrees clockwise or counterclockwise relative to the vertical baseline is sometimes considered a more practical way of reading vertical bidirectional text.
Appears in: Text Line, Text Arc, Text Area, Rich Text Line, Rich Text Arc, Rich Text Area, Text Path, Rich Text Path
Start glyph position within the first text fragment, i.e. the index of the glyph in the first text fragment from which the text layout and display starts. This value cannot be negative and must be less than the length of the first text fragment.
This property is useful when building text flows (i.e. when text fragments span more than one text area). In most other cases, this property should be omitted or its value should be set to 0.
Appears in: Gradient, Gradient (As Fast Rectangle)
Gradient type.
Supported values:
0 = None (Fast Rectangle)
1 = Horizontal
2 = Vertical
3 = Bi-Horizontal
4 = Bi-Vertical
10 = Quarter-Circular A
11 = Quarter-Circular B
12 = Quarter-Circular C
13 = Quarter-Circular D
14 = Half-Circular A
15 = Half-Circular B
16 = Half-Circular C
17 = Half-Circular D
18 = Circular
20 = Quarter-Diamond A
21 = Quarter-Diamond B
22 = Quarter-Diamond C
23 = Quarter-Diamond D
24 = Half-Diamond A
25 = Half-Diamond B
26 = Half-Diamond C
27 = Half-Diamond D
28 = Diamond
255 = None (Inverter)
Appears in: Text Layout (Automatic), Text Layout (Manual)
Sets one of the hinting modes. The hinting mode tells the Typesetter how to interact with the pixel grid when rendering glyphs. See D-Type Standard Engine Manual for details.
Supported values:
0 = Engine Default A (same as 8)
1 = Engine Default B (same as 9)
2 = User Default A (same as 4)
3 = User Default B (same as 6)
4 = X On, Y On
Both X and Y edges are snapped to the pixel grid. As a result, both X and Y edges look reasonably sharp.
5 = X On, Y Off
Only X edges are snapped to the pixel grid. As a result, X edges look reasonably sharp, while Y edges look somewhat blurry.
6 = X Off, Y On
Only Y edges are snapped to the pixel grid. As a result, X edges look somewhat blurry, while Y edges look reasonably sharp.
7 = X Off, Y Off
Neither X nor Y edges are snapped to the pixel grid. As a result, both X and Y edges look somewhat blurry.
8 = Auto A
Same as 4 for standard font sizes, but disables hinting in the X and/or Y direction for very small and very big font sizes. This is done in order to improve speed when rendering using very small and very big font sizes. This is a useful and recommended mode since hinting is not really necessary at those sizes.
9 = Auto B
Same as 6 for standard font sizes, but disables hinting in the Y direction for very small and very big font sizes. This is done in order to improve speed when rendering using very small and very big font sizes. This is a useful and recommended mode since hinting is not really necessary at those sizes.
All the above values are inherited from D-Type Standard Engine. See D-Type Standard Engine Manual for more details.
Appears in: Glyph, Char, PowerGlyph, Library Polyline, Library Shape, Library Bitmap Image
A unique identifier that, depending on the context, represent one of the following:
a) code of a character (or PowerChar);
b) index of a glyph (or PowerGlyph);
c) index of a library shape or library polyline (see the Library of Shapes and Polylines section in the manual for details)
d) index of a library bitmap image
Supported Compression Methods: 011, 006
Appears in: Bitmap Image Data, Pattern Fill Definition
Image data in grayscale format (variable length, 1 byte per pixel).
Supported Compression Methods: 010, 004
Appears in: Bitmap Image Data
Image data in the GA (grayscale with Alpha) format (variable length, 2 bytes per pixel).
Appears in: Bitmap Image Data, Pattern Fill Definition
Monochrome image data (variable length, 1 byte stores 8 pixels).
Supported Compression Methods: 009, 002
Appears in: Bitmap Image Data
Image data in RGB format (variable length, 3 bytes per pixel).
Supported Compression Methods: 008, 000
Appears in: Bitmap Image Data
Image data in RGBA (RGB with Alpha) format (variable length, 4 bytes per pixel).
Appears in: Text Ruler (Horizontal)
The amount of left indent, in the 0 - 65,535 range. This amount should be understood as a percentage of the width of the current text area (or the length of the current text path); therefore 0 means 0% of the text area width (or text path length) while 65,535 means 100% of the text area width (or text path length).
Sample values:
"13107" = 20% of the width of the current text area (or the length of the current text path)
Appears in: Text Ruler (Horizontal)
The amount of right indent, in the 0 - 65,535 range. This amount should be understood as a percentage of the width of the current text area (or the length of the current text path); therefore 0 means 0% of the text area width (or text path length) while 65,535 means 100% of the text area width (or text path length).
Sample values:
"52428" = 80% of the width of the current text area (or the length of the current text path)
Appears in: Text Layout (Automatic)
Text kerning.
Supported values:
0 = Disable Kerning
1 = Enable Standard Kerning
Appears in: Line Definition (Full), Outline Definition, Line Definition (Standard), Line Definition (Minimal)
The size of the dash, a quantity in the 0 - 65,535 range. This quantity should be understood as a percentage of the line segment length; therefore 0 means 0% of the line segment length while 65,535 means 100% of the line segment length.
The value 0 is special and means "default dash size". In this case the dash uses approximately two thirds of the segment's length, while the gap uses the remaining one third. Therefore, if the segment is 30 document units long, then each dash will be approximately 20 document units long while each gap will be approximately 10 units long.
Sample values:
0 = default dash size
9830 = dash size is 15% of the line segment length
13107 = dash size is 20% of the line segment length
32768 = dash size is 50% of the line segment length
52428 = dash size is 80% of the line segment length
Appears in: Line Definition (Full), Line Definition (Standard)
When applicable, line's end style.
Supported values:
Standard Styles:
0 = Flat
1 = Round outside
2 = Round inside
3 = Peak outside
4 = Peak inside
5 = Square outside
6 = Square inside
Extended styles that apply to straight lines only:
100 = Arrowhead whose size is relative to the line's length
101 = Arrowhead whose size is relative to the line's thickness
110 = Dot whose size is relative to the line's thickness
Appears in: Line Definition (Full)
When applicable, size of line's end arrowhead or dot, in percentages. Must be between 0 and 100.
Sample values:
10 = The relative size of the line's arrowhead or dot is 10%
20 = The relative size of the line's arrowhead or dot is 20%
Appears in: Line Definition (Full)
When applicable, line's end arrowhead angle in degrees. Must be between 0 and 180.
Sample values:
10 = angle of 10 degrees
30 = angle of 30 degrees
Appears in: Line Definition (Full), Outline Definition, Line Definition (Standard)
Miscellaneous line flags.
Bit 0 unset = indicates that separate line segments in Polylines, Custom Shapes and Polygons are rasterized as separate paths (in multiple rasterization passes).
Bit 0 set = indicates that separate line segments in Polylines, Custom Shapes and Polygons are rasterized as a single path (in a single rasterization pass).
In most cases there is no visual difference between these two rasterization methods. A noticeable visual difference appears only when the individual line segments are semi-transparent and they partially or fully overlap.
All other bits are reserved for future use and must be set to 0.
Appears in: Line Definition (Full), Outline Definition, Line Definition (Standard)
Perimeter line grow in document units, multiplied by 100.
Applies ony to the Rectangle, Circle/Ellipse, True Circle/Ellipse, Slice, Arc and Grid object.
Appears in: Line Definition (Full), Outline Definition, Line Definition (Standard), Line Definition (Minimal)
This property is used to subdivide lines and outlines into a number of smaller segments so that the line (or outline) appears dashed. The value of this property indicates the desired length of a single segment, in document units. Each segment then consists of a dash and a gap. The dash size can be specified via the pdLineDashSize property. If the dash size is not specified, then the default dash size will be used, which is approximately two thirds of the segment's length.
This property should be set to zero if segments are not desired. In this case the line (or outline) will appear solid and continuous.
Sample values:
30 = a segment that is 30 document units long
0 = no segments (line/outline is solid and continuous)
Appears in: Line Definition (Full), Line Definition (Standard)
When applicable, line's start style.
Supported values:
Standard Styles:
0 = Flat
1 = Round outside
2 = Round inside
3 = Peak outside
4 = Peak inside
5 = Square outside
6 = Square inside
Extended styles using special symbols (apply to straight lines only):
100 = Arrowhead whose size is relative to the line's length
101 = Arrowhead whose size is relative to the line's thickness
110 = Dot whose size is relative to the line's thickness
Appears in: Line Definition (Full)
When applicable, size of line's start arrowhead or dot, in percentages. Must be between 0 and 100.
Sample values:
10 = The relative size of the line's arrowhead or dot is 10%
20 = The relative size of the line's arrowhead or dot is 20%
Appears in: Line Definition (Full)
When applicable, line's start arrowhead angle in degrees. Must be between 0 and 180.
Sample values:
10 = angle of 10 degrees
30 = angle of 30 degrees
Appears in: Line Definition (Full), Outline Definition, Line Definition (Standard), Line Definition (Minimal)
Line, outline or underline thickness in document units, multiplied by 100. Must be positive, except when used for glyph or character outlines. In this case, a negative value indicates that the glyph/character outline should be expanded rather than thickened.
Sample values:
350 = Line (or outline) thickness of 3.5 document units
80 = Line (or outline) thickness of 0.8 document units
-275 = Outline expansion of 2.75 document units
Appears in: Outline Definition
0 (000) = Outline is over text body and does not cast shadow
1 (001) = Outline is under text body and does not cast shadow
2 (010) = Outline is over text body and casts filled shadow
3 (011) = Outline is under text body and casts filled shadow
4 (100) = Outline is over text body and casts outlined shadow
5 (101) = Outline is under text body and casts outlined shadow
6 (110) = Outline is over text body and casts shadow
7 (111) = Outline is under text body and casts shadow
Appears in: Row Boundary
Bottom margin, in document units. Positive values mean "inside", negative values mean "outside".
Sample values:
"100" = Bottom margin of 100 document units
Appears in: Text Ruler (Horizontal), Baseline, Row Boundary
Left margin, in document units. Positive values mean "inside", negative values mean "outside".
Sample values:
"100" = Left margin of 100 document units
Appears in: Text Ruler (Horizontal), Baseline, Row Boundary
Right margin, in document units. Positive values mean "inside", negative values mean "outside".
Sample values:
"100" = Right margin of 100 document units
Appears in: Row Boundary
Top margin, in document units. Positive values mean "inside", negative values mean "outside".
Sample values:
"100" = Top margin of 100 document units
Appears in: Group Member
Mask page.
The number of the masking page, i.e. a page whose alpha-channel will be used to mask the group member. If masking is not required, this value should be set to 0 or omitted.
Appears in: Row Boundary
A flag that specifies whether consecutive text row boundaries should merge.
Supported values:
0 = Don't merge
1 = Merge
Appears in: Typography (For Outline Fonts)
An array of Multiple-Master font contributions. The value of each element must be in the 0 - 1024 range, where zero means "no contribution" (or 0% contribution) and 1024 means "full contribution" (or 100% contribution). The number of elements in this array must correspond to the number of base designs in the font. Additionally, the sum of all the elements must equal 1024.
This field is useful only when it refers to a Multiple-Master font. With regular (single-master) fonts, this field has no meaning and is ignored. See D-Type Standard Engine Manual for more information on Multiple-Master fonts.
Sample values:
'205, 307, 307, 205' = Contributions of 20%, 30%, 30%, 20% for a multiple-master font with 4 base designs
Appears in: Bitmap Image Data, Pattern Fill Definition, Grid
Number of items in vertical direction. Depending on the context, the items can be pixels, rows, grid lines etc.
Number of header rows
Number of footer rows
PowerGlyphs Status
0 = Not explicitly set
1 = Fully visible
2 = Not fully visible
Appears in: Bitmap Image Data, Pattern Fill Definition, Grid
Number of items in horizontal direction. Depending on the context, the items can be pixels, rows, grid lines etc.
Appears in: Bitmap Image
An array that specifies the order of the bytes (color channels) in each pixel in a bitmap image. This property works with all supported bitmap image formats that have at least 2 bytes (color channels) per pixel: pdImageDataGrayAlpha, pdImageDataRGB and pdImageDataRGBAlpha. It makes it possible to pass to D-Type Power Engine bitmap images in which individual pixels are stored using a pattern of GA, RGB or RGBA bytes in any order.
The number of elements in the array must equal bytes_per_pixel, where bytes_per_pixel is 2 for pdImageDataGrayAlpha, 3 for pdImageDataRGB and 4 for pdImageDataRGBAlpha. The value of each element is the index of the corresponding color channel in each pixel and must not be smaller than 0 or greater than bytes_per_pixel - 1.
If the size of the pdOrderingArr is not properly defined, D-Type Power Engine will not be able to display the bitmap image. It the value of some of the elements is out of range, D-Type Power Engine will display the image but will use the modulo bytes_per_pixel arithmetic to index the channels.
Sample values for pdImageDataGrayAlpha bitmap images:
0, 1 = G channel's index is 0, A channel's index is 1
1, 0 = G channel's index is 1, A channel's index is 0
Sample values for pdImageDataRGB bitmap images:
0, 1, 2 = R channel's index is 0, G channel's index is 1, B channel's index is 2
2, 1, 0 = R channel's index is 2, G channel's index is 1, B channel's index is 0
1, 2, 0 = R channel's index is 1, G channel's index is 2, B channel's index is 0
0, 2, 2 = R channel's index is 0, G channel's index is 2, B channel's index is 2 (in other words G and B color channels map to the same value)
1, 1, 1 = R channel's index is 1, G channel's index is 1, B channel's index is 1 (in other words all color channels map to the same value, resulting in grayscale output)
Sample values for pdImageDataRGBA bitmap images:
0, 1, 2, 3 = R channel's index is 0, G channel's index is 1, B channel's index is 2, A channel's index is 3
2, 1, 0, 3 = R channel's index is 2, G channel's index is 1, B channel's index is 0, A channel's index is 3
1, 2, 3, 0 = R channel's index is 1, G channel's index is 2, B channel's index is 3, A channel's index is 0
3, 2, 1, 0 = R channel's index is 3, G channel's index is 2, B channel's index is 1, A channel's index is 0
Appears in: Pattern
Pattern Group.
Supported values:
1 = Photo Shades
2 = Fine Shades
3 = Stripes
4 = Ornamental
Appears in: Pattern
Pattern ID.
See the Pattern Fills section in the manual for a list of available patterns.
Appears in: Pattern Fill Definition, Pattern
Pattern Raster Operation.
Supported values:
0 = None
1 = Invert
2 = X-Mirror
3 = Invert and X-Mirror
Appears in: Bitmap Image Data
The distance, in bytes, between the beginning of two neighbouring pixel rows. This property makes it possible to pass to D-Type Power Engine bitmap images that have some padding (extra bytes) at the end of each bitmap row.
This property works with all supported Bitmap Image Data formats (pdImageDataGray, pdImageDataGrayAlpha, pdImageDataRGB, pdImageDataRGBAlpha) except pdImageDataMono.
A valid pitch value must not be less than pdNw * bytes_per_pixel, where bytes_per_pixel is 1 for pdImageDataGray, 2 for pdImageDataGrayAlpha, 3 for pdImageDataRGB and 4 for pdImageDataRGBAlpha. A pitch value that is exactly pdNw * bytes_per_pixel bytes indicates that the pixel rows are contiguous; in other words there are no extra bytes between the neighbouring pixel rows. A pitch value that is larger than pdNw * bytes_per_pixel bytes indicates that the pixel rows are non contiguous; in other words at the end of each row there are some extra bytes (the number of extra bytes is pdPitch - pdNw * bytes_per_pixel). Note that D-Type Power Engine does not read or use these extra bytes.
If pdPitch is not specified, D-Type Power Engine will use the value pdNw * bytes_per_pixel, i.e. assume that pixel rows are contiguous. If pdPitch is not properly defined, D-Type Power Engine will not be able to display the bitmap image.
Appears in: Custom Shape or Polygon
An array containing RGBT values of each contour (variable length, 4 bytes per contour). This property should be used when each contour in the polygon has a different RGBA value (color and/or transparency). Additionally, the presence of this array is a signal to D-Type Power Engine to render the body of the polygon using D-Type Direct Color RGBA Rasterizer. This ensures the best possible output quality.
Sample values:
"255, 128, 140, 0"
"255, 128, 140, 0, 145, 185, 64, 128"
Supported Compression Methods: 012, 015
Appears in: Custom Shape or Polygon, Polyline (also Bezier and B-Spline curve), Text Path, Rich Text Path
Instructions for PolyArrX and PolyArrY (variable length, 1 byte per instruction).
pdPolyArrI is an array containing instructions that describe the corresponding pair of coordinates in the pdPolyArrX_... and pdPolyArrY_... arrays. Possible values for pdPolyArrI are:
A. Standard segment construction instructions:
D-Type Grayscale Rasterizers:
16 = New closed contour
17 = New open contour
20 = Line
24 = Bezier curve. Must be followed by n and 0 (see below).
25 = Quadratic B-Spline curve. Must be followed by n (see below).
D-Type Direct Color RGBA Rasterizers and D-Type Shading Rasterizers extend these instructions:
16 = New closed RGBT contour (the next 4-byte RGBT color value is read from pdPolyArrC)
17 = New open RGBT contour (the next 4-byte RGBT color value is read from pdPolyArrC)
20 = Line (the next 4-byte RGBT color value is unchanged).
24 = Bezier curve (the next 4-byte RGBT color value is unchanged). Must be followed by n and 0 (see below).
25 = Quadratic B-Spline curve (the next 4-byte RGBT color value is unchanged). Must be followed by n (see below).
40 = RGBT Line (the next 4-byte RGBT color value is read from pdPolyArrC)
44 = RGBT Bezier curve (the next 4-byte RGBT color value is read from pdPolyArrC). Must be followed by n and 0 (see below).
45 = RGBT Quadratic B-Spline curve (the next 4-byte RGBT color value is read from pdPolyArrC). Must be followed by n (see below).
B. Instructions that can only follow 24 or 25:
n = A positive number or zero. Used only when the preceding instruction is 24 (Bezier curve) or 25 (Quadratic B-Spline curve). A positive number represents the suggested number of line segments that the curve will be approximated with. Zero means that the rendering engine should automatically calculate the optimum number of line segments when rendering the curve.
0 = Reserved. Used only when the first instruction in a segment is 24.
C. Special "one byte does it all" instructions:
254 = Open Polyline/Polygon - All coordinates in the corresponding pdPolyArrX_... and pdPolyArrY_... arrays are interpreted as Polyline/Polygon vertices connected using straight line segments. There can be no curved segments in this case. As such, no other instructions in pdPolyArrI are needed. Polylines constructed using this method are not automatically closed.
255 = Closed Polyline/Polygon - All coordinates in the corresponding pdPolyArrX_... and pdPolyArrY_... arrays are interpreted as Polyline/Polygon vertices connected using straight line segments. There can be no curved segments in this case. As such, no other instructions in pdPolyArrI are needed. Polylines constructed using this method are automatically closed.
The instruction 254 and 255 are special. Only one of them can be used per single Polyline/Polygon. When specified, this instruction must be the only instruction in the pdPolyArrI array. In other words, pdPolyArrI must be a single element array, containing only the instruction 254 or 255.
Sample values:
"16, 20, 20, 20"
"16, 20, 25, 0, 20"
"16, 20, 20, 24, 0, 0, 20, 25, 10, 20, 20"
"254"
"255"
Supported Compression Methods: 006
Appears in: Custom Shape or Polygon, Polyline (also Bezier and B-Spline curve), Text Path, Rich Text Path
An array containing X coordinates of segment's control points (variable length, 1 byte per coordinate).
Sample values:
"0, 40, 30, 20"
"10, 20, -10, -20, -25"
"5, 10, 12, 8, 12, 9, 13, 4, 8, 10, 19"
Supported Compression Methods: 004
Appears in: Custom Shape or Polygon, Polyline (also Bezier and B-Spline curve), Text Path, Rich Text Path
An array containing X coordinates of segment's control points (variable length, 2 bytes per coordinate).
Sample values:
"0, 400, 300, 200"
"100, 200, -100, -200, -250"
"50, 100, 120, 80, 120, 95, 130, 40, 80, 100, 190"
Supported Compression Methods: 002
Appears in: Custom Shape or Polygon, Polyline (also Bezier and B-Spline curve), Text Path, Rich Text Path
An array containing X coordinates of segment's control points (variable length, 3 bytes per coordinate).
Sample values:
"0, 400, 300, 200"
"100, 200, -100, -200, -250"
"50, 100, 120, 80, 120, 95, 130, 40, 80, 100, 190"
Supported Compression Methods: 000
Appears in: Custom Shape or Polygon, Polyline (also Bezier and B-Spline curve), Text Path, Rich Text Path
An array containing X coordinates of segment's control points (variable length, 4 bytes per coordinate).
Sample values:
"0, 400, 300, 200"
"100, 200, -100, -200, -250"
"50, 100, 120, 80, 120, 95, 130, 40, 80, 100, 190"
Supported Compression Methods: 006
Appears in: Custom Shape or Polygon, Polyline (also Bezier and B-Spline curve), Text Path, Rich Text Path
An array containing Y coordinates of segment's control points (variable length, 1 byte per coordinate).
Sample values:
"0, 10, 35, 20"
"20, 20, -20, -20, 10"
"-5, -9, -2, -8, -12, 1, 3, 2, -2, 1, 5"
Supported Compression Methods: 004
Appears in: Custom Shape or Polygon, Polyline (also Bezier and B-Spline curve), Text Path, Rich Text Path
An array containing Y coordinates of segment's control points (variable length, 2 bytes per coordinate).
Sample values:
"0, 100, 350, 200"
"200, 200, -200, -200, 100"
"-50, -90, -20, -80, -120, 10, 30, 20, -20, 10, 50"
Supported Compression Methods: 002
Appears in: Custom Shape or Polygon, Polyline (also Bezier and B-Spline curve), Text Path, Rich Text Path
An array containing Y coordinates of segment's control points (variable length, 3 bytes per coordinate).
Sample values:
"0, 100, 350, 200"
"200, 200, -200, -200, 100"
"-50, -90, -20, -80, -120, 10, 30, 20, -20, 10, 50"
Supported Compression Methods: 000
Appears in: Custom Shape or Polygon, Polyline (also Bezier and B-Spline curve), Text Path, Rich Text Path
An array containing Y coordinates of segment's control points (variable length, 4 bytes per coordinate).
Sample values:
"0, 100, 350, 200"
"200, 200, -200, -200, 100"
"-50, -90, -20, -80, -120, 10, 30, 20, -20, 10, 50"
Appears in: Custom Shape or Polygon
Fill rule (for polygons and shapes)
Supported values:
0 = Odd-Even Rule
1 = Nonzero Winding Number Rule
Appears in: Text Layout (Manual)
Instructions for pdPosArrX_32 and pdPosArrY_32 (variable length, 1 byte per instruction).
pdPosArrI is an array containing instructions that describe the corresponding pair of coordinates in the pdPosArrX_32 and pdPosArrY_32 arrays and provide some additional information about the letters (i.e. characters or glyphs). The length of the array should be the same as the number of letters. If the array is shorter, any missing instructions will assume the value 0. If the array is longer, any extra instructions will be ignored.
Each instruction is a combination of the following bit independent bit values:
Bit 0: If set (1), the corresponding letter starts a new text row. If not set (0), the letter is in the same (current) row. Visually, this bit has no impact on the text layout. However, its value is used to calculate and set the Row member of the DT_PD_FRAME structure when the text layout engine generates frames. This makes it possible to implement cursor movement in the vertical direction and not just horizontal.
Bit 1: If set (1), the corresponding value in the pdPosArrX_32 is an absolute X coordinate. If not set (0), the corresponding value represents a relative delta (i.e. horizontal move relative to the previous X coordinate).
Bit 2: If set (1), the corresponding value in the pdPosArrY_32 is an absolute Y coordinate. If not set (0), the corresponding value represents a relative delta (i.e. vertical move relative to the previous Y coordinate).
The remaining bits are reserved for future use and must be set to 0.
Based on the above, each element of the pdPosArrI array can represent one of the following 8 valid instructions:
0 (000) : Y-RELATIVE, X-RELATIVE, SAME ROW
1 (001) : Y-RELATIVE, X-RELATIVE, NEW ROW
2 (010) : Y-RELATIVE, X-ABSOLUTE, SAME ROW
3 (011) : Y-RELATIVE, X-ABSOLUTE, NEW ROW
4 (100) : Y-ABSOLUTE, X-RELATIVE, SAME ROW
5 (101) : Y-ABSOLUTE, X-RELATIVE, NEW ROW
6 (110) : Y-ABSOLUTE, X-ABSOLUTE, SAME ROW
7 (111) : Y-ABSOLUTE, X-ABSOLUTE, NEW ROW
Any other instructions are invalid.
Sample values:
0, 0, 0, 1, 0, 0, 0, 0, 7
Tip:
If all the elements of the pdPosArrI array are 0, the array can be omitted. Similarly, all trailing zero values can be omitted. For example, the array 0, 0, 0, 1, 0, 0, 0, 0, 7 will have the same effect as the array 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0.
Supported Compression Methods: 006
Appears in: Text Layout (Manual), Grid
An array containing X coordinates for manual positioning (variable length, 1 byte per coordinate).
Same as pdPosArrX_32 but uses 1 byte per coordinate.
Supported Compression Methods: 004
Appears in: Text Layout (Manual), Grid
An array containing X coordinates for manual positioning (variable length, 2 bytes per coordinate).
Same as pdPosArrX_32 but uses 2 bytes per coordinate.
Supported Compression Methods: 002
Appears in: Text Layout (Manual), Grid
An array containing X coordinates for manual positioning (variable length, 3 bytes per coordinate).
Same as pdPosArrX_32 but uses 3 bytes per coordinate.
Supported Compression Methods: 000
Appears in: Text Layout (Manual), Grid
An array containing X coordinates for manual positioning (variable length, 4 bytes per coordinate).
When used in the context of the Text Layout (Manual) object, pdPosArrX_32 is an array containing X coordinates or relative deltas needed to manually position the corresponding letters (i.e. characters or glyphs). The length of the array should be the same as the number of letters. If the array is shorter, any missing coordinates will assume the value 0. If the array is longer, any extra coordinates will be ignored. All X coordinates and relative deltas are specified in 1/256 document units (i.e. they are document units multiplied by 256). This provides the extra precision needed for precise text layout. Whether a value is an absolute X coordinate or relative delta depends on the corresponding instruction in the pdPosArrI.
When used in the context of the Grid object, pdPosArrX_32 is an array containing X coordinates needed to manually position the vertical grid lines, relative to the grid's origin. The length of the array equals the number of vertical grid lines. All X coordinates are in document units. They must be non-negative and must not exceed the width of the Grid object.
Sample values:
0, 12800, 25600, -16000, 15360, 15360, 15360, 29360, 15360, 25600, 25600, 25600, 25600
Supported Compression Methods: 006
Appears in: Text Layout (Manual), Grid
An array containing Y coordinates for manual positioning (variable length, 1 byte per coordinate).
Same as pdPosArrY_32 but uses 1 byte per coordinate.
Supported Compression Methods: 004
Appears in: Text Layout (Manual), Grid
An array containing Y coordinates for manual positioning (variable length, 2 bytes per coordinate).
Same as pdPosArrY_32 but uses 2 bytes per coordinate.
Supported Compression Methods: 002
Appears in: Text Layout (Manual), Grid
An array containing Y coordinates for manual positioning (variable length, 3 bytes per coordinate).
Same as pdPosArrY_32 but uses 3 bytes per coordinate.
Supported Compression Methods: 000
Appears in: Text Layout (Manual), Grid
An array containing Y coordinates for manual positioning (variable length, 4 bytes per coordinate).
When used in the context of the Text Layout (Manual) object, pdPosArrY_32 is an array containing Y coordinates or relative deltas needed to manually position the corresponding letters (i.e. characters or glyphs). The length of the array should be the same as the number of letters. If the array is shorter, any missing coordinates will assume the value 0. If the array is longer, any extra coordinates will be ignored. All Y coordinates and relative deltas are specified in 1/256 document units (i.e. they are document units multiplied by 256). This provides the extra precision needed for precise text layout. Whether a value is an absolute Y coordinate or relative delta depends on the corresponding instruction in the pdPosArrI.
When used in the context of the Grid object, pdPosArrY_32 is an array containing Y coordinates needed to manually position the horizontal grid lines, relative to the grid's origin. The length of the array equals the number of horizontal grid lines. All Y coordinates are in document units. They must be non-negative and must not exceed the height of the Grid object.
Sample values:
0, 6400, -6400, 25600, 0, 0, 0, 0, 55600
Appears in: Text Layout (Automatic), Text Layout (Manual)
Sets one of the positioning modes. The positioning mode tells the Typesetter how to position glyphs. See D-Type Standard Engine Manual for details.
Supported values:
0 = Engine Default A (same as 8)
1 = Engine Default B (same as 9)
2 = User Default A (same as 4)
3 = User Default B (same as 5)
4 = Frac X, Frac Y
Both X and Y coordinates of origin points are placed at fractional positions. As a result, spacing between characters looks reasonably consistent in both the horizontal and vertical direction.
5 = Frac X, Int Y
X coordinates of origin points are placed at fractional positions, while Y coordinates are snapped to the closest whole pixel positions. As a result, spacing between characters looks reasonably consistent in horizontal direction and somewhat inconsistent in vertical direction.
6 = Int X, Frac Y
X coordinates of origin points are snapped to the closest whole pixel positions, while Y coordinates are placed at fractional positions. As a result, spacing between characters looks somewhat inconsistent in horizontal direction and reasonably consistent in vertical direction.
7 = Int X, Int Y
Both X and Y coordinates of origin points are snapped to the closest whole pixel positions. As a result, spacing between characters looks somewhat inconsistent in both the horizontal and vertical direction.
8 = Auto A
Same as 4 for standard font sizes, but disables fractional pixel positioning in the X and/or Y direction for very small and very big font sizes. This is done in order to improve bitmap cache efficiency when rendering using very small and very big font sizes. This is a useful and recommended mode since fractional pixel positioning is not really necessary at those sizes.
9 = Auto B
Same as 5 for standard font sizes, but disables fractional pixel positioning in the X direction for very small and very big font sizes. This is done in order to improve bitmap cache efficiency when rendering using very small and very big font sizes. This is a useful and recommended mode since fractional pixel positioning is not really necessary at those sizes.
The above values are inherited from D-Type Standard Engine. See D-Type Standard Engine Manual for more details.
When rendering Text Lines, Rich Text Lines, Text Areas and Rich Text Areas, the following values are also supported:
10 = Enhanced Frac X, Frac Y
This positioning mode is similar to mode 4 but designed to further enhance spacing between glyphs based on the context. This mode can noticeably improve glyph spacing when compared with mode 4 and is highly recommended.
11 = Enhanced Frac X, Int Y
This positioning mode is similar to mode 5 but designed to further enhance spacing between glyphs based on the context. This mode can noticeably improve glyph spacing when compared with mode 5 and is highly recommended.
12 = Enhanced Int X, Frac Y
This positioning mode is similar to mode 6 but designed to further enhance spacing between glyphs based on the context. This mode can significantly improve glyph spacing when compared with mode 6 and is highly recommended.
13 = Enhanced Int X, Int Y
This positioning mode is similar to mode 7 but designed to further enhance spacing between glyphs based on the context. This mode can significantly improve glyph spacing when compared with mode 7 and is highly recommended.
PowerGlyphs Attributes
Bit 0: 1 = this PowerGlyph supports a dynamic width (using pdIndentLeft, pdIndentRight, pdMarginLeft, pdMarginRight)
Bit 1: 2 = reserved
Bit 2: 4 = the width of this PowerGlyph must not exceed container width
Bit 4: 8 = this PowerGlyph is a breakable table
Appears in: Bitmap Image, Library Bitmap Image
Quality.
Supported values:
0 = Low Quality But Fast
1 = High Quality But Slower
2 = Very High Quality But Slower
3 = Very High Quality (More Blur) But Slower
Appears in: Text Arc, Rich Text Arc
Radius in document units. When used to build the Text Arc or Rich Text Arc object, this value can be negative. This indicates that the text should be drawn on the arc's inner edge (and oriented counter-clockwise) rather than on the arc's outer edge (and oriented clockwise).
Appears in: True Circle/Ellipse, Slice, Arc
Horizontal radius in document units. Must be positive.
Sample values:
500 = Horizontal radius of 500 document units
800 = Horizontal radius of 800 document units
Appears in: True Circle/Ellipse, Slice, Arc
Vertical radius in document units. Must be positive.
Sample values:
500 = Vertical radius of 500 document units
800 = Vertical radius of 800 document units
Appears in: Bitmap Image, Library Bitmap Image
Initial and final intensity of blue (2 bytes). Used for grayscale images.
Sample values:
"00 FF" = initial intensity is 0, final intensity is 255
"CC 0A " = initial intensity is 204, final intensity is 10
Appears in: Bitmap Image, Library Bitmap Image
Initial and final intensity of green (2 bytes). Used for grayscale images.
Sample values:
"00 FF" = initial intensity is 0, final intensity is 255
"CC 0A " = initial intensity is 204, final intensity is 10
Appears in: Bitmap Image, Library Bitmap Image
Initial and final intensity of red (2 bytes). Used for grayscale images.
Sample values:
"00 FF" = initial intensity is 0, final intensity is 255
"CC 0A " = initial intensity is 204, final intensity is 10
Appears in: Custom Shape or Polygon
Rasterizer.
Supported values:
0 = Default Grayscale Rasterizer
When pdPolyArrC is used:
D-Type Direct Color RGBA Rasterizers and D-Type Shading Rasterizers
0 = Direct Color RGBA Rasterizer: Ultra-Fast Rasterizer
1 = Direct Color RGBA Rasterizer: No-Overlap Rasterizer
2 = Direct Color RGBA Rasterizer: Reference Rasterizer
3 = Direct Color RGBA Rasterizer: Alpha-Blend Rasterizer
10 = Shading Rasterizer: Mean Value Coordinates - Algorithm A
11 = Shading Rasterizer: Mean Value Coordinates - Algorithm B
12 = Shading Rasterizer: Inverse Distance Weighting
13 = Shading Rasterizer: Gouraud Shading With Anti-Aliased Edges
15 = Shading Rasterizer: Gouraud Shading Without Anti-Aliased Edges
16 = Shading Rasterizer: Distance Field Method A
17 = Shading Rasterizer: Distance Field Method B
Appears in: Text Layout (Automatic), Text Layout (Manual)
Text direction relative to the global text direction.
Sample values:
0 = Same as global text direction
1 = Opposite to global text direction
2 = Same as global text direction (nested, level 1)
3 = Opposite to global text direction (nested, level 1)
4 = Same as global text direction (nested, level 2)
5 = Opposite to global text direction (nested, level 2)
6 = Same as global text direction (nested, level 3)
7 = Opposite to global text direction (nested, level 3)
Appears in: Text Layout (Automatic)
Relative text orientation (Portrait or Landscape) and baseline, for horizontal and vertical text layout.
This is a 32-bit value that consists of the following 4 bytes:
BYTE 3 - Reserved for future use. All bits in this byte must be set to 0.
BYTE 2 - Relative text orientation and baseline for vertical text layout (text in columns). The bits in this byte are interpreted as follows:
Bit 7: Relative text orientation - If unset (0), the orientation is Portrait. If set (1), the orientation is Landscape. Portrait means that the glyph's x-axis (in font design space) is parallel with the baseline. Landscape means that the glyph's x-axis (in font design space) is perpendicular to the baseline.
Bit 6: Reserved for future use - Must be set to 0.
Bit 5: Reserved for future use - Must be set to 0.
Bit 4: Reserved for future use - Must be set to 0.
Bit 3: Reserved for future use - Must be set to 0.
Bit 2: Reserved for future use - Must be set to 0.
Bit 1 & 0: Baseline - These two bits represent a single 2-bit value which, depending on the relative text orientation, identifies one of the 4 available baselines.
In Portrait Mode (when Bit 7 is unset), the available baselines are:
00 (0) - Default - coincides with glyph's zero y coordinate (in font design space).
01 (1) - Shifted (Middle) - above the Default baseline, shifted by an amount that equals half the distance between the font's ascend and descend.
10 (2) - Top - coincides with glyph's ascend (in font design space).
11 (3) - Bottom - coincides with glyph's descend (in font design space).
In Landscape Mode (when Bit 7 is set), the available baselines are:
00 (0) - Default - coincides with glyph's mid-x point (in font design space). The definition of the mid-x point depends on the currently active algorithm for calculating the glyph mid-x points in vertical text layout. If the active algorithm is "Glyph Width" the mid-x point is half way between the glyph's minimum and maximum x coordinate. If the active algorithm is "Advance Width" the mid-x point is half way between the glyph's left and right side-bearing. Note that the left side-bearing coincides with the x coordinate 0 while the right side-bearing coincides with the glyph's advance width.
01 (1) - Shifted (Left) - to the left of the Default baseline, shifted by an amount that equals half the font's em square.
10 (2) - Center - same as the Default baseline.
11 (3) - Right - to the right of the Default baseline, shifted by an amount that equals half the font's em square.
BYTE 1 - Relative text orientation and baseline for horizontal text layout (text in rows). The bits in this byte are interpreted precisely the same as in BYTE 2. The only difference is that they control the relative text orientation and baseline in horizontal text layout (e.g. when text is laid out in rows), unlike the bits in BYTE 2 which control the relative text orientation and baseline in vertical text layout (e.g. when text is laid out in columns).
BYTE 0 - Flags and presets. This byte contains the following bits:
Bit 7: Advanced Configuration Mode - If unset (0), Advanced Configuration Mode is off. If set (1), Advanced Configuration Mode is on. In Advanced Configuration Mode, bits in BYTE 1 and 2 are respected and presets are ignored. When Advanced Configuration Mode is off, bits in BYTE 1 and 2 are ignored and instead presets are used. See below the list of available presets.
Bit 6: Reserved for future use - Must be set to 0.
Bit 5: Reserved for future use - Must be set to 0.
Bit 4: Flip Mode - If unset (0), Flip Mode is off. If set (1), Flip Mode is on. Flip Mode simply rotates glyphs 180 degrees. This bit is always respected i.e. regardless of whether Advanced Configuration Mode is on or off.
Bit 3, 2, 1 & 0: Presets - These four bits represent a single 4-bit value, which identifies one of the 16 available presets.
0000 (0) - Hor. Layout: Portrait + Default Baseline / Ver. Layout: Portrait + Default Baseline
0001 (1) - Hor. Layout: Landscape + Default Baseline / Ver. Layout: Landscape + Default Baseline
0010 (2) - Hor. Layout: Portrait + Default Baseline / Ver. Layout: Landscape + Default Baseline
0011 (3) - Hor. Layout: Landscape + Default Baseline / Ver. Layout: Portrait + Default Baseline
0100 (4) - Hor. Layout: Portrait + Shifted Baseline / Ver. Layout: Portrait + Shifted Baseline
0101 (5) - Hor. Layout: Landscape + Shifted Baseline / Ver. Layout: Landscape + Shifted Baseline
0110 (6) - Hor. Layout: Portrait + Shifted Baseline / Ver. Layout: Landscape + Shifted Baseline
0111 (7) - Hor. Layout: Landscape + Shifted Baseline / Ver. Layout: Portrait + Shifted Baseline
1000 (8) - Hor. Layout: Portrait + Default Baseline / Ver. Layout: Portrait + Shifted Baseline
1001 (9) - Hor. Layout: Landscape + Default Baseline / Ver. Layout: Landscape + Shifted Baseline
1010 (10) - Hor. Layout: Portrait + Default Baseline / Ver. Layout: Landscape + Shifted Baseline
1011 (11) - Hor. Layout: Landscape + Default Baseline / Ver. Layout: Portrait + Shifted Baseline
1100 (12) - Hor. Layout: Portrait + Shifted Baseline / Ver. Layout: Portrait + Default Baseline
1101 (13) - Hor. Layout: Landscape + Shifted Baseline / Ver. Layout: Landscape + Default Baseline
1110 (14) - Hor. Layout: Portrait + Shifted Baseline / Ver. Layout: Landscape + Default Baseline
1111 (15) - Hor. Layout: Landscape + Shifted Baseline / Ver. Layout: Portrait + Default Baseline
Value 0010 (2) is particularly useful for Unicode scripts that are typically written in portrait mode when the text is in horizontal layout (rows) and landscape mode when the text is in vertical layout (columns). Such scripts primarily include CJK scripts (Chinese/Japanese/Korean) and sometimes Latin or Cyrillic.
Value 1000 (8) is particularly useful for Unicode scripts that are always written in portrait mode, regardless of whether the text is in horizontal layout (rows) or vertical layout (columns). Such scripts include Arabic, Indic or any scripts that have horizontally joined characters. Value 8 also works well for Latin or Cyrillic scripts and can be applied to mirrored Unicode characters such as the parenthesis, square and curly brackets etc.
Sample values:
"0" = Preset #0: Portrait orientation and Default Baseline with horizontal layout; Portrait orientation and Default Baseline with vertical layout.
"6" = Preset #6: Portrait orientation and Shifted Baseline with horizontal layout; Landscape orientation and Shifted Baseline with vertical layout.
"8" = Preset #8: Portrait orientation and Default Baseline with horizontal layout; Portrait orientation and Shifted Baseline with vertical layout.
"18" = Flip Mode & Preset #2: Glyphs are rotated 180 degrees; Portrait orientation and Default Baseline with horizontal layout; Landscape orientation and Default Baseline with vertical layout.
"22" = Flip Mode & Preset #6: Glyphs are rotated 180 degrees; Portrait orientation and Shifted Baseline with horizontal layout; Landscape orientation and Shifted Baseline with vertical layout.
"896" = Advanced Configuration: Portrait orientation and Bottom Baseline with horizontal layout; Portrait orientation and Default Baseline with vertical layout.
"912" = Flip Mode & Advanced Configuration: Glyphs are rotated 180 degrees; Portrait orientation and Bottom Baseline with horizontal layout; Portrait orientation and Default Baseline with vertical layout.
"33664" = Advanced Configuration: Landscape orientation and Right Baseline with horizontal layout; Portrait orientation and Default Baseline with vertical layout.
"33680" = Flip Mode & Advanced Configuration: Glyphs are rotated 180 degrees; Landscape orientation and Right Baseline with horizontal layout; Portrait orientation and Default Baseline with vertical layout.
Appears in: Surface Definition, Background Surface, System Guide
Color and transparency (4 bytes)
The first three bytes specify the intensity of red (R), green (G) and blue (B) while the last byte specifies the transparency level (T). All values are in the 0-255 range. The value 0 means minimum intensity, 255 means maximum intensity.
The length of this field, when converted to the binary format, is precisely 4 bytes.
Sample values:
"00 00 00 00" (0, 0, 0, 0) = Fully Black, Fully Opaque
"00 00 00 7F" (0, 0, 0, 127) = Fully Black, 50% Transparent
"FF 00 00 00" (255, 0, 0, 0) = Fully Red, Fully Opaque
"00 FF 00 7F" (0, 255, 0, 127) = Fully Green, 50% Transparent
"FF FF FF FF" (255, 255, 255, 255) = Fully White, Fully Transparent
"00 7F 00 00" (0, 127, 0, 0) = 50% Green, Fully Transparent
"7F 7F 7F 7F" (127, 127, 127, 127) = Gray, 50% Transparent
Appears in: Typography (For Outline Fonts), Typography (For PowerFonts)
Font rotation in degrees. Must be between 0 and 360.
Sample values:
30 = Rotation of 30 degrees
120 = Rotation of 120 degrees
Appears in: Row Boundary, Rectangle
Roundness of rectangle's corners in percentages in X direction if pdRoundY is positive, otherwise in both X and Y directions.
This value of this property must be between 0 and 100. If zero, the corners will be flat.
Sample values:
50 = 50% roundness
35 = 35% roundness
Appears in: Row Boundary, Rectangle
Roundness of rectangle's corners in percentages in Y direction. This property has effect only when pdRoundX is positive.
This value of this property must be between 0 and 100. If zero, only pdRoundX will have effect in both X and Y directions.
Sample values:
50 = 50% roundness
35 = 35% roundness
Appears in: Shadow Definition
Shadow or glow offset in horizontal direction, in document units. Can be positive or negative.
Sample values:
10 = Offset of 10 document units in horizontal direction
-10 = Offset of -10 document units in horizontal direction
Appears in: Shadow Definition
Shadow or glow offset in vertical direction, in document units. Can be positive or negative.
Sample values:
5 = Offset of 5 document units in vertical direction
-5 = Offset of -5 document units in vertical direction
Appears in: Typography (For Outline Fonts), Typography (For PowerFonts)
Horizontal skew in degrees. If positive, font glyphs will be slanted to the left. If negative, font glyphs will be slanted to the right.
Sample values:
10 = Horizontal skew of 10 degrees
-10 = Horizontal skew of -10 degrees
Appears in: Typography (For Outline Fonts), Typography (For PowerFonts)
Vertical skew in degrees. If positive, font glyphs will be slanted downwards. If negative, font glyphs will be slanted upwards.
Sample values:
10 = Vertical skew of 10 degrees
-10 = Vertical skew of -10 degrees
Appears in: Bitmap Image, Library Bitmap Image
Edge smoothing for bitmap images. Respected only when the bitmap image's quality level is set to 1, 2 or 3.
Supported values:
0 = Edge smoothing is off
1 = Edge smoothing is on, inward (does not change the image boundary)
2 = Edge smoothing is on, outward (extends the image boundary by a small amount)
Appears in: Text Layout (Automatic)
Amount of spacing from the previous baseline, in document units. This provides a means of manually setting the line height in text areas and rich text areas. This value must be non-negative. The value -1 is special and indicates that the line height is to be calculated automatically.
Sample values:
48 = spacing of 48 document units
16 = spacing of 16 document units
-1 = calculate the baseline spacing automatically
Appears in: Text Layout (Automatic)
Line Height Multiple, multiplied by 1024.
Sample values:
512 = 0.5
1024 = 1.0
1536 = 1.5
2048 = 2.0
2560 = 2.5
Appears in: Text Layout (Automatic)
Amount of spacing to be added after a character or glyph, in font units. Both positive and negative values are valid.
Appears in: Text Layout (Automatic)
Amount of spacing to be added after a character or glyph, in document units. Both positive and negative values are valid.
Sample values:
10 = character spacing of 10 document units
40 = character spacing of 40 document units
-10 = character spacing of -10 document units
Appears in: Text Layout (Automatic)
Amount of spacing to be added after a text line, in document units.
Sample values:
10 = spacing of 10 document units
15 = spacing of 15 document units
-5 = spacing of -5 document units
Appears in: Custom Shape or Polygon
Pixel Stitching. This property is respected only when polygons/shapes are rendered using the Reference RGBA Rasterizer. In all other cases it is ignored.
Supported values:
0 = Default
1 = Coarse
2 = Average
3 = Fine
4 = Best
Appears in: Bitmap Image, Library Bitmap Image
Transparency. The value 0 means minimum intensity, 255 means maximum intensity.
Sample values:
0 = Fully opaque
127 = 50% transparent
255 = Fully transparent
Appears in: Text Ruler (Horizontal)
An optional array of tab stop flags. Each tab stop flag corresponds to and describes one tab stop position in the pdTabStopPositions array.
Supported flag values:
0 = Left Tab Stop
1 = Center Tab Stop
2 = Right Tab Stop
Tab stop positions without explicitly associated tab stop flags are interpreted as left tab stops.
Sample values:
"1"
"0, 2, 1"
Appears in: Text Ruler (Horizontal)
An array of tab stop positions. Depending on the flags in the corresponding pdTabStopFlags array, these positions can be left, center or right tab stop positions. All tab stop positions are quantities in the 0 - 65,535 range. These quantities should be understood as percentages of the width of the current text area (or the length of the current text path); therefore 0 means 0% of the text area width (or text path length) while 65,535 means 100% of the text area width (or text path length). The quantities must be entered in an increasing order.
Sample values:
"9830" = One tab stop position at 15% of the width of the current text area (or the length of the current text path)
"13107, 32768, 52428" = Three tab stop positions; the first one at 20%, the second one at 50% and the third one at 80% of the width of the current text area (or the length of the current text path)
Appears in: Text Area, Rich Text Area
Height of a text area in document units. Must not be negative. The value 0 is special and means an infinite height; in this configuration the text never flows to any subsequent text areas and just keeps wrapping in one infinitely high text area.
Sample values:
500 = Height of 500 document units
1000 = Height of 1000 document units
Appears in: Text Area, Rich Text Area
Width of a text area in document units. Must not be negative. The value 0 is special and means an infinite width; in this configuration the text never wraps and just outputs on one infinitely long text line (the only text line in that text area).
Sample values:
500 = Width of 500 document units
1000 = Width of 1000 document units
Appears in: Text Area, Rich Text Area
Left edge polyline for text areas. This property makes it possible to create text areas with a custom (i.e. user-defined) left edge. In order for the custom left edge to take effect, the pdTextAreaType property must be set to 5 or 6.
The left edge polyline is defined as a sequence of connected segments which can be made of lines, Quadratic B-Spline and/or Bezier curves. Each sequence begins with the descriptor (value 20, 25 or 24) followed by an appropriate number of coordinates for the control points as shown below:
Line: 20, X1, Y1
Quadratic B-Spline Curve: 25, X1, Y1, X2, Y2
Bezier Curve: 24, X1, Y1, X2, Y2, X3, Y3
The size of each descriptor value (20, 25 or 24) is always 1 byte.
When pdTextAreaType is 5, the size of each coordinate is 1 byte. In this case X1, X2 and X3 represent X coordinates of the segment's control points and must be in the 0-255 range. The value 0 means 0% of the text area width while the value 255 means 100% of the text area width. Similarly, Y1, Y2 and Y3 represent Y coordinates of the segment's control points and must be in the 0-255 range. The value 0 means 0% of the text area height while the value 255 means 100% of the text area height.
When pdTextAreaType is 6, the size of each coordinate is 2 bytes (little endian byte ordering). In this case X1, X2 and X3 represent X coordinates of the segment's control points and must be in the 0 - 65,535 range. The value 0 means 0% of the text area width while the value 65,535 means 100% of the text area width. Similarly, Y1, Y2 and Y3 represent Y coordinates of the segment's control points and must be in the 0 - 65,535 range. The value 0 means 0% of the text area height while the value 65,535 means 100% of the text area height.
Implicitly, the first control point is always located at the coordinate (0, 0) which is the top left corner of the text area. Therefore, the user definition of the polyline starts with the second control point. In addition, the last control point is automatically placed at the coordinate (x_last, y_max) where x_last is the X coordinate of the last user defined control point and y_max is 255 (when pdTextAreaType is 5) or 65,535 (when pdTextAreaType is 6). In this way the polyline and the text area always have the same height.
Although any sequence of connected lines, Quadratic B-Spline and/or Bezier curves can be used to define a polyline, the Y coordinates should be specified in a non-decreasing order. That is, any time a new Y coordinates is specified, its value should not be less than the value of the previously specified Y coordinate. This is to ensure that the polyline does not have multiple intersections with any horizontal line. This restriction does not apply to X coordinates.
Sample values (when pdTextAreaType is 5):
"25, 91, 64, 26, 128, 20, 102, 192"
"20, 255, 0, 20, 190, 90, 24, 190, 200, 140, 200, 70, 210, 20, 0, 255"
Appears in: Text Area, Rich Text Area
Right edge polyline for text areas. This property makes it possible to create text areas with a custom (i.e. user-defined) right edge. In order for the custom right edge to take effect, the pdTextAreaType property must be set to 5 or 6.
The right edge polyline is defined as a sequence of connected segments which can be made of lines, Quadratic B-Spline and/or Bezier curves. Each sequence begins with the descriptor (value 20, 25 or 24) followed by an appropriate number of coordinates for the control points as shown below:
Line: 20, X1, Y1
Quadratic B-Spline Curve: 25, X1, Y1, X2, Y2
Bezier Curve: 24, X1, Y1, X2, Y2, X3, Y3
The size of each descriptor value (20, 25 or 24) is always 1 byte.
When pdTextAreaType is 5, the size of each coordinate is 1 byte. In this case X1, X2 and X3 represent X coordinates of the segment's control points and must be in the 0-255 range. The value 0 means 0% of the text area width while the value 255 means 100% of the text area width. Similarly, Y1, Y2 and Y3 represent Y coordinates of the segment's control points and must be in the 0-255 range. The value 0 means 0% of the text area height while the value 255 means 100% of the text area height.
When pdTextAreaType is 6, the size of each coordinate is 2 bytes (little endian byte ordering). In this case X1, X2 and X3 represent X coordinates of the segment's control points and must be in the 0 - 65,535 range. The value 0 means 0% of the text area width while the value 65,535 means 100% of the text area width. Similarly, Y1, Y2 and Y3 represent Y coordinates of the segment's control points and must be in the 0 - 65,535 range. The value 0 means 0% of the text area height while the value 65,535 means 100% of the text area height.
Implicitly, the first control point is always located at the coordinate (0, 0) which is the top right corner of the text area. Therefore, the user definition of the polyline starts with the second control point. In addition, the last control point is automatically placed at the coordinate (x_last, y_max) where x_last is the X coordinate of the last user defined control point and y_max is 255 (when pdTextAreaType is 5) or 65,535 (when pdTextAreaType is 6). In this way the polyline and the text area always have the same height.
Although any sequence of connected lines, Quadratic B-Spline and/or Bezier curves can be used to define a polyline, the Y coordinates should be specified in a non-decreasing order. That is, any time a new Y coordinates is specified, its value should not be less than the value of the previously specified Y coordinate. This is to ensure that the polyline does not have multiple intersections with any horizontal line. This restriction does not apply to X coordinates.
Sample values (when pdTextAreaType is 5):
"20, 70, 45, 24, 140, 55, 190, 55, 190, 165, 20, 255, 255"
"20, 51, 64, 20, 26, 128, 20, 102, 192"
Appears in: Text Area, Rich Text Area
Row spacing calculation method.
0 = Mathematically calculate spacing between text rows.
10 = Respect typographic values when calculating spacing between text rows. The typographic values must be defined in the font file in order for this method to function as intended. For text in horizontal layout (rows), the typographic values are supplied by the sTypoAscender and sTypoDescender fields of the OS/2 table (TrueType/OpenType fonts) or the Ascender and Descender key of the Font Metrics (AFM) file (Type 1/Type 3 fonts). D-Type Font Engine refers to these values in a portable fashion via the DV_NVAL_ASCENDER and DV_NVAL_DESCENDER identifiers. For text in vertical layout (columns), the typographic values are supplied by the vertTypoAscender and vertTypoDescender fields of the vhea table (TrueType/OpenType fonts). D-Type Font Engine refers to these values in a portable fashion via the DV_NVAL_VER_ASCENDER and DV_NVAL_VER_DESCENDER identifiers. If the typographic values are not defined in the font file, method 0 will be used instead.
20 = Same as method 10 but adds an additional linegap, if available in the font. For text in horizontal layout (rows), this additional linegap is supplied by the sTypoLineGap field of the OS/2 table (TrueType/OpenType fonts); in Type 1 and Type 3 fonts, this information is most likely not available. D-Type Font Engine refers to this value in a portable fashion via the DV_NVAL_LINEGAP identifier. For text in vertical layout (columns), the additional linegap is supplied by the vertTypoLineGap field of the vhea table (TrueType/OpenType fonts). D-Type Font Engine refers to this value in a portable fashion via the DV_NVAL_VER_LINEGAP identifier.
30 = Respect Windows specific typographic values when calculating spacing between text rows. The Windows specific typographic values must be defined in the font file in order for this method to function as intended. For text in either horizontal layout (rows) or vertical layout (columns), the Windows specific typographic values are supplied by the usWinAscent and usWinDescent fields of the OS/2 table (TrueType/OpenType fonts). D-Type Font Engine refers to these values in a portable fashion via the DV_NVAL_WIN_ASCENT and DV_NVAL_WIN_DESCENT identifiers. If the Windows specific typographic values are not defined in the font file, method 0 will be used instead.
110 = Same as method 10, but horizontal typographic values are used for text in vertical layout (columns). Although not ideal from a purely mathematical standpoint, this method seems to work well with most CJK fonts.
120 = Same as method 20, but horizontal typographic values are used for text in vertical layout (columns). Although not ideal from a purely mathematical standpoint, this method seems to work well with most CJK fonts.
Other property values will be described in the future.
Supported values: 0, 1, 2, 3, 4, 10, 11, 12, 13, 14, 20, 21, 22, 23, 24, 30, 31, 32, 33, 34, 110, 111, 112, 113, 114, 120, 121, 122, 123, 124
Appears in: Text Area, Rich Text Area
Type of text area and control of empty text lines.
The first 6 bits (Bit 0 - Bit 5) are interpreted as a single 6 bit value. This value specifies the type of the text area and can be one of the following:
Supported values:
0 = Rectangular
5 = Custom (use in conjunction with pdTextAreaEdgeLeft and/or pdTextAreaEdgeRight)
6 = Custom With Extra Precision (use in conjunction with pdTextAreaEdgeLeft and/or pdTextAreaEdgeRight)
10 = Quarter-Circular A
11 = Quarter-Circular B
12 = Quarter-Circular C
13 = Quarter-Circular D
14 = Half-Circular A
15 = Half-Circular B
16 = Half-Circular C
17 = Half-Circular D
18 = Circular
20 = Quarter-Diamond A
21 = Quarter-Diamond B
22 = Quarter-Diamond C
23 = Quarter-Diamond D
24 = Half-Diamond A
25 = Half-Diamond B
26 = Half-Diamond C
27 = Half-Diamond D
28 = Diamond
The seventh bit (Bit 6) is interpreted as a single bit value that specifies how the left (pdTextAreaEdgeLeft) and right edge (pdTextAreaEdgeRight) in non-rectangular text areas will be calculated. If this bit is set (1), the calculation will be more precise but slower; otherwise, if this bit is unset (0), the calculation will be less precise but faster. In rectangular text areas, this bit is ignored.
The final bit (Bit 7) is interpreted as a single bit value that signifies whether the control of empty text lines is enabled. If this bit is set (1), the control of empty text lines is enabled; otherwise, if this bit is unset (0), the control of empty text lines is disabled.
When the control of empty text lines is enabled, D-Type Engine will ignore any trailing empty text lines (i.e. text lines that only contain white characters such as spaces or carriage returns) when performing vertical alignment of text in this text area. This is useful in high-end text layout applications that require more professional vertical alignment of text.
Appears in: Text Area, Rich Text Area
Vertical alignment of text inside a text area, when the text flow does not end or break in that text area.
Supported values:
0 = Top
1 = Middle
2 = Bottom
3 = Justified
Appears in: Text Area, Rich Text Area
Vertical alignment of text inside a text area, when the text flow ends or breaks in that text area.
Supported values:
0 = Top
1 = Middle
2 = Bottom
3 = Justified
Appears in: Text Fragment, Text Line, Text Arc, Text Area, Text Path
A value consisting of 5 independent bits. Each bit indicates whether a line break is allowed after a certain user-selectble class of characters. This makes it possible to fine tune the behavior of the text wrapping algorithm (on arbitrary text selections) in order to improve the appearance of text.
Supported values:
Bit 0 - If set, line break is allowed after common punctuation marks (e.g. period, comma, exclamation mark, question mark, colon, semi-colon)
Bit 1 - If set, line break is allowed after other punctuation marks (e.g. middle dot, inverted exclamation mark, inverted question mark)
Bit 2 - If set, line break is allowed after minus/hyphen signs and dashes (e.g. en dash, em dash, horizontal bar)
Bit 3 - If set, line break is allowed after forward or backward slashes
Bit 4 - If set, line break is allowed after other separators (e.g. pipe)
Bit 5 - If set, line break is allowed after closing brackets/parentheses
Bit 6 - If set, line break is allowed after other terminating symbols (e.g. percent, degree, cent sign)
Sample values:
0 = Line break is not allowed after any user-selectable class of characters
1 = Line break is allowed after common punctuation marks
8 = Line break is allowed after forward or backward slashes
9 = Line break is allowed after common punctuation marks and forward or backward slashes
11 = Line break is allowed after common punctuation marks, other punctuation marks and forward or backward slashes
31 = Line break is allowed after all user-selectable classes of characters
Appears in: Text Fragment, Text Line, Text Arc, Text Area, Text Design, Text Path
Text encoding format. If this property is not specified, then the value 0 (Unicode character codes) is assumed.
Supported values:
0 = Unicode character codes
1 = Glyph codes (font dependent)
2 = Unicode PowerChar codes - reserved for future use
3 = PowerGlyph codes (font dependent)
Appears in: Text Fragment, Text Line, Text Arc, Text Area, Text Path
Index of the hyphenation dictionary (1 byte) followed by one reserved byte (must be zero) followed by an array of hyphen bits (variable length, one bit for each glyph or character).
This property makes it possible to apply language specific hyphenation rules to arbitrary text selections. This typically results in improved text wrapping behavior, especially when text is laid out in narrow columns. This is useful in high-end text layout applications that require more professional justification of text lines.
Hyphenation dictionaries are set up via dtype.inf. Each hyphenation dictionary is a file (steam) that contains specific hyphenation instructions and hyphenation patterns for the supported target language. The index of the hyphenation dictionary (first byte) simply references one of these files (streams). For example, index 1 references the first hyphenation dictionary set up via dtype.inf (which is the English hyphenation dictionary), index 2 references the second one (which is the French hyphenation dictionary) and so on. Consequently, a positive index enables automatic hyphenation while the index 0 disables the hyphenation (in which case no additional bytes are needed).
D-Type Power Engine by itself does not use the index of the hyphenation dictionary as parsing the hyphenation instructions and patterns in real time can be slow. The purpose of this index is to allow text processing clients to re-hyphenate text as the user makes changes to it and store processed hyphenation results in the array of hyphen bits. D-Type Power Engine then reads the array of hyphen bits to extract these processed hyphenation results. The array of hyphen bits tells D-Type Power Engine whether a hyphen is allowed after the glyph or character in the corresponding text fragment. If a bit in the array of hyphen bits is set (1), a hyphen is allowed after the corresponding glyph/character; if unset (0) then the hyphen is not allowed after the corresponding glyph/character. Any trailing unset bits can be omitted. This means that the number of bits in the array of hyphen bits can be less than the number of glyphs/characters in the corresponding text fragment.
Sample values:
0 = Disable hyphenation
1, 0, 12, 10, 128, 136 = Enable automatic hyphenation; use the English hyphenation dictionary to hyphenate text. The array 12, 10, 128, 136 (00001100, 00001010, 10000000, 10001000) means that a hyphen can be inserted after the 5th, 6th, 13th, 15th, 17th, 25th and 29th character in the corresponding text fragment.
2, 0, 33, 112, 128 = Enable automatic hyphenation; use the French hyphenation dictionary to hyphenate text. The array 33, 112, 128 (00100001, 01110000, 10000000) means that a hyphen can be inserted after the 3rd, 8th, 10th, 11th, 12th and 17th character in the corresponding text fragment.
Appears in: Text Fragment, Text Line, Text Arc, Text Area, Text Path
Language of the text. Although optional and rarely used, this value is primarily a hint needed to influence the text shaping process with certain Unicode scripts.
Supported values:
0 = None
1 = araLanguageCode = Arabic
2 = asmLanguageCode = Assamese
3 = benLanguageCode = Bengali
4 = farLanguageCode = Farsi
5 = gujLanguageCode = Gujarati
6 = hinLanguageCode = Hindi
7 = iwrLanguageCode = Hebrew
8 = jiiLanguageCode = Yiddish
9 = janLanguageCode = Japanese
10 = kanLanguageCode = Kannada
11 = kokLanguageCode = Konkani
12 = korLanguageCode = Korean
13 = kshLanguageCode = Kashmiri
14 = malLanguageCode = Malayalam Traditional
15 = marLanguageCode = Marathi
16 = mlrLanguageCode = Malayalam Reformed
17 = mniLanguageCode = Manipuri
18 = oriLanguageCode = Oriya
19 = sanLanguageCode = Sanskrit
20 = sndLanguageCode = Sindhi
21 = snhLanguageCode = Sinhalese
22 = syrLanguageCode = Syriac
23 = tamLanguageCode = Tamil
24 = telLanguageCode = Telugu
25 = thaLanguageCode = Thai
26 = urdLanguageCode = Urdu
27 = zhpLanguageCode = Chinese Phonetic
28 = zhsLanguageCode = Chinese Simplified
29 = zhtLanguageCode = Chinese Traditional
30 = afkLanguageCode = Afrikaans
31 = belLanguageCode = Belarussian
32 = bgrLanguageCode = Bulgarian
33 = catLanguageCode = Catalan
34 = cheLanguageCode = Chechen
35 = copLanguageCode = Coptic
36 = csyLanguageCode = Czech
37 = danLanguageCode = Danish
38 = deuLanguageCode = German
39 = dznLanguageCode = Dzongkha
40 = ellLanguageCode = Greek
41 = engLanguageCode = English
42 = espLanguageCode = Spanish
43 = etiLanguageCode = Estonian
44 = euqLanguageCode = Basque
45 = finLanguageCode = Finnish
46 = fraLanguageCode = French
47 = gaeLanguageCode = Gaelic
48 = hauLanguageCode = Hausa
49 = hrvLanguageCode = Croatian
50 = hunLanguageCode = Hungarian
51 = hyeLanguageCode = Armenian
52 = indLanguageCode = Indonesian
53 = itaLanguageCode = Italian
54 = khmLanguageCode = Khmer
55 = mngLanguageCode = Mongolian
56 = mtsLanguageCode = Maltese
57 = nepLanguageCode = Nepali
58 = nldLanguageCode = Dutch
59 = pasLanguageCode = Pashto
60 = plkLanguageCode = Polish
61 = ptgLanguageCode = Portuguese
62 = romLanguageCode = Romanian
63 = rusLanguageCode = Russian
64 = skyLanguageCode = Slovak
65 = slvLanguageCode = Slovenian
66 = sqiLanguageCode = Albanian
67 = srbLanguageCode = Serbian
68 = sveLanguageCode = Swedish
69 = tibLanguageCode = Tibetan
70 = trkLanguageCode = Turkish
71 = welLanguageCode = Welsh
Appears in: Text Fragment, Text Line, Text Arc, Text Area, Text Path
Misc Text Attributes
Bit 0: 1 = Don't allow line break at the end of the text fragment
Misc Text Attributes 2
Bit 0: 1 = Special flag for RTL bullets (used by Unicode Text Module)
Appears in: Text Fragment, Text Line, Text Arc, Text Area, Text Path
Text shaping. Complex features and scripts (e.g. ligatures, Arabic and various Indic scripts) require D-Type or TrueType/OpenType fonts with advanced typography tables.
Supported values:
0 = None
1 = Default
2 = Feature: Optional Latin Ligatures
3 = Feature: Standard Arabic Ligatures
4 = Feature: Discretionary Latin Ligatures
5 = Feature: Historical Latin Ligatures
6 = Feature: Vertical CJK Ideographic Forms
7 = Feature: Vertical Hiragana/Katakana Forms
101 = Script & Line Breaking: Default
102 = Script & Line Breaking: Latin
103 = Script & Line Breaking: Arabic
104 = Script & Line Breaking: Hebrew
105 = Script & Line Breaking: Greek
106 = Script & Line Breaking: CJK Ideographic
107 = Script & Line Breaking: Hiragana/Katakana
108 = Script & Line Breaking: Cyrillic
1001 = Script & Line Breaking: Vertical Default
1002 = Script & Line Breaking: Vertical Latin
1006 = Script & Line Breaking: Vertical CJK Ideographic
1007 = Script & Line Breaking: Vertical Hiragana/Katakana
10000 = Unicode Script & Line Breaking: Common
10001 = Unicode Script & Line Breaking: Inherited
10002 = Unicode Script & Line Breaking: Arabic
10003 = Unicode Script & Line Breaking: Armenian
10004 = Unicode Script & Line Breaking: Bengali
10005 = Unicode Script & Line Breaking: Bopomofo
10006 = Unicode Script & Line Breaking: Cherokee
10007 = Unicode Script & Line Breaking: Coptic
10008 = Unicode Script & Line Breaking: Cyrillic
10009 = Unicode Script & Line Breaking: Deseret
10010 = Unicode Script & Line Breaking: Devanagari
10011 = Unicode Script & Line Breaking: Ethiopic
10012 = Unicode Script & Line Breaking: Georgian
10013 = Unicode Script & Line Breaking: Gothic
10014 = Unicode Script & Line Breaking: Greek
10015 = Unicode Script & Line Breaking: Gujarati
10016 = Unicode Script & Line Breaking: Gurmukhi
10017 = Unicode Script & Line Breaking: Han
10018 = Unicode Script & Line Breaking: Hangul
10019 = Unicode Script & Line Breaking: Hebrew
10020 = Unicode Script & Line Breaking: Hiragana
10021 = Unicode Script & Line Breaking: Kannada
10022 = Unicode Script & Line Breaking: Katakana
10023 = Unicode Script & Line Breaking: Khmer
10024 = Unicode Script & Line Breaking: Lao
10025 = Unicode Script & Line Breaking: Latin
10026 = Unicode Script & Line Breaking: Malayalam
10027 = Unicode Script & Line Breaking: Mongolian
10028 = Unicode Script & Line Breaking: Myanmar
10029 = Unicode Script & Line Breaking: Ogham
10030 = Unicode Script & Line Breaking: Old Italic
10031 = Unicode Script & Line Breaking: Oriya
10032 = Unicode Script & Line Breaking: Runic
10033 = Unicode Script & Line Breaking: Sinhala
10034 = Unicode Script & Line Breaking: Syriac
10035 = Unicode Script & Line Breaking: Tamil
10036 = Unicode Script & Line Breaking: Telugu
10037 = Unicode Script & Line Breaking: Thaana
10038 = Unicode Script & Line Breaking: Thai
10039 = Unicode Script & Line Breaking: Tibetan
10040 = Unicode Script & Line Breaking: Unified Canadian Aboriginal Symbols
10041 = Unicode Script & Line Breaking: Yi syllables
10042 = Unicode Script & Line Breaking: Tagalog
10043 = Unicode Script & Line Breaking: Hanunoo
10044 = Unicode Script & Line Breaking: Buhid
10045 = Unicode Script & Line Breaking: Tagbanwa
Appears in: Text Fragment, Text Line, Text Arc, Text Area, Text Path
A value consisting of 4 independent bits. Each bit indicates whether a certain typographic feature for a script is enabled or disabled. This makes it possible to fine tune the text shaping process.
Supported values:
1 (bit 0 set) = Disable kerning
2 (bit 1 set) = Disable optional ligatures
131072 (bit 17 set) = Enable discretionary ligatures
262144 (bit 18 set) = Enable historical ligatures
Sample values:
3 = Disable kerning and optional ligatures
131074 = Enable discretionary ligatures and disable optional ligatures
393216 = Enable discretionary and historical ligatures
Supported Compression Methods: 006
Appears in: Text Fragment, Text Line, Text Arc, Text Area, Text Design, Text Path
Text string, i.e. an array of character or glyph codes (variable length, 1 byte per code).
Sample values:
"Test"
"D-Type"
Supported Compression Methods: 004
Appears in: Text Fragment, Text Line, Text Arc, Text Area, Text Design, Text Path
Text string, i.e. an array of character or glyph codes (variable length, 2 bytes per code).
Sample values:
"54 00 65 00 73 00 74 00" ('T', 'e', 's', 't')
"44 00 2D 00 54 00 79 00 70 00 65 00" ('D', '-', 'T', 'y', 'p', 'e')
Supported Compression Methods: 002
Appears in: Text Fragment, Text Line, Text Arc, Text Area, Text Design, Text Path
Text string, i.e. an array of character or glyph codes (variable length, 3 bytes per code).
Sample values:
"54 00 00 65 00 00 73 00 00 74 00 00" ('T', 'e', 's', 't')
"44 00 00 2D 00 00 54 00 00 79 00 00 70 00 00 65 00 00" ('D', '-', 'T', 'y', 'p', 'e')
Supported Compression Methods: 000
Appears in: Text Fragment, Text Line, Text Arc, Text Area, Text Design, Text Path
Text string, i.e. an array of character or glyph codes (variable length, 4 bytes per code).
Sample values:
"54 00 00 00 65 00 00 00 73 00 00 00 74 00 00 00" ('T', 'e', 's', 't')
"44 00 00 00 2D 00 00 00 54 00 00 00 79 00 00 00 70 00 00 00 65 00 00 00" ('D', '-', 'T', 'y', 'p', 'e')
Appears in: Group Member
Transformation matrix. This is an array that must contain either 4 or 8 elements. Each element is 4 bytes long and represents a single transformation parameter in the 14.18 fixed-point format (i.e. the transformation parameters are premultiplied by 262144).
If the array contains 4 elements, the transformation matrix is assumed to be a special case of a two-dimensional affine transformation described by the following equation:
tx = m[0][0] * x + m[0][1] * y
ty = m[1][0] * x + m[1][1] * y
In this case, the elements in the array are specified in the following order: m[0][0], m[0][1], m[1][0], m[1][1].
If the array contains 8 elements, the transformation matrix is assumed to be a 2D perspective (or projective) transformation described by the following equation:
tx = (m[0][0] * x + m[0][1] * y + m[0][2]) / w
ty = (m[1][0] * x + m[1][1] * y + m[1][2]) / w
where w = (m[2][0] * x + m[2][1] * y + m[2][2])
In this case, the elements in the array are specified in the following order: m[0][0], m[0][1], m[1][0], m[1][1], m[0][2], m[1][2], m[2][0], m[2][1]. The m[2][2] parameter is assumed to equal 1.
In the above equations x and y represent the original (source) coordinates in document units, m[i][j] represent the transformation parameters, while tx and ty represent the final (output) coordinates in document units.
Sample values:
"185363, -185363, 185363, 185363"
"185363, -185363, 185363, 185363, 500296, 500296, 0, 0"
"125696, -1536, 0, 119296, -55050240, -31457280, 0, -262"
Appears in: Typography (For Outline Fonts), Typography (For PowerFonts)
Font underline and/or strike-through effect.
The first byte (bits 1-8) is used to specify the type of the underline and/or strike-through effect. Supported values are as follows:
0 (000 000) = No Effect
1 (000 001) = Underline
2 (000 010) = Double Underline
8 (001 000) = Strike-Through
9 (001 001) = Strike-Through and Underline
10 (001 010) = Strike-Through and Double Underline
16 (010 000) = Double Strike-Through
17 (010 001) = Double Strike-Through and Underline
18 (010 010) = Double Strike-Through and Double Underline
If the line definition for the underline and/or strike-through effect is supplied (via the pdUnderlinePtr link in Power Engine or TX_ATTR_UNDERLINE_THICKNESS attribute in Unicode Text Module), then the second byte (bits 9-16) is used to specify the thickness of the secondary line in double underline and double strike-through effects relative to the primary line. The value itself is expressed in 1/255 increments of the thickness of the primary line. Value 0 is special and indicates a default thickness (which is set to 50% of the thickness of the primary line). The thickness of the primary line is supplied via the line definition and is expressed in 1/100 increments of document units..
Interpretation of the second byte when line definition is supplied:
0 = Default thickness (50% of the thickness of the primary line)
1 = 1/255 (or 0.39%) of the thickness of the primary line
2 = 2/255 (or 0.78%) of the thickness of the primary line
3 = 3/255 (or 1.17%) of the thickness of the primary line
...
253 = 253/255 (or 99.22%) of the thickness of the primary line
254 = 254/255 (or 99.61%) of the thickness of the primary line
255 = 255/255 (or 100%) of the thickness of the primary line
If the line definition for the underline and/or strike-through effect is not supplied (via the pdUnderlinePtr link in Power Engine or TX_ATTR_UNDERLINE_THICKNESS attribute in Unicode Text Module), then the second byte (bits 9-16) is used to specify the thickness of both the primary and secondary line relative to the font height. The value itself is expressed in 1/255 increments of the font height. Value 0 is special and indicates a default thickness (which is set to 3.5% of the font height).
Interpretation of the second byte when line definition is not supplied:
0 = Default thickness (3.5% of the font height)
1 = 1/255 (or 0.39%) of the font height
2 = 2/255 (or 0.78%) of the font height
3 = 3/255 (or 1.17%) of the font height
...
253 = 253/255 (or 99.22%) of the font height
254 = 254/255 (or 99.61%) of the font height
255 = 255/255 (or 100%) of the font height
Sample values:
3856 = Double strike-through whose primary line thickness is supplied via the line definition while the secondary line thickness is 15/255 (or 5.88%) of the primary line thickness
3856 = Double strike-through whose both primary and secondary line thickness is 15/255 (or 5.88%) of the font height
Appears in: Typography (For Outline Fonts), Typography (For PowerFonts)
Underline/Strike-Through Line Positioning Mode. Respected when font underline and/or strike-through effect is enabled.
Supported values:
0 = Automatic. In this mode the offset of the underline/strike-through line from the baseline is automatically calculated by the rendering engine. This mode is suitable for most purposes. However, because the calculated offset is dependent on the font height, the underline/strike-through line does not remain at the same position (i.e. it jumps) when the text contains glyphs/characters in different font sizes.
1 = Same as 0.
2 = Manual (% of font height). In this mode the offset of the underline/strike-through line from the baseline is manually specified and represents a percentage of the font height. Consequently, the underline/strike-through line does not remain at the same position (i.e. it jumps) when the text contains glyphs/characters in different font sizes.
3 = Same as 2.
4 = Manual (document units). In this mode the offset of the underline/strike-through line from the baseline is manually specified and represents an absolute distance in document units. Consequently, the underline/strike-through line remains at the same position (i.e. it does not jump) as it follows the text, even when the text contains glyphs/characters in different font sizes (assuming that all glyphs/characters are set using the standard portrait orientation).
5 = Same as 4.
Appears in: Typography (For Outline Fonts), Typography (For PowerFonts)
Offset of 1st underline from glyph's baseline.
The interpretation of the value depends on the specified Underline/Strike-Through Line Positioning Mode:
* Mode 0 - Automatic: This value is ignored and should be set to 0 or omitted.
* Mode 2 - Manual (% of font height): The offset is manually specified and represents the percentage of the font height, multiplied by 1024/100.
Examples:
-2048 = -200%
-1024 = -100%
-512 = -50%
0 = 0%
512 = 50%
1024 = 100%
2048 = 200%
* Mode 4 - Manual (document units): The offset is manually specified and represents the offset in document units, multiplied by 1024.
Examples:
-2048 = -2 doc units
-1024 = -1 doc units
-512 = -0.5 doc units
0 = 0 doc units
512 = 0.5 doc units
1024 = 1 doc units
2048 = 2 doc units
Appears in: Typography (For Outline Fonts), Typography (For PowerFonts)
Offset of 2nd underline from glyph's baseline.
The interpretation of the value depends on the specified Underline/Strike-Through Line Positioning Mode:
* Mode 0 - Automatic: This value is ignored and should be set to 0 or omitted.
* Mode 2 - Manual (% of font height): The offset is manually specified and represents the percentage of the font height, multiplied by 1024/100.
Examples:
-2048 = -200%
-1024 = -100%
-512 = -50%
0 = 0%
512 = 50%
1024 = 100%
2048 = 200%
* Mode 4 - Manual (document units): The offset is manually specified and represents the offset in document units, multiplied by 1024.
Examples:
-2048 = -2 doc units
-1024 = -1 doc units
-512 = -0.5 doc units
0 = 0 doc units
512 = 0.5 doc units
1024 = 1 doc units
2048 = 2 doc units
Appears in: Typography (For Outline Fonts), Typography (For PowerFonts)
Offset of 1st strike-through line from glyph's baseline.
The interpretation of the value depends on the specified Underline/Strike-Through Line Positioning Mode:
* Mode 0 - Automatic: This value is ignored and should be set to 0 or omitted.
* Mode 2 - Manual (% of font height): The offset is manually specified and represents the percentage of the font height, multiplied by 1024/100.
Examples:
-2048 = -200%
-1024 = -100%
-512 = -50%
0 = 0%
512 = 50%
1024 = 100%
2048 = 200%
* Mode 4 - Manual (document units): The offset is manually specified and represents the offset in document units, multiplied by 1024.
Examples:
-2048 = -2 doc units
-1024 = -1 doc units
-512 = -0.5 doc units
0 = 0 doc units
512 = 0.5 doc units
1024 = 1 doc units
2048 = 2 doc units
Appears in: Typography (For Outline Fonts), Typography (For PowerFonts)
Offset of 2nd strike-through line from glyph's baseline.
The interpretation of the value depends on the specified Underline/Strike-Through Line Positioning Mode:
* Mode 0 - Automatic: This value is ignored and should be set to 0 or omitted.
* Mode 2 - Manual (% of font height): The offset is manually specified and represents the percentage of the font height, multiplied by 1024/100.
Examples:
-2048 = -200%
-1024 = -100%
-512 = -50%
0 = 0%
512 = 50%
1024 = 100%
2048 = 200%
* Mode 4 - Manual (document units): The offset is manually specified and represents the offset in document units, multiplied by 1024.
Examples:
-2048 = -2 doc units
-1024 = -1 doc units
-512 = -0.5 doc units
0 = 0 doc units
512 = 0.5 doc units
1024 = 1 doc units
2048 = 2 doc units
Appears in: Text Fragment, Text Line, Text Arc, Text Area, Text Design, Text Path
User-specific content (variable length)
This property allows end-user applications to store their own (i.e. user-specific) content with each text fragment. This property is suitable for user-specific content of variable length (e.g. strings, custom structures etc). D-Type Engine does not use or interpret this content in any way; the interpretation of the user-specific content is entirely up to the end-user application.
Note: Additional technical information about this property is available to customers with a support contract.
Appears in: Text Layout (Automatic)
Vertical alignment of glyphs/characters within the current text row.
Supported values:
0 = Baseline - character is vertically aligned with the baseline (the default behavior for most programs)
1 = Top - character's ascender is vertically aligned with the top edge of the current text row
2 = Middle - character's mid y point (a point that is half way between the ascender and descender) is vertically aligned with the mid y point of the current text row
3 = Bottom - character's descender is vertically aligned with the bottom edge of the current text row
Appears in: Text Area, Rich Text Area, Text Path, Rich Text Path
Text wrap method.
Supported values:
0 = Soft Wrap Enabled
1 = Soft Wrap Disabled - trim text after any character
2 = Soft Wrap Disabled - trim text only after space or some other breakable character (e.g. CJK) but not after a hyphen
3 = Soft Wrap Disabled - trim text only after space or some other breakable character (e.g. CJK) or after a hyphen
4 = Soft Wrap Disabled - trim text after any character and add a horizontal ellipsis
Appears in: 3D Model Data
This is the 3D model file in STL or D-Type format. In the future, additional 3D model formats might be supported.
Appears in: 3D Model Settings
Position of the camera. An array of 3 integers that represent the X, Y and Z coordinates of the camera in 3D model space, multiplied by 262144.
Sample values:
-550502, -1546650, 4508877
Appears in: 3D Model Settings
Rotation of the camera. An array of 3 integers that represent the yaw, pitch and roll of the camera in 3D model space, in radians and multiplied by 262144.
Sample values:
-1101005, -107741184, 0
Appears in: 3D Model Settings
Scale of the camera's X, Y, Z axis. An array of 3 integers that represent the multiplication factor of the camera's X, Y and Z axis, multiplied by 262144.
Sample values:
262144, 262144, 262144
Appears in: 3D Model Settings
An array of miscellaneous values. Currently this is a single element array.
The elements are interpreted as follows:
The 1st element specifies the distance in Z direction at which the distant fog effect reaches its maximum, multiplied by 262144. If not supplied, the default value is 100 (or 26214400 multiplied). For details, see the 6th, 7th, 8th, 9th and 10th element of the pd3DEnv property.
Appears in: 3D Model Settings
An array of projection parameters. Currently this is a 5-element array which defines, in the following order: 1) far clip plane, 2) near clip plane, 3) focal length, 4) film aperture width, and 5) film aperture height. All values except the first one (far clip plane) are multiplied by 262144. The values of this array will be described more thoroughly in the future. If the array is not supplied, the following default values are used.
Perspective Projection
far_clip_plane = 1000
near_clip_plane = 1.0 (or 262144 multiplied)
focal_length = 20.0 (or 5242880 multiplied)
film_aperture_w = 0.980 (or 256901 multiplied)
film_aperture_h = 0.735 (or 192676 multiplied)
Orthographic Projection
far_clip_plane = 1000000000
near_clip_plane = 0.1 (or 26214 multiplied)
focal_length = 20.0 (or 5242880 multiplied)
film_aperture_w = 0.980 (or 256901 multiplied)
film_aperture_h = 0.735 (or 192676 multiplied)
Appears in: 3D Model Settings
Miscellaneous bits.
If bit 1 is set, the projection is orthographic. Otherwise the projection is perspective (default).
Appears in: 3D Model Settings
Rasterization Method.
0 = Extreme 3D Rasterizer (this is the default)
1 = Standard 3D Rasterizer
Appears in: 3D Model Settings
Rendering quality level.
0 = Non-antialiased quality (this is the default)
1 = Antialiased quality level 1
2 = Antialiased quality level 2
3 = Antialiased quality level 3
4 = Antialiased quality level 4
5 = Antialiased quality level 5
Appears in: 3D Model Settings
Shading method.
0 = Draft (this is the default)
1 = Normal
Note that Normal shading is required to display textures and interpolated face colors. When shading method is Draft, textures will be displayed as opaque gray rectangles and face colors will be rendered using a flat color.
Appears in: 3D Model Settings
Culling.
0 = Culling Off (this is the default)
1 = Culling On
Appears in: 3D Model Settings
Z-Axis Clipping Method.
0 = Simple Z-Axis Clipping (if one vertex is out of view, the entire polygon is out of view; faster but imprecise)
1 = Standard Clipping (this is the default; a bit slower but precise)
Appears in: 3D Model Settings
Reserved for future. Must be set to 0.
Appears in: 3D Model Settings
Transparency threshold value in the 0 to 255 range.
The value indicates a transparency threshold at which the display of pixels at surface intersections switches from coarse (i.e. non-antialiased) to smooth (i.e. antialiased).
For example, a value of 128 indicates that any surfaces whose transparency value is 128 or less will generate smooth pixels at intersections with other surfaces, while any surfaces whose transparency value is greater than 128 will generate coarse pixels at intersections with other surfaces.
Consequently, when this value is 0, all visible pixels at surface intersections will always be rendered as coarse. Similarly, when this value is 255, all visible pixels at surface intersections will always be rendered as smooth. This is because all visible surfaces have a transparency value that is 0 or more but less than 255.
The transparency threshold value is only respected by Extreme 3D Rasterizer. Standard 3D Rasterizer does not respect this threshold but always renders pixels at surface intersections as smooth. However, the level of smoothness depends on the rendering quality level.
Sample values:
0
128
Appears in: 3D Model Settings
Maximum Z-Depth. This is the maximum number of z-depth levels 3D Rasterizer will allocate and be able to process. Must be at least 1. The default value is 16.
Sample values:
8
32
Appears in: 3D Model Settings
A 4-element array containing the R, G, B, X values of a specific background color for which the antialiased pixels should be optimized. If this array is not supplied or has no elements, antialiased pixels will look good on any background color.
This property has impact only when using antialiased rendering quality.
Appears in: 3D Model Settings
An array of parameters describing the environment that affects the final color of the 3D model. This is an array consisting of up to 10 elements. If this array is not supplied or has no elements, only ambient light is used to illuminate the model and no distant fog color is applied to the model. Otherwise, the elements are interpreted as follows:
The 1st element specifies the type of illumination applied to the model.
When this value is 0, only ambient light is used to illuminate the model. The 2nd, 3rd, 4th and 5th elements are ignored in this case. However, when this value is 1 or 2, one additional light source is used to illuminate the model. The value 1 means a "front" light source (placed at the same location as the camera), while the value 2 means a "back" light source (placed at the location which is at the same distance from the origin of 3D model space as the camera but in opposite direction). In both of these cases, the value of the 2nd element is the red component of the light (LR), the value of the 3rd element is the green component of the light (LG), and the value of the 4th element is the blue component of the light (LB). The value of the 5th element is the intensity of the light (LI).
Note that the component of the light (LR, LG, LB) and its intensity (LI) are all quantities in the 0 to 255 range.
The 6th element specifies the type of distant fog effect applied to the model.
When this value is 0, no distant fog color is applied to the model. The same is true if the size of the array is less than 6. The 7th, 8th, 9th and 10th elements are ignored in this case. However, when this value is 1, distant fog color is applied to the model. In this case, the value of the 7th element is the red component of the fog (FR), the value of the 8th element is the green component of the fog (FG), and the value of the 9th element is the blue component of the fog (FB). The value of the 10th element is the intensity of the fog (FI). Also, note that the first element of the pd3DBuff array in this case supplies the distance at which the distant fog effect reaches its maximum.
Note that the component of the fog (FR, FG, FB) and its intensity (FI) are all quantities in the 0 to 255 range.
Sample values:
0
1, 255, 166, 66, 128, 0
2, 255, 166, 66, 128, 1, 128, 128, 128, 200
1, 241, 235, 200, 128, 1, 64, 64, 64, 204
pdxByteCode - Description of this property is not available at this time.
pdxMagnitude - Description of this property is not available at this time.
pdxMediaClipID - Description of this property is not available at this time.
pdxMediaDataBytes - Description of this property is not available at this time.
pdxMediaDataFormat - Description of this property is not available at this time.
pdxMediaDescriptor - Description of this property is not available at this time.
pdxMediaInfoCurrentFrame - Description of this property is not available at this time.
pdxMediaInfoCurrentTime - Description of this property is not available at this time.
pdxMediaInfoDuration - Description of this property is not available at this time.
pdxMediaInfoFPS - Description of this property is not available at this time.
pdxMediaInfoFramesCount - Description of this property is not available at this time.
pdxMediaNextCommand - Description of this property is not available at this time.
pdxMediaNextFrame - Description of this property is not available at this time.
pdxMediaNextTime - Description of this property is not available at this time.
pdxMediaPlayState - Description of this property is not available at this time.
pdxMediaReserved1 - Description of this property is not available at this time.
pdxMediaReserved2 - Description of this property is not available at this time.
pdxMediaStartTime - Description of this property is not available at this time.
Vertical cell index.
Horizontal cell index.
Origin location for tables and matrices Bits 0 - 7: Vertical origin location 0 = Default (Bottom for tables, Matrix Middle for matrices) 1 = Top 2 = Middle 3 = Bottom 4 = Matrix Middle Bits 8 - 15: Horizontal origin location 0 = Default (Left) 1 = Left 2 = Center 3 = Right
pdxReserved1 - Description of this property is not available at this time.
Vertical alignment of a table cell.
Supported values:
0 = Default - Middle
1 = Top
2 = Middle
3 = Bottom
Default vertical alignment of cells in a table row.
Supported values:
0 = Default - Middle
1 = Top
2 = Middle
3 = Bottom