pdf viewer in mvc c# : Copy picture to pdf Library software class asp.net winforms azure ajax TET-4.2-manual17-part1736

10.8  Page Functions 171
layouteffort (Keyword) Controls the quality/performance trade-off of layout recognition. Layout recognition can be 
improved by spending more effort, but this may slow down operation. The layout recognition effort can 
be controlled with the keywords none, low, medium, high, and extra. Default: low
layouthint
(Option list) Inform the layout recognition engine about the presence of certain page layout elements:
subsummary
(Keyword) Informs the engine about the presence of subsummaries (marginalia) and possibly 
also their position. Supported keywords (default: none):
auto
No subsummary detection
left
Try to detect subsummaries on the left side of the page.
none
Try to detect subsummaries automatically.
right
Try to detect subsummaries on the right side of the page.
header
(Boolean) If true, the engine tries to detect page headers (default: false).
footer
(Boolean) If true, the engine tries to detect page footers (default: false).
skipengines
(List of keywords) Skip some of the available parsers for the page contents. A skipped engine never returns 
any data for this page. Skipping an engine which is not required will improve performance for applica-
tions which don’t need the data delivered by this engine (default: all engines are active):
text
(Keyword) Skip the text extraction engine.
image
(Keyword) Skip the image extraction engine.
structure-
analysis
(Option list; not for granularity=glyph) List of suboptions according to Table 10.14 for controlling page 
structure analysis.
topdown
(Option list) Specify a coordinate system with the origin in the top left corner of the visible page, and y 
coordinates which increase downwards; otherwise the default coordinate system with the origin in the 
lower left corner will be used. Enabling topdown coordinates enables the same coordinate system which 
is displayed in Acrobat. Supported suboptions:
input
(Boolean) If true, enable coordinates for the following items (default: false):
page options includebox, excludebox
output
(Boolean) If true, enable coordinates for the following items (default: false):
TET_char_info: y, alpha, beta
TET_image_info: y, alpha, beta
TETML: Glyph/@y, Glyph/@alpha, Glyph/@beta, Box/@lly, Box/@ury, PlacedImage/@y, 
PlacedImage/@alpha, PlacedImage/@beta
Table 10.10 Page options for TET_open_page( ) and TET_process_page( )
option
description
Copy picture to pdf - copy, paste, cut PDF images in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Detailed tutorial for copying, pasting, and cutting image in PDF page using C# class code
paste picture into pdf preview; how to copy a picture from a pdf to a word document
Copy picture to pdf - VB.NET PDF copy, paste image library: copy, paste, cut PDF images in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
VB.NET Tutorial for How to Cut or Copy an Image from One Page and Paste to Another
how to copy picture from pdf; how to copy image from pdf to word document
172
Chapter 10:  TET Library API Reference
Table 10.11 Suboptions for the contentanalysis option of TET_open_page( ) and TET_process_page( )
option
description
bidi
(Keyword; will be ignored for granularity=glyph; has an effect only if right-to-left characters are pres-
ent on the page) Control the inverse Bidi algorithm which reorders right-to-left and left-to-right text in a 
chunk (default: logical):
visual
Keep RTL and LTR characters in a chunk in visual order, i.e. do not apply the inverse Bidi 
algorithm
logical
Apply the inverse Bidi algorithm to bring the characters in a chunk in logical order.
bidilevel
(Keyword) Specify the page’s base level (i.e. the main direction of text progression) for the inverse Bidi al-
gorithm (default: auto):
auto
Determine the main direction of text progression heuristically based on the content.
ltr
Assume left-to-right as main direction of text progression (e.g. Latin documents)
rtl
Assume right-to-left as main direction of text progression (e.g. Hebrew or Arabic documents)
dehyphenate
(Boolean) If true, hyphenated words will be identified and the text fragments surrounding the hyphen 
will be combined. The hyphen itself will be treated according to the keephyphens option. Default: true
dropcapsize
(Float) The minimum size at which large glyphs will be recognized as a drop cap. Drop caps are large 
characters at the beginning of a zone that are enlarged to »drop« down several lines. They will be 
merged with the remainder of the zone and form part of the first word in the zone. Default: 35
dropcapratio (Float) The minimum ratio of the font size of drop caps and neighboring text. Large characters will be rec-
ognized as drop caps if their size exceeds dropcapsize and the font size quotient exceeds dropcapratio. 
In other words, this is the number of text lines spanned by drop caps. Default: 4 (drop caps spanning 
three lines are very common, but additional line spacing must be taken into account)
ideographic
(Keyword) Control word boundary detection for ideographic characters. It is recommended to set this op-
tion to keep although the default is split for compatibility reasons (default: split):
keep
Ideographic characters generally don’t constitute a word boundary. Punctuation and the 
transition between ideographic and non-ideographic characters still constitute a word 
boundary. For granularity=word ideographic comma U+3001 and ideographic full stop 
U+3002 also constitute word boundaries. For granularity=page no line separator will be 
inserted at the end of a line.
split
Ideographic characters always constitute a word boundary.
includebox-
order
(Integer) When multiple include boxes have been supplied (see option includebox), this option controls 
how the order of boxes affects the Wordfinder (default: 0):
0
Ignore include box ordering when analyzing the page contents. The result will be the same as 
if all the text outside the include boxes was deleted. This is useful for eliminating unwanted 
text (e.g. headers and footers) while not affecting the Wordfinder in any way.
1
Take include box ordering into account when creating words and zones, but not for zone 
ordering. A word will never belong to more than one box. The resulting zones will be sorted in 
logical order. In case of overlapping boxes the text will belong to the box which is earlier in 
the list. Other than that, the ordering of include boxes in the option list doesn’t matter. This 
setting is useful for extracting text from forms, extracting text from tables, or when include 
boxes overlap for complicated layouts.
2
Consider include box ordering for all operations. The contents of each include box will be 
treated independently from other boxes, and the resulting text will be concatenated 
according to the order of the include boxes. This is useful for extracting text from forms in a 
particular ordering, or extracting article columns in a magazine layout in a predefined order. 
In these cases advance knowledge about the page layout is required in order to specify the 
include boxes in appropriate order.
C# PDF insert image Library: insert images into PDF in C#.net, ASP
How to Insert & Add Image, Picture or Logo on PDF Page Using C#.NET. Import graphic picture, digital photo, signature and logo into PDF document.
copy image from pdf reader; how to copy pictures from pdf
VB.NET PDF insert image library: insert images into PDF in vb.net
project. Import graphic picture, digital photo, signature and logo into PDF document. Add images to any selected PDF page in VB.NET.
paste image on pdf preview; pdf cut and paste image
10.8  Page Functions 173
keephyphen-
glyphs
(Boolean) If true and dehyphenate=true the hyphen glyph between parts of dehyphenated words will 
be kept in the list of glyphs returned by TET_get_char_info( ) and the Glyph element in TETML. This is use-
ful for applications which need detailed information about the position of hyphens, e.g. exactly replac-
ing text on the page. Note that this is different from fold={{_dehyphenation remove} which only re-
moves hyphens from the logical text returned by TET_get_text( ), but does not affect glyphs. Default: 
false
linespacing
(Keyword) Specify the typical vertical distance between text lines within a paragraph: small, medium, or 
large (default: medium)
maxwords
(Integer or keyword) If the number of words on the page is not greater than the specified number (the 
keyword unlimited means that no limit will be active) the detected zones on the page will be merged 
appropriately and sorted. If the number of words on the page is greater than the specified number, no 
zones will be built, and words will be retrieved in page content reading order. Processing will be faster in 
the latter case, but the ordering of the retrieved words may not be optimal. Setting this option to 
unlimited is recommended for large pages with many words, such as newspapers. Default: 5000
merge
(Integer) Controls strip and zone merging (default: 2):
0
No merging after strip creation. This can significantly increase processing speed, but may 
create less than optimal output, and prevent some shadows from being detected properly.
1
Simple strip-into-zone merging: strips will be merged into a zone if they overlap this 
particular zone, but don’t overlap strips other than the next one (to avoid zone overlapping 
for non-shadow cases).
2
Advanced zone merging for out-of-sequence text: in addition to merge=1, multiple 
overlapping zones will be combined into a single zone, provided the text contents of both 
zones do not overlap.
numeric-
entities
(Keyword) Control word boundary detection for numeric entities such as numbers, fractions, and time 
(default: keep):
split
Split the entity according to the punctuationbreaks suboption.
keep
Keep the entity as a whole word.
shadow-
detect
(Boolean) If true, redundant instances of overlapping text fragments which create a shadow or fake bold 
text will be detected and removed. Default: true
punctuation-
breaks
(Boolean; only for granularity=word) If true, punctuation characters which are placed close to a letter 
will be treated as word boundaries, otherwise they will be included in the adjacent word. For example, 
this option affects treatment of URLs and mail addresses Default: true
superscript
(Integer) Controls subscript and superscript detection (default: 2):
0
No subscript and superscript detection
1
Simple subscript and superscript detection
2
Advanced algorithm for subscript and superscript detection
Table 10.11 Suboptions for the contentanalysis option of TET_open_page( ) and TET_process_page( )
option
description
VB.NET TIFF: How to Draw Picture & Write Text on TIFF Document in
Copy the demo codes and run your project to see New RaterEdgeDrawing() drawing.Picture = "RasterEdge" drawing & profession imaging controls, PDF document, tiff
how to cut pdf image; how to copy an image from a pdf to powerpoint
VB.NET Image: Image Cropping SDK to Cut Out Image, Picture and
first! VB.NET Image & Picture Cropping Application. Do you need to save a copy of certain part of an image file in a programming way?
how to paste a picture into a pdf; copy pdf picture to powerpoint
174
Chapter 10:  TET Library API Reference
Table 10.12 Suboptions for the layoutanalysis option of TET_open_page( ) and TET_process_page( )
option
description
layout-
astable
(Boolean) If true, the layout recognition engine will treat the zones on the page as one or more tables. 
The minimum number of columns which is required to consider the sequence as a table depends on the 
document style. If false, supertable recognition will be disabled (default: true).
layout-
columnhint
(Keyword) This option may improve zone reading order detection for complex layouts. Supported key-
words (default: multicolumn):
multicolumn
The page contains multi-column text; zones will be sorted column by column.
none
No hint available; zone ordering will be determined by page content order.
singlecolumn
The page contains single-column text; zones will be sorted row by row. This keyword should 
be used with layouteffort=low.
layoutdetect (Integer) Specifies the depth of recursive layout recognition (default: 1):
0
No layout recognition.
1
Layout recognition for the whole page. This is sufficient for the vast majority of documents.
2
Layout recognition for the results of level 1. This is required for layouts with different multi-
column sublayouts and titles on different parts of the page as well as multi-paragraph tables.
3
Layout recognition for the results of level 2. This is required only for very complex layouts.
layoutrow-
hint
(Option list) Control layout row processing. Supported options (default: none):
full
Enable layout row processing.
none
Disable layout row processing.
separation (Keyword) Enable layout row processing, but disable it if layout recognition suspects a 
supertable. The following suboptions can be supplied:
preservecolumns
Try to keep vertical columns based on the geometric relationship between zones. 
This is recommended if zones within columns are separated by large gaps (e.g. 
caused by images).
thick
Try to combine neighboring zones and place them in the same layout row. This re-
sults in a smaller number of larger layout rows. This is recommended for complex 
layouts, such as magazines and papers where paragraphs within columns are sep-
arated from each other by more than the font size, and for layouts with several 
multi-column articles one under the other.
thin
Try to separate neighboring zones and place them in different layout rows. This re-
sults in a larger number of smaller layout rows.
Example: layoutanalysis = {layoutrowhint={full separation=thick}}
mergetables (Integer) Tables with a single row will be skipped during table recognition, and treated as regular zones. If 
two sequential zones are tables (even with only a single row) they can be combined. (default: none):
down
Combine downstairs only.
none
Don’t merge.
up
Combine upstairs only.
updown
Combine in both directions.
splithint
(Keyword or option list) Activate special treatment of double-page spreads (or even pages consisting of 
more spreads). The page may be divided vertically or horizontally in two or more sections. The keyword 
includebox means that the split areas will be defined by the includebox option. Alternatively the fol-
lowing options can be supplied:
x
(Float) Divider for the x axis, e.g. 0.5 for a double-page spread, 0.33 for a three-page spread.
y
(Float) Divider for y axis.
standalone-
fontsize
(Float) Minimum font size for huge glyphs. Huge glyphs form single-glyph strips, and will not be com-
bined with other zones (default: 70).
VB.NET Image: Image Resizer Control SDK to Resize Picture & Photo
NET Method to Resize Image & Picture. Here we code demo, which you can directly copy to your provide powerful & profession imaging controls, PDF document, image
copy image from pdf to pdf; paste jpeg into pdf
C# HTML5 Viewer: Deployment on ASP.NET MVC
under Views according to config in picture above. RasterEdge.XDoc.PDF.HTML5Editor. dll. Open RasterEdge_MVC3 DemoProject, copy following content to your project:
paste image into preview pdf; how to copy images from pdf
10.8  Page Functions 175
C++ void close_page(int page)
C#  Java void close_page(int page)
Perl PHP close_page(long page)
VB  RB Sub close_page(page As Long)
C void TET_close_page(TET *tet, int page)
Release a page handle and all related resources.
page A valid page handle obtained with TET_open_page( ).
Details All open pages of the document will be closed automatically when TET_close_document( ) 
is called. It is good programming practice, however, to close pages explicitly when they 
are no longer needed. Closed page handles must no longer be used in any function call.
supertable-
columns
(Integer; only if layoutastable=true) Minimum number of columns in a layout row to consider the se-
quence of zones as a supertable. When a table is created from paragraphs, these columns are recognized 
as separate zones instead of being combined. As a consequence of this, layout recognition can identify 
these zone sequences as a table (default: 4).
tabledetect
(Integer) Specifies the depth of recursive table recognition (default: 1):
0
No table recognition.
1
Table recognition for each zone.
2
Table recognition for each table cell detected in level 1. This is required for nested tables and 
resolving row spans.
Table 10.13 Suboptions for the imageanalysis option of TET_open_page( ) and TET_process_page( )
option
description
smallimages (Option list) Control small image removal. Small images must often be ignored since they are artifacts 
and not real images. Supported options:
disable
(Boolean) If true, small image removal is disabled. Default: false
maxarea (Float) Maximum area (=width x height) in pixels of an image to be considered as a small 
image. Default: 500
maxcount (Integer) Maximum allowed number of small images. If more small images are found all of 
them are removed. Default: 50
merge
(Option list) Control image merging. This process combines adjacent images which together may form a 
single larger image. This is useful for multi-strip images where the individual strips have been preserved 
in the PDF, and for background images which are broken into a large number of very small images. 
Supported options:
disable
(Boolean) If true, image merging will be disabled. Default: false
gap
(Float) Maximum gap in points between two images to be considered for merging. Default: 
1.0 (not 0.0 because of unavoidable inaccuracies in the position calculations)
Table 10.12 Suboptions for the layoutanalysis option of TET_open_page( ) and TET_process_page( )
option
description
VB.NET PDF remove image library: remove, delete images from PDF in
edit, C#.NET PDF pages extract, copy, paste, C# Support removing vector image, graphic picture, digital photo, scanned or all image objects from PDF document in
how to copy pdf image; how to copy images from pdf file
C# PDF remove image library: remove, delete images from PDF in C#.
Image: Copy, Paste, Cut Image in Page. Link: Edit Support removing vector image, graphic picture, digital photo remove multiple or all images from PDF document.
how to paste a picture into pdf; how to copy and paste an image from a pdf
176
Chapter 10:  TET Library API Reference
Table 10.14 Suboptions for the structureanalysis option of TET_open_page( ) and TET_process_page( )
option
description
bullets
(List of option lists; only if list=true) Specifies combinations of Unicode characters and font names 
which are used as bullet characters in lists. Supported suboptions:
bulletchars
(List of Unicode values) One or more Unicode values for the bullet characters. If this suboption 
is not supplied, all characters using the specified fontname will be treated as bullet characters.
fontname (String) Name of the font from which bullet characters are drawn. If this suboption is not 
supplied, the characters specified in the bulletchars suboption will always be treated as 
bullet characters.
Examples:
bullets={{fontname=ZapfDingbats}}
bullets={{bulletchars={U+2022}}
bullets={{fontname=KozGoPro-Medium bulletchars={U+2460 U+2461 U+2462 U+2463 U+2464}}
list
(Boolean) Enable list recognition (default: false). If false, no information about list structure will be de-
termined.
paragraph
(Boolean) Enable paragraph recognition (default: true). If false, no information about paragraph struc-
ture will be determined.
table
(Boolean) Enable table recognition (default: true). If false, the table recognition engine will be disabled.
10.9  Text and Metrics Retrieval Functions 177
10.9 Text and Metrics Retrieval Functions
C++ wstring get_text(int page)
C#  Java String get_text(int page)
Perl PHP string get_text(long page)
VB  RB Function get_text(page As Long) As String
C const char *TET_get_text(TET *tet, int page, int *len)
Get the next text fragment from a page’s content.
page A valid page handle obtained with TET_open_page( ).
len (C language binding only) A pointer to a variable which will hold the length of the 
returned string depending on the outputformat option of TET_set_option( ):
If outputformat=utf8 the length is reported as number of Unicode characters. The 
number of bytes in the null-terminated string (which is identical to the number of 8-bit 
code units) can be determined with the strlen( ) function.
If outputformat=utf16 the length is reported as number of 16-bit code units; surrogate 
pairs are counted as two code units. The number of bytes in the string is 2*len.
If outputformat=utf32 the length is reported as number of 32-bit code units (which is 
identical to the number of Unicode characters). The number of bytes in the string is 
4*len.
Returns A string containing the next text fragment on the page. The length of the fragment is 
determined by the granularity option of TET_open_page( ). Even for granularity=glyph the 
string may contain more than one character (see Section 7.1, »Important Unicode Con-
cepts«, page 91).
If all text on the page has been retrieved an empty string or null object will be re-
turned (see below). In this case TET_get_errnum( ) should be called to find out whether 
there is no more text because of an error on the page, or because the end of the page has 
been reached.
Bindings C language binding: the result is provided as null-terminated UTF-8 (default) or UTF-16/
UTF-32 string according to the outputformat option of TET_set_option( ). On i5/iSeries and 
zSeries EBCDIC-encoded UTF-8 can also be selected, and is enabled by default. The re-
turned data buffer can be used until the next call to this function. If no more text is 
available a NULL pointer and *len=0 will be returned.
C++ and COM: the result is provided as Unicode string in UTF-16 format (wstring in C++). 
If no more text is available an empty string will be returned.
Java, .NET and Objective-C: the result is provided as Unicode string. If no more text is 
available a null (nil in Objective-C) object will be returned.
Perl, PHP, Python and Ruby language bindings: the result is provided as UTF-8 (default) 
or UTF-16/UTF-32 string according to the outputformat option of TET_set_option( ). In Py-
thon 3 UTF-16/UTF-32 results are returned as bytes. If no more text is available a null ob-
ject will be returned.
REALbasic: the result is provided as Unicode string. If no more text is available an empty 
string will be returned.
178
Chapter 10:  TET Library API Reference
RPG language binding: the result is provided as Unicode string. If no more text is avail-
able NULL will be returned.
C++ const TET_char_info *get_char_info(int page)
C#  Java int get_char_info(int page)
Perl PHP object get_char_info(long page)
VB  RB Function get_char_info(int page) As Long
C const TET_char_info *TET_get_char_info(TET *tet, int page)
Get detailed information for the next glyph in the most recent text chunk.
page A valid page handle obtained with TET_open_page( ).
Note The name of this function is a misnomer. It should better be called TET_get_glyph_info( ) since 
it reports information about visual glyphs on the page, not the corresponding Unicode 
characters.
Returns If no more glyphs are available for the most recent text fragment returned by TET_get_
text( ), a binding-specific value will be returned. See section Bindings below for more de-
tails.
Details This function can be called one or more times after TET_get_text( ). It will advance to the 
next glyph for the current text chunk associated with the supplied page handle (or re-
turn nothing if there are no more glyphs), and provide detailed information for this 
glyph. There will be N > 0 successful calls to this function (corresponding to N glyphs) 
for a text chunk with M logical characters. The relationship between N and M depends 
on the granularity:
>For granularity=glyph each text chunk corresponds to a single glyph, i.e. N = 1. One 
glyph corresponds to one character in many cases, i.e. M = 1. However, for ligature 
glyphs multiple characters correspond to a single glyph, i.e. M > 1 and TET_get_char_
info( ) must be called more than once.
>For granularities other than glyph a sequence of glyphs results in a sequence of char-
acters, where each glyph may contribute to 0, 1, or more characters. The sequence of 
glyphs serves as raw material for the sequence of Unicode characters. In other words, 
there is no known relationship between N and M. The relationship between N and M 
may be influenced by content analysis (e.g. hyphens are removed by the dehyphen-
ation process) or Unicode postprocessing (e.g. characters are added or deleted be-
cause of a folding).
For granularities other than glyph this function advances to the next glyph which con-
tributes to the chunk returned by the most recent call to TET_get_text( ). This way it is 
possible to retrieve glyph metrics when the Wordfinder is active and a text chunk may 
contain more than one character. In order to retrieve all glyph details for the current 
text chunk this function must be called repeatedly until it returns no more info.
The glyph details in the structure or properties/fields are valid until the next call to TET_
get_char_info( ) or TET_close_page( ) with the same page handle (whichever occurs first). 
Since there is only a single set of glyph info properties/fields per TET object, clients 
must retrieve all glyph info before they call TET_get_char_info( ) again for the same or 
another page or document.
10.9  Text and Metrics Retrieval Functions 179
Bindings C and C++ language bindings: If no more glyphs are available for the most recent text 
chunk returned by TET_get_text( ), a NULL pointer will be returned. Otherwise, a pointer 
to a TET_char_info structure containing information about a single glyph will be re-
turned. The members of the data structure are detailed in Table 10.15.
COM, Java, .NET, and Objective-C language bindings: -1 will be returned if no more 
glyphs are available for the most recent text chunk returned by TET_get_text( ), other-
wise 1. Individual glyph info can be retrieved from the TET properties/public fields ac-
cording to Table 10.15. All properties/fields contain the value -1 (the unknown field con-
tains false) if they are accessed although the function returned -1.
Perl and Python language bindings: 0 will be returned if no more glyphs are available 
for the most recent text chunk returned by TET_get_text( ), otherwise a hash containing 
the keys listed in Table 10.15. Individual glyph info can be retrieved with the keys in this 
hash.
PHP language binding: an empty (null) object will be returned if no more glyphs are 
available for the most recent text chunk returned by TET_get_text( ), otherwise an object 
containing the fields listed in Table 10.15. Individual glyph info can be retrieved from 
the member fields of this object. Integer fields in the glyph info object are implemented 
as long in the PHP language binding.
REALbasic binding: nil will be returned if no more glyphs are available for the most re-
cent text chunk returned by TET_get_text( ), otherwise a TET_char_info object containing 
the members listed in Table 10.15. Individual glyph info can be retrieved with the keys in 
this object. The attributes field is called attrs in the REALbasic binding to work around a 
REALbasic interface problem.
Ruby binding: nil (null object) will be returned if no more glyphs are available, and a 
TET_char_info object otherwise.
Table 10.15 Members of the TET_char_info structure (C, C++, Ruby), equivalent public fields (Java, PHP, Objective-C), keys 
(Perl) or properties (COM and .NET) with their type and meaning. See »Glyph metrics«, page 74, and Figure 6.3 for more 
details.
property/
field name
explanation
uv
(Integer) UTF-32 Unicode value for the current glyph. For granularities other than glyph this may be an 
artificial or intermediate value which has no relationship to the final text chunk. For granularity=glyph 
the sequence of Unicode values for the glyphs is identical to the logical text, but for other granularities it 
may be modified by various processing steps.
type
(Integer) Type of the character. The following types describe real characters which correspond to a glyph 
on the page. The values of all other properties/fields are determined by the corresponding glyph:
0
Normal character which corresponds to exactly one glyph
1
Start of a sequence (e.g. ligature)
The following types describe artificial characters which do not correspond to a glyph on the page. The x 
and y fields will specify the most recent real character’s endpoint, the width field will be 0, and all other 
fields except uv will contain the values corresponding to the most recent real character:
10
Continuation of a sequence (e.g. ligature)
11
(Deprecated and unused)
12
Inserted word, line, or zone separator
180
Chapter 10:  TET Library API Reference
attributes
1
(Integer) Glyph attributes expressed as bits which can be combined:
bit 0
Geometric or semantic subscript
bit 1
Geometric or semantic superscript
bit 2
Drop cap character (initial large character at the start of a paragraph)
bit 3
Glyph- or word-based shadow duplicate of this glyph has been removed
bit 4
Glyph represents last character before hyphenation point
bit 5
Hyphenation artifact (i.e. the hyphen character) which was removed unless
contentanalysis={keephyphenglyphs=true} was specified.
bit 6
Glyph represents the character after hyphenation point
unknown
(Boolean, in C, C++ and Perl: integer) Usually false (0), but will be true (1) if the original glyph could not 
be mapped to Unicode and has been replaced with the character specified as unknownchar.
x, y
(Double) Position of the glyph’s reference point. The reference point is the lower left corner of the glyph 
box for horizontal writing mode, and the top center point for vertical writing mode. For artificial charac-
ters the x, y coordinates will be those of the end point of the most recent real character.
width
(Double) Width of the corresponding glyph (for both horizontal and vertical writing mode). For artificial 
characters (i.e. inserted separators with type=12 and hyphenation artifacts with attribute bit 5 set) the 
width is 0.
alpha
(Double) Direction of inline text progression in degrees measured counter-clockwise (or clockwise for top-
down coordinates). For horizontal writing mode this is the direction of the text baseline; for vertical writ-
ing mode it is the digression from the standard vertical direction. The angle will be in the range 
-180° <alpha
³
+180°. For standard horizontal text as well as for standard text in vertical writing mode 
the angle will be 0°.
beta
(Double) Text slanting angle in degrees measured counter-clockwise (or clockwise for topdown coordi-
nates), relative to the perpendicular of alpha. The angle will be 0° for upright text, and negative for itali-
cized (slanted) text (positive for topdown coordinates). The angle will be in the range -180° < beta 
³
180°, 
but different from 
±
90°. If abs(beta) > 90° the text is mirrored at the baseline.
fontid
(Integer) Index of the font in the fonts[] pseudo object (see the pCOS Path Reference). fontid is never 
negative.
fontsize
(Double) Size of the font (always positive); the relation of this value to the actual height of glyphs is not 
fixed, but may vary with the font design. For most fonts the font size is chosen such that it encompasses 
all ascenders (including accented characters) and descenders.
textrendering
(Integer) Text rendering mode:
0
fill text
1
stroke text (outline)
2
fill and stroke text
3
invisible text (often used for OCR results)
4
fill text and add it to the clipping path
5
stroke text and add it to the clipping path
6
fill and stroke text and add it to the clipping path
7
add text to the clipping path
1. In the REALbasic binding this field is called attrs.
Table 10.15 Members of the TET_char_info structure (C, C++, Ruby), equivalent public fields (Java, PHP, Objective-C), keys 
(Perl) or properties (COM and .NET) with their type and meaning. See »Glyph metrics«, page 74, and Figure 6.3 for more 
details.
property/
field name
explanation
Documents you may be interested
Documents you may be interested