GdPicture.NET.14.Imaging attempt to decode extended Code 39 sequences. This is a port of private static String decodeExtended(CharSequence encoded) throws FormatException. see: https://github.com/zxing/zxing/blob/master/core/src/main/java/com/google/zxing/oned/Code93Reader.java 'see: http://en.wikipedia.org/wiki/Code_39 #Full ASCII Code 39. GetOptimalBitmap retrieves the optimal bitmap for barcode recognition. The optimal image is black and white or 8bpp grayscale with a square resolution. The input image. Indicates whether we have a bitonal input or not. The region of interest set by then user. Indicates whether we have a roi or a full page reading. To retrieve the bitmap for the recognition. The horizontal scaling factor. The vertical scaling factor. The error code RedetectBarcodeThresholdedImage redetects a barcode using an image binarized with the provided thresholding mode and value. The process is limited to the barcode area. The bitmap that is read. The identifier for the barcode to redetect The left coordinate of the area. The top coordinate of the area. The width of the area. The height of the area. The error code ComputeBestThreshold performs an histogram based analysis of the region of interest within the image to determine the best binarization parameters. The threshold value is the value with half of the pixels above and half of the pixels below. The image. The left coordinate of the region of interest. The right coordinate of the region of interest. The width of the region of interest. The height of the region of interest. To retrieve the threshold value. The threshold mode. GetBarcodeArea retrieves the coordinates of an area surrounding the barcode. The area is slightly larger than the zone retrieved by the barcode engine. The index of the barcode. The image containing the barcode. To retrieve the left coordinate of the area. To retrieve the top coordinate of the area. To retrieve the width of the area. To retrieve the height of the area. true if a valid area is detected otherwise returns false. IntersectsExistingBarcode tests whether or not the provided area intersects an existing barcode. The left coordinate of the area. The top coordinate of the area. The width of the area. The height of the area. true if the area intersects an existing barcode otherwise returns false. HasIntersection tests whether or not the barcode intersects the provided area. The identifier for the barcode. The left coordinate of the area. The top coordinate of the area. The right coordinate of the area. The bottom coordinate of the area. Returns the string encoded in the barcode The index of the barcode The string encoded in the barcode at given index Returns the string encoded in the barcode The index of the barcode The string encoded in the barcode at given index Redetects the DataMatrix barcodes in an image using the possible locations stored in the first pass over the image. It process again only the saved locations, scaled. The image The region of interest Returns the string encoded in the barcode The index of the barcode The string encoded in the barcode at given index Returns the string encoded in the barcode The index of the barcode The string encoded in the barcode at given index Redetects the PDF417 barcodes in an image using the possible locations stored in the first pass over the image. It process again only the saved locations, scaled. The image The region of interest Returns the string encoded in the barcode The index of the barcode The string encoded in the barcode at given index Redetects the QrCodes in an image using the possible locations stored in the first pass over the image. It thresholds only the saved locations, using a different thresholding mode than the normal pass over the image. The image The region of interest Returns the photometric of the image. 0 = WhiteIsZero. For bilevel and grayscale images: 0 is imaged as white. 1 = BlackIsZero.For bilevel and grayscale images: 0 is imaged as black. 2 = RGB.RGB value of(0,0,0) represents black, and (255, 255, 255) represents white, assuming 8-bit components.The components are stored in the indicated order: first Red, then Green, then Blue. 3 = Palette color. Range [0 (worst score); 100 (best score)] 0 is worst, 100 is best Converts this GdPictureBitmap to a GdPictureImage object. Specifies if the input bitmap instance must be released. The generated GdPictureImage object. A member of the GdPictureStatus enumeration. This method automatically releases the provided dib from the memory in case of failure. Also the number of items into histoR, histoG, histoB, histoHue, histoSat, histoVal histograms. Also the number of items into histoMaskedR, histoMaskedG, histoMaskedB, histoMaskedHue, histoMaskedSat, histoMaskedVal histograms. Unitary barcode quality evaluation. Result is in the range [0 - lower quality; 100 - higher quality]. Holds the properties of a paragraph. This is the data structure offered to the upper layer. The bounding box. The bounding box based on Font metrics. The number of text lines within the paragraph. The first text line index. 0: NoList, 1: UnorderedList, 2: OrderedList The nesting level of the paragraph when is not 0. This value is 0-based: 0 for a top-level list item, 1 for an item nested one level deeper, and so on. Higher values therefore map to deeper indentation/nesting in the generated markup. For paragraphs that are not list items ( == 0), this value is not meaningful. True when this paragraph was synthesized to hold the words of a single table cell (set by ). Markdown / text generators that render the parent separately should skip these paragraphs to avoid duplicating the cell text both as a paragraph and as a table cell. Sets the cached parent block for O(1) lookup optimization. Internal use only - called during PageLayout construction. Holds the properties of a hyperlink. Holds the properties of an image. Alternate text (/Alt) recovered from the image XObject; used for the PDF/UA Figure alternate description. Holds the properties of a path. Holds the properties of a block. This is the data structure offered to the upper layer. The bounding box. The bounding box based on Font metrics. The initial isolated table box from which this block has been generated. The number of paragraphs within the block. The index of the first paragraph of the block in the result. The writing direction. The orienation. The type. The skew angle. The blobs line index, if sorted. Specifies if the block has been detected from a negative part. Holds the properties of a character. This is the data structure offered to the upper layer. The bounding box. The confidence. Holds the properties of a text line. This is the data structure offered to the upper layer. The bounding box. The number of words within the text lines. The index of the first word in the result. Drops phantom edge columns where no cells contain any words. Table detection (vector lines, text alignment, etc.) sometimes overshoots the real content boundary, producing empty leading/trailing columns that hurt downstream consumers (markdown emit, accessibility, TEDS scoring). Edges only — interior empty columns are preserved (those are usually intentional gaps in real tables). Rows are intentionally NOT trimmed: empty trailing rows often correspond to over-merged mega-cells where the analyzer collapsed multiple logical rows into one and left empty placeholders for the rest. Removing those placeholders hurts row-count alignment with the ground truth and TEDS-S scoring, even though it's semantically cleaner. Page layout used to resolve cell contents. Attaches orphan label paragraphs sitting to the LEFT of the table as a new leftmost column. Useful for financial-statement and SEC-balance-sheet patterns where the table-extraction stage detects only the numeric columns because the label-to-numbers gap is wider than the inter-numeric gap. The result is a table with an empty col 0 plus orphan paragraphs ABOVE the table containing the row labels — bad for downstream consumers (LLMs, markdown emit, TEDS scoring). Only fires when: - The existing leftmost column has NO word content (otherwise we'd prepend a duplicate column). - At least orphan paragraphs are fully to the left of the table within of it, with Y range overlapping the table's vertical span. Side effect: the consumed paragraphs are marked so downstream renderers don't emit them separately. Page layout used to resolve words and paragraphs. Holds the properties of a word. This is the data structure offered to the upper layer. The bounding box. The bounding box based on Font metrics. The base line start point. The base line end point. The number of characters within the word. The index of the first character of the word in the result. The number of spaces before the word. Specifies if font style is bold. Specifies if font style is italic. Specifies if the font has underline decoration. Specifies the underline color. Specifies if the underline decoration is wave. Specifies if the font has underline decoration. Specifies the highlight color. Specifies if font has strikethrough decoration. The is monospace flag. The is serif flag. The is small caps flag. The size of the font, in points. The universal fontID; The font family name. The horizontal scaling. Default 1. Should always be > 0. Less than 1 is condensed more than 1 is expanded. The text rendering mode. The text color in ARGB format. The text stroke color in ARGB format. The word confidence in the range [0 - 100]. The word segmentation confidence in the range [0 - 1]. The PDF font object number; Holds the properties of a character. This is the data structure offered to the upper layer. The bounding box. The bounding box, with floating-point precision. The confidence. The character value. The image regions. The images. The paths. The blocks. The paragraphs. The text lines. The words. The characters. The hyperlinks. The height of the page result, in pixels. The width of the page result, in pixels. The horizontal resolution of the page result, in dot per inch. The vertical resolution of the page result, in dot per inch. The transformation matrix to be used to convert coordinates from OCR space to input layout space. The transformation matrix to be used to convert coordinates from OCR space to input image space. The transformation matrix to be used to convert coordinates from OCR space to input image space. Without skew. The transformation matrix to be used to convert coordinates from OCR space to PDF space. The standard rotation applied to the page before starting the OCR process. The angle rotation applied to the page before starting the OCR process. Specifies if blocks are 2D-sorted. Regions identified as charts/figures during table detection (suppressed table candidates). Used to regroup paragraphs within chart bounds for correct reading order. Horizontal-rule brackets detected during path-based table scanning — pairs of parallel h-lines that share an X-range and bracket a vertical region (booktabs / academic-table style: top rule, optional midrule, bottom rule, no v-lines). Used by 's text-based detector to snap table region Y bounds to the rule positions so header rows above the data don't get emitted as stand-alone paragraphs outside the table. Gets the table elements from the page layout. Attempts to extract the title from the page layout. Gets the count of table elements in the page layout. Determines whether the specified bounding box intersects with a text field. Determines whether the specified table intersects with another decoded table. Gets all decoded tables that intersect with the specified bounding box. Creates a page layout from a GdPicture layout structure. Creates a page layout from a GdPicture OCR result. Serializes the page layout to a JSON string. Serializes the page layout to a stream. Creates a page layout from a stream. Creates a page layout from a JSON string. Post-processes the OCR layout after recognition. Determines whether a character can be the last character of a horizontal left-to-right word. Call this method when internal layout elements have been updated. Removes empty paragraphs and blocks from the page layout. This is the minimal necessary refresh operation for CreateFromTextBlockOptimized. Flat iteration over all words — no paragraph/line BBox pre-filtering. Use when the search bbox may fall outside paragraph/line BBox (e.g. underlines below baseline). Creates a page layout from a text block with optimizations for performance and accuracy. This optimized version calculates all bounding boxes directly from scaled glyph boxes during construction, eliminating the need for full refresh post-processing. It also caches relationship lookups (IsVertical, block-paragraph, line-paragraph) for O(1) access. Strips exact words claimed by a table from their parent text lines/paragraphs. Removes empty lines and empty paragraphs; recalculates bboxes for survivors. Reassigns words claimed by a table from their original paragraphs into new per-cell paragraphs. Fully rebuilds Words, Characters, TextLines, and Paragraphs lists in correct Refresh walk order, then calls Refresh(). Computes and assigns the heading levels for the given paragraphs based on the provided heading descriptions. This heuristic tries to determine the average character size based on a collection of blocks. True in case of success, false otherwise. 4 sides, whatever they are, can be rejected. 0 side rejection allowed. Allows foreground color in addition of background and light colors. Specifies a block properties. The left coordinate of the bounding box, in pixels. The top coordinate of the bounding box, in pixels. The width of the bounding box, in pixels. The height the bounding box, in pixels. The SegmentationEngine class offers segmentation features. The current image. The flag indicating whether the object is disposed or not. The LayoutAnalysisResultStorage manages a storage for a collection of layout analysis results. Retrieves a result from the collection whenever it is possible. The identifier of the result. The result if success otherwise returns null. Removes the requested result from the collection. The identifier of the result. true if the result has been removed otherwise returns false. Removes all the elements from the collection. Tests whether a result with the provided identifier exists or not. The identifier of the result. true if the result exists otherwise returns false. Stores the provided result within the collection. The result to be stored. An optional custom identifier of the result. The result identifier. The collection of objects. Detects if any table cell contains excessive text lines after row merging, indicating a multi-column text layout rather than a real table. Represents a character bounding box with recognition candidates and confidence scores, typically used for specialized OCR contexts like MICR. Represents an image region within a document layout, containing the image data, its bounding box, and pixel output intent information. Provides layout analysis functionality for specialized OCR contexts including MICR (E13B and CMC7) line reading with character recognition and confidence scoring. Creates a new GdPicture image from a specific page of the multipage image. The page number (1-based). The provided image. A member of the GdPictureStatus enumeration. Obtains a GdPicture image from a specific page of the multipage image. The page number (1-based). The provided image. Specifies if the caller must release the provided image. A member of the GdPictureStatus enumeration. Inserts a frame at the current page position. The page position (1 based) A member of the GdPictureStatus enumeration. Nearest-neighbor Box, pulse, Fourier window, 1st order (constant) b-spline Mitchell & Netravali's two-param cubic filter Bilinear filter 4th order (cubic) b-spline Catmull-Rom spline, Overhauser spline Lanczos3 filter loading: load the image header only (not supported by all plugins) loading: keep cmyk(a) channels (default is conversion to rgb(a) color space) loading: apply ICC correction (if any) This method must be called after each dib allocation. The newly allocated dib. The collection of objects. The OcrOutput class is the base class to output the ocr result. Output writes the Ocr results to the file. The array with the ocr result. The stream to write the result. A member of the GdPictureStatus enumeration. Indicates whether to keep line breaks or not. The OcrOutputHtml class offers html output for the ocr result. The constructor initializes members with the provided parameters. The flag indicating whether to keep line breaks or not. Output writes the Ocr results to the file. The array with the ocr result. The stream to write the result.. Starts a block. The block. Ends a block. Starts a paragraph. The paragraph. Ends a paragraph. Starts a text line. The text line. Ends a text line. Starts a word. The word. Ends a word. Fires a character. The character. CloseCharacterAttributesTags closes the character attributes tags. TagLine appends a line tag to the text. Tag writes a tag to the output. Append appends a character to the text. AppendSpace appends a space to the text. The string builder to collect the text for the current result. The flag indicating whether the current block should be skipped or not. The current is bold state. The current is italic state. The current is underline state. A filter for std characters. Html file start. Html file end. Paragraph break tag. Bold start tag. Bold end tag. Italic start tag. Italic end tag. Underline start tag. Underline end tag. The OcrOutputText class offers several flavors of text output for the ocr result. The format for the text output. The string builder to collect the text for the current result. The flag indicating whether the current block should be skipped or not. The number of spaces before next word. The constructor initializes members with the provided parameters. The text format. the flag indicating whether to keep line breaks or not. The constructor initializes members with the provided parameters. the flag indicating whether to keep line breaks or not. Output writes the Ocr results to the file. The array with the ocr result. The stream to write the result. Writes the Ocr results to a string. The array with the ocr result. The string of the ocr result. Starts a block. The block. Ends a block. Starts a paragraph. The paragraph. Ends a paragraph. Starts a text line. The text line. Ends a text line. Starts a word. The word. Ends a word. Fires a character. The character. AppendLine appends a line to the text. Append appends a character to the text. GetEncoding retrieves the encoding for the requested format. The output format. The encoding Provides a stream based class using temporary file or byte[] chunks as data source. Page-level rendering façade used by the document layout engine. Wraps a with a high-level API for text, paths, gradients, images, layers and graphics-state management. User space is points (1 unit = 1/72 inch) and Y-down; the wrapped renderer handles conversion to device pixels via the current transformation matrix held on . Native DPI of the document user space (72 — i.e. one user-space unit equals one point). System default screen DPI (96), used when the rasterizer needs to convert points to pixels. Draws a string using the current font, fill color, and graphics state, with an optional pixel-space offset added to every glyph's left/right/baseline. Returns if no font is selected. The string to draw. Horizontal offset in user space, applied to every glyph. Vertical offset in user space, applied to every glyph baseline. A member of the enumeration. Draws a single line of horizontal text. The method dispatches to a specialized renderer based on : w14:shadow takes priority over the legacy Shadow/Emboss/Imprint toggles when present, otherwise the first matching legacy effect runs, and a plain fill+optional stroke is used when no effect is active. If true, the call is treated as a no-op (used for hidden-text positioning). The single-line glyph run to draw. Underline style to apply, or null for none. Strikethrough level to apply. Text style flags (Shadow/Emboss/Imprint/Outline/TextOutline/TextShadow/...). Null means default style. Optional local matrix combined with the renderer's CTM for this draw call. Null means use the CTM as-is. A member of the enumeration. Creates a new named layer. If the underlying renderer supports layers natively (e.g. PDF Optional Content Groups) the call is delegated; otherwise the layer is tracked in-memory and used to filter rendering against the destination device's screen/printer visibility flags. Layer name. Must be unique. True if the layer should render to screen output. True if the layer should render to printer output. if the layer name is already taken, otherwise OK. Activates a previously created layer for subsequent draw calls. Only one layer may be active at a time when the renderer doesn't support layers natively. Name of the layer to select. if a layer is already active, if the name is unknown, otherwise OK. Returns true if a layer with the given name has been created on this renderer. Layer name to look up. Ends the currently active layer; subsequent draw calls go to the default layer. if no layer is active, otherwise OK. Returns true if the underlying renderer supports reusable graphic groups (e.g. PDF Form XObjects). Returns true if a group with the given name has been defined on this renderer. Group name to look up. Opens a new named group. All subsequent draw calls until are recorded into this group rather than emitted directly. Unique group name. Group bounding box in user space. Initial transformation matrix applied to the group content. Closes the currently open group; subsequent draws go back to the page. Stamps a previously defined group at the given matrix; the group's content is reused without being re-emitted. Name of the group to draw. Matrix to position/transform the group instance. Strokes a single straight line between two points using the current stroke color, line width, and dash pattern. Start point in user space. End point in user space. Paints a path with the current fill/stroke colors. disables anti-aliasing for axis-aligned rectangles and pure horizontal/vertical lines on Skia, which is the right call for crisp grid-based artwork. The path to paint. Fill the path interior using the current fill mode and color. Stroke the path outline using the current line width, cap, join, and dash pattern. If true, snap rectangle bounds to integer pixels and disable anti-aliasing where appropriate. Optional matrix combined-prepended onto the CTM for this draw call. Paints a path using explicit fill and stroke colors (and optional line style). Saves and restores the affected graphics-state fields so the caller's fill/stroke colors and dash pattern survive the call unchanged. The path to paint. Fill the path interior with . Stroke the path outline with . Fill color (its alpha replaces the current fill alpha for this call). Stroke color (its alpha replaces the current stroke alpha for this call). If true, snap rectangle bounds to integer pixels and disable anti-aliasing where appropriate. Optional matrix combined-prepended onto the CTM for this draw call. Optional override for the dash pattern, line cap, and line join used for stroking. Tiles across , clipped to the rectangle. The bitmap is repeated at its native pixel size with no scaling. Bitmap to tile. User-space rectangle to fill. Optional matrix combined-prepended onto the CTM for this draw call. Tiles inside (clipped to the path interior), then optionally strokes the path with . Disposes when done. Path whose interior should be filled with the pattern. If true, stroke the path outline after filling. Stroke color when is true. If true, snap rectangle bounds to integer pixels and disable anti-aliasing where appropriate. Bitmap to tile inside the path. Disposed by this call. Optional matrix combined-prepended onto the CTM for this draw call. Optional override for the dash pattern, line cap, and line join used for stroking. Stretches to cover the path's bounding box (clipped to the path interior), then optionally strokes the path. Differs from in that the bitmap is drawn once at the bbox size rather than tiled. Disposes when done. Path whose interior should be filled with the picture. If true, stroke the path outline after filling. Stroke color when is true. If true, snap rectangle bounds to integer pixels and disable anti-aliasing where appropriate. Bitmap to stretch into the path's bbox. Disposed by this call. Optional matrix combined-prepended onto the CTM for this draw call. Optional override for the dash pattern, line cap, and line join used for stroking. Paints a radial gradient between two concentric circles, clipped to . The gradient is rendered into an offscreen Skia bitmap and then composited onto the canvas, so the call works on any backend. Center of the outer circle (start ring). Radius of the outer circle. Center of the inner circle (end ring). Radius of the inner circle. Color stops along the gradient. Stop positions in [0..1], same length as . Region to clip the gradient to. Optional matrix combined-prepended onto the CTM for this draw call. Paints a "path gradient" — a soft fill that blends from the center of the clip region toward each edge along thin radial slivers. Implemented by sampling the clip path's outline pixel by pixel via Bresenham lines and drawing a sliver linear gradient toward each sample point. Hint for the gradient's outer extent (recomputed from the clip path internally). Color stops, with [0] at the center and the last entry at the edge. Stop positions in [0..1], same length as . Region to clip the gradient to. The gradient's center is the bbox center. Optional matrix combined-prepended onto the CTM for this draw call. Paints a linear gradient from to , clipped to . Rendered into an offscreen Skia bitmap and composited onto the canvas, so works on any backend. Gradient start point in user space (where [0] sits). Gradient end point in user space (where last sits). Color stops along the gradient. Stop positions in [0..1], same length as . Region to clip the gradient to. Optional matrix combined-prepended onto the CTM for this draw call. Pushes a copy of the current graphics state onto the stack. Pair with . Pops the top graphics state off the stack. Logs an error if the stack is empty. Post-multiplies the CTM with a translation, so the offset is added in the current user space. Horizontal offset in user space. Vertical offset in user space. Sets the fill rule used by subsequent path-fill operations (Alternate/even-odd vs Winding/non-zero). The fill mode to use. Returns the fill rule currently in effect. Replaces the current clipping region. Pass null to remove all clipping. New clip region, or null to clear. Adds a path to the clipping region. When is false, the path is intersected with the existing clip; when true (or when no clip is active), the path becomes the new clip. Path to add. Null + replace=true clears the clip; null + replace=false is a no-op. If true, replace the current clip rather than intersecting with it. Fill rule used to interpret the clip path. Optional matrix to apply to the path before clipping. Null means identity. Sets the fill color used by subsequent fill operations. The color's alpha replaces the current fill alpha. New fill color. Returns the current fill color with its alpha component. Sets the line-join style (Miter/Round/Bevel) used at sharp corners when stroking. The join style to use. Sets the line-cap style (Butt/Round/Square) used at the ends of unclosed stroked paths. The cap style to use. Sets the stroke width. A width of 0 is interpreted as "1 pixel on the device" (model-space convention from CAD/AutoCAD). When is false, the width is multiplied by the global line-width scale. Stroke width in user space; 0 means 1 device pixel. If true, skip the global line-width scale factor. Returns the current stroke width in user space. Sets the stroke width to whatever produces 1 pixel at the current CTM scale on the device. Sets the miter limit — the maximum miter-join length, in line-width multiples, before the join falls back to a bevel. Miter limit (typical default is 10). Configures the line dash pattern used by subsequent stroke operations. Initial offset into the dash pattern, in user-space units. Alternating on/off lengths in user-space units. Null means solid. Clears the line dash pattern so subsequent strokes are solid. Sets a global multiplier applied to every call (with noScale=false). Also rescales the current line width. Multiplier (typically 1.0). Sets the text-rendering mode (fill, stroke, fill+stroke, invisible, …). The rendering mode to use for subsequent calls. Sets the horizontal text-scaling percentage (100 = natural width). Scale factor in percent. Sets the font size used by subsequent text rendering, in points. Font size in points. Returns the font size currently in effect, in points. Sets the character-spacing value added between glyphs, in user-space units. Extra spacing per glyph. Returns a clone of the current transformation matrix (safe to mutate without affecting the renderer). Sets the stroke color used by subsequent stroke operations. The color's alpha replaces the current stroke alpha. New stroke color. Draws the entire stretched to in user space. Bitmap to draw. Destination rectangle in user space. Optional matrix combined-prepended onto the bitmap-to-destRect mapping for this draw call. Draws a sub-rectangle of stretched to . The internal matrix performs a Y-flip from the bitmap's image space (Y-down) to the user space convention used by PDF/PaintBitmapEx. Source bitmap. Destination rectangle in user space. Sub-rectangle of the bitmap (in bitmap pixels) to draw. Optional matrix combined-prepended onto the bitmap-to-destRect mapping for this draw call. Dispose the native font if any then create a new instance of the selected font. The font family name. The font style. Supported values are combinations of Regular, Bold and Italic. A member of the GdPictureStatus enumeration. Sets the font used by subsequent text rendering directly, bypassing the system font cache. Font instance to use. Must be called when the rendering process is done. Forwards to the underlying renderer's End() — for raster backends this triggers any deferred white-background push; for the PDF backend this finalizes the content stream. Returns true if the underlying renderer has a raster canvas (e.g. Skia, GDI+) as opposed to a vector PDF stream. Renders string with checkbox handling - splits glyphs and renders segments Renders a checkbox character as a geometric path Wraps an existing renderer (raster or PDF) with the document-rendering API. The renderer's lifetime is owned by the caller — this instance does not dispose it on Dispose. Underlying renderer to drive. Initial CTM. Null means identity. Convenience constructor that creates a Skia-backed renderer over the given bitmap. The created renderer is disposed when this instance is disposed. Target bitmap to render into. If true, fills the bitmap with white during End() so transparent areas get a paper-white background. Releases the document renderer; if it owns its underlying renderer, that renderer is disposed too. A TextStyle instance with default properties. Rich text-outline information parsed from w14:textOutline (and DrawingML a:ln on text). Unlike , which is a simple on/off toggle driven by the legacy w:outline element, this carries an explicit stroke color and width so the glyphs can be filled and stroked independently. Stroke color applied to the glyph outline. Stroke width, in points. Dash pattern from w14:prstDash, in stroke-width-scaled units (the same units the rendering pipeline expects). Null means solid. Dash phase matching . Shadow effect parsed from w14:shadow. Carries the color and transform-related attributes (offset direction/distance, scale). Blur is not rendered yet — the shadow is drawn with hard edges. Shadow color. Blur radius, in points. Currently informational — not rendered. Offset distance from the glyph, in points. Offset direction, in degrees (0 = +X, clockwise in image space). Horizontal scale factor (1.0 = same size as the glyph). Vertical scale factor. Horizontal skew angle in degrees. Shears the glyph in x as y changes. Vertical skew angle in degrees. Shears the glyph in y as x changes. The default value for text scale. A TextStyle instance with default properties. Specifies if the string shall be rendered with an emboss effect. Specifies if the string shall be rendered with an outline effect. Specifies if the string shall be rendered with a shadow effect. Specifies if the string shall be rendered with an imprint effect. The text scale. Rich outline effect parsed from w14:textOutline. Null when only the legacy toggle is set or no outline at all. True when w14:textFill resolves to noFill, meaning the glyph interior is not painted. The outline (if any) is still drawn. Rich shadow effect parsed from w14:shadow. Null when only the legacy toggle is set or no shadow at all. Check if the two provided styles have the same properties. If one of the styles is null, it is considered to be the default style. The first style The second style True if the styles are the same, and False otherwise. Check if the style configuration is the default style. True is the style is equal to the default style, false otherwise. Delegate that returns a page dimension (width or height) in inches. Abstract base class for all document types supported by GdPicture.NET. Provides a common interface for page navigation, rendering, text extraction, link and bookmark retrieval, metadata access, and document lifecycle management across formats such as PDF, Office, images, and metafiles. Delegate for creating a instance with the specified canvas dimensions, rendering device, and options. Determines whether the document was truncated during loading (e.g., due to corruption or incomplete data). true if the document is truncated; otherwise, false. Gets the peak memory usage, in bytes, consumed while processing the document. The peak memory usage in bytes, or 0 if not tracked by this document type. Stores cached dimensional and rotation information for a single page, avoiding repeated queries to the underlying document. The rotation/flip applied to the page. The horizontal resolution of the page in DPI. The vertical resolution of the page in DPI. The width of the page in inches. The height of the page in inches. Initializes a new instance of the struct. The rotation/flip applied to the page. The horizontal resolution in DPI. The vertical resolution in DPI. The page width in inches. The page height in inches. The default JPEG quality used when saving or rendering images. Indicates whether should be called on disposal to release the underlying native document. The source stream from which the document was loaded. Disposed together with the document. Tracks whether this instance has already been disposed. Unique identifier for this document instance. Cache of per-page dimension and rotation information. Gets or sets the document-level settings that control conversion and rendering behavior. Allows replacing the document settings instance. Gets the total number of pages in the document. Gets the 1-based page number of the currently selected page. Validates that the currently selected page is in a consistent state. true if the current page is valid; otherwise, false. Gets the direct access mode of the currently selected page. Gets whether the currently selected page was loaded with ICM (color management) enabled. Selects a page by its 1-based page number, optionally enabling ICM and direct access. The 1-based page number to select. Whether to enable ICM color management for this page. The direct access mode to use when selecting the page. Gets the format of the document (e.g., PDF, DOCX, XLSX). Gets the high-level type of the document (e.g., PDF, bitmap, office). Closes the underlying native document and releases associated resources. Clears any cached resources (e.g., rendered images, font caches) held by the document. Gets the height of the current page in inches. Gets the width of the current page in inches. Gets the height of the current page in pixels. Gets the width of the current page in pixels. Gets the vertical resolution of the current page in DPI. Gets the horizontal resolution of the current page in DPI. Gets the rotation/flip transformation applied to the current page. Determines whether the document is a raster (bitmap) format. Determines whether the document format supports text extraction. Determines whether the document format supports text removal. Determines whether the document format supports saving. Determines whether the currently selected page contains text content. Determines whether the currently selected page contains vector content. Determines whether the currently selected page contains raster (image) content. Renders the current page at the specified zoom level into a . The zoom factor (1.0 = 100%). The rendered image output. Whether to force 96 DPI resolution on the output image. Whether to render in thumbnail mode (lower quality, faster). Optional process monitor for timeout and cancellation support. Applies GdPicture annotations from an XML byte array to the current page. The XML annotation data. Saves the document to the specified destination stream. The stream to write the document to. Determines whether the document has unsaved changes. Gets the XML representation of the current page's content. The XML output as a byte array. Extracts the text content of the current page as a . The extracted text block. Optional process monitor for timeout and cancellation support. Retrieves the hyperlinks present on the current page. The list of links found on the page. Whether to resolve link destinations. Whether to include file attachment links. Retrieves the heading-based bookmarks from the current page. The list of document bookmarks derived from headings on the page. Retrieves the Word-defined bookmarks from the current page. The default implementation returns null with , as not all document types support Word bookmarks. The list of document bookmarks defined via Word bookmark names on the page, or null if unsupported. Retrieves the comments from the current page. The list of document comments found on the current page. A indicating success or the reason for failure. Retrieves font information for the entire document, including embedded and referenced fonts. The retrieved font information. A indicating success or the reason for failure. Renders the current page using a custom renderer factory, with separate DPI and zoom for each axis. Factory delegate to create the renderer. Horizontal destination DPI. Vertical destination DPI. Horizontal zoom factor. Vertical zoom factor. The target rendering device. Options controlling the rendering process. by default; overridden by document types that support custom rendering. Gets a version number representing the state of the page tree. Changes when pages are added, removed, or reordered. The page tree version, or -1 if versioning is not supported by this document type. Retrieves the file attachments embedded in the document. The list of attachments, or null if none exist. Gets the underlying native document object. The type depends on the concrete document implementation. Thrown if the document type does not expose a native document. Removes text content within the specified rectangular area on the current page. The rectangular area from which to remove text. Thrown if the document type does not support text removal. Gets a map of page identifiers (typically 1-based page number strings) for all pages in the document. The output list of page identifier strings. Inserts a blank page at the specified position with the given dimensions. The 1-based position at which to insert the page. The width of the new page in inches. The height of the new page in inches. Moves a page from one position to another within the document. The 1-based source page number. The 1-based destination page number. Swaps the positions of two pages in the document. The 1-based page number of the first page. The 1-based page number of the second page. Moves multiple pages to a destination position, maintaining the currently selected page. Array of 1-based source page numbers to move. The 1-based destination page number. Moves multiple pages to a destination position, updating the selected page number reference to track which page ends up selected after the moves. Array of 1-based source page numbers to move. The 1-based destination page number. Reference to the currently selected page number, updated after moves complete. Removes a page from the document. The 1-based page number to remove. Whether ICM color management was enabled for the page. Determines whether this document was produced by converting from PDF. Determines whether the document is protected by a user password. Gets the title from the document's metadata. The document title, or an empty string if not set. Gets the author from the document's metadata. The document author, or an empty string if not set. Gets the keywords from the document's metadata. The document keywords, or an empty string if not set. Gets the subject from the document's metadata. The document subject, or an empty string if not set. Gets the producer from the document's metadata. The document producer, or an empty string if not set. Gets the full metadata string from the document (e.g., XMP metadata for PDF). The document metadata, or an empty string if not available. Sets a user password to protect the document. The password to set. Gets the unique identifier for this document instance. Rebuilds the cached page information () for all pages in the document. This iterates through every page to capture rotation, resolution, and dimensions. Gets the cached page information for the specified page. Automatically rebuilds the cache if it hasn't been initialized or if the page count has changed. The 1-based page number. The cached page info, or a default if the page number is out of range. Determines whether the specified document format is an image metafile format (WMF, EMF, SVG, DXF, or DWG). The document format to check. Gets the current page's dimensions in inches, adjusted for the specified rotation. The resulting width in inches after applying rotation. The resulting height in inches after applying rotation. The rotation/flip to apply when calculating dimensions. Calculates the display width of the current page for a given zoom level and rotation. The zoom factor. The rotation/flip to apply. Calculates the display height of the current page for a given zoom level and rotation. The zoom factor. The rotation/flip to apply. Determines whether the specified document format is an image format (either metafile or bitmap). The document format to check. Determines whether the specified document format is a Microsoft Office or OpenDocument format (DOC, DOCX, XLS, XLSX, PPT, PPTX, or ODT). The document format to check. Maps a to its corresponding . Returns for unrecognized formats and for . The document format to map. Releases resources held by this document. If is true, managed resources (source stream) are also released and the finalizer is suppressed. true if called from ; false if called from the finalizer. Releases all resources used by this document instance. Finalizer. Releases unmanaged resources if was not called. Decompresses only the first maxBytes of a zlib-compressed byte array. Useful for reading headers without decompressing the entire stream. The compressed input data. Maximum number of bytes to decompress. The decompressed output (may be smaller than maxBytes if stream is shorter). If true, skips the 2-byte zlib header. GdPictureStatus indicating success or failure. Fast O(1) lookup for mac_roman_names index by character name. Returns true if found, with the index in the out parameter. Tries to resolve a glyph name to Unicode using supplementary tables (ZapfDingbats, etc.). This is separate from AGLNFCharNameToUnicode to preserve strict AGLFN-only behavior for encoding/Differences validation. Use for ToUnicode CMap generation only. Can be removed to revert to AGLFN-only resolution. Tries to resolve a character position to Unicode for known symbolic fonts (Wingdings, Symbol, etc.) by matching the font's BaseFont name and using position-based mapping tables. Returns 0 if no mapping found. Reverse lookup dictionary: WinAnsiCharsertNames[index] -> index. Used for O(1) lookup instead of O(n) linear search. Unknown format. True type font collection. (header: 'ttcf'). Recognized by OS X and iOS as referring to TrueType fonts. (header: 'true'). Recognized as referring to the old style of PostScript font housed in a sfnt wrapper. (header: 'typ1'). OpenType font with PostScript outlines (that is, a 'CFF ' table instead of a 'glyf' table). (header: 'OTTO'). PostScript font program (compact font format). Adobe PostScript font (pfb). Adobe Type 1 font format. Binary search to find the segment index containing the given cid. Returns -1 if no segment contains the cid. Parses the GPOS table to extract kerning pairs. Looks for 'kern' features in the feature list, follows them to PairPos lookups, and extracts pair positioning values into the same Dictionary format as kernLoad. Supports PairPos Format 1 (individual glyph pairs) and Format 2 (class-based pairs). ref: https://learn.microsoft.com/en-us/typography/opentype/spec/gpos Reads a PairPos subtable (GPOS Lookup Type 2) and extracts kerning pairs. Format 1: Individual glyph pairs with explicit pair sets. Format 2: Class-based pairs using ClassDef tables. Only adds pairs not already present in kernTable (earlier subtables take precedence). Reads a Coverage table and returns the covered glyph IDs. Format 1: List of individual glyph IDs. Format 2: Ranges of glyph IDs. Reads a ClassDef table and returns a mapping of glyph ID to class value. Format 1: Array starting at a glyph ID. Format 2: Class ranges. Glyphs not mentioned are implicitly class 0. Returns the number of fields in a GPOS ValueRecord based on the ValueFormat flags. Each flag set means one additional short (2 bytes) in the record. Reads the XAdvance value from a ValueRecord based on the ValueFormat flags. XAdvance is bit 2 (0x0004). Preceding fields (XPlacement bit 0, YPlacement bit 1) are skipped. Skips over a ValueRecord without reading its contents. Specifies the typo cell ascent, in design units, of this font. Specifies the typo cell descent, in design units, of this font. Specifies the line spacing, computed for Windows, in design units, of this font. The line spacing is the vertical distance between the base lines of two consecutive lines of text. The value is computed using the formula: LineSpacing = Ascent + Math.Abs(Descent) + LineGap. Win Ascent and Win Descent are supposed to be the Windows metrics, while Ascender and Descender are supposed to be the Apple metrics, but in the case of line spacing, Microsoft has decided to look at both, and pick the larger value when returning Line Spacing calculation. ref: https://msdn.microsoft.com/en-us/library/windows/desktop/ms533824(v=vs.85).aspx Specifies the typo line gap, in design units, of this font. Create Subset Method - assembles new font file subset based on input glyphs and original font file. Array of glyph identifiers that should be included in new font file. Byte array containing original full font file data that will be used to create new subset. Output Byte array containing new created subset font data. GdPictureStatus Builds a new cmap table where all GID 0 references are remapped to newGID. Uses format 0 (byte encoding) for fonts with newGID < 256. Builds a cmap table with (1,0) and (3,0) subtables for symbolic TrueType fonts. Reads existing (3,1) cmap to determine charcode→GID mappings. If gid0RemapTarget > 0, remaps all GID 0 references to that GID. Builds a CharStrings INDEX with GID 0 remapped: GID 0 becomes endchar (.notdef), and the original GID 0 charstring is appended as a new GID at the end. Provides a DocumentFont object based on a system font, from a font-family name and style. The font-family name. The font style. Specifies if substitution is permitted in the case the font was not found on the system The returned GdPictureFontExt object. A member of the GdPictureStatus enumeration. Specifies font true type header. Ref: ISO/IEC 14496-22 2009 §5.2.2 0x00010000 for version 1.0. Set by font manufacturer. To compute: set it to 0, sum the entire font as ULONG, then store 0xB1B0AFBA - sum. Set to 0x5F0F3CF5. Bit 0: Baseline for font at y=0; Bit 1: Left sidebearing point at x=0; Bit 2: Instructions may depend on point size; Bit 3: Force ppem to integer values for all public scaler math; may use fractional ppem sizes if this bit is clear; Bit 4: Instructions may alter advance width (the advance widths might not scale linearly); Bits 5-10: These bits are not defined in OFF Bit 11: Font data is 'lossless,' as a result of having been compressed and decompressed with the MicroType®iv Express engine, as defined in ISO/IEC 14496-18. Bit 12: Font converted (produce compatible metrics) Bit 13: Font optimized for ClearType®v. Note, fonts that rely on embedded bitmaps (EBDT) for rendering should not be considered optimized for ClearType, and therefore should keep this bit cleared. Bit 14: Reserved, set to 0 Bit 15: Reserved, set to 0 Valid range is from 16 to 16384. This value should be a power of 2 for fonts that have TrueType outlines. Number of seconds since 12:00 midnight, January 1, 1904. 64-bit integer Number of seconds since 12:00 midnight, January 1, 1904. 64-bit integer For all glyph bounding boxes. For all glyph bounding boxes. For all glyph bounding boxes. For all glyph bounding boxes. Bit 0: Bold (if set to 1); Bit 1: Italic (if set to 1) Bit 2: Underline (if set to 1) Bit 3: Outline (if set to 1) Bit 4: Shadow (if set to 1) Bit 5: Condensed (if set to 1) Bit 6: Extended (if set to 1) Bits 7-15: Reserved (set to 0). Smallest readable size in pixels. Deprecated (Set to 2). 0 for short Offsets, 1 for long. 0 for current format. The 'hhea' table contains information needed to layout fonts whose characters are written horizontally, that is, either left to right or right to left. This table contains information that is general to the font as a whole. Information which pertains to specific glyphs is given in the 'hmtx' table. Fixed version 0x00010000 (1.0). FWord ascent Distance from baseline of highest ascender. FWord descent Distance from baseline of lowest descender. FWord lineGap typographic line gap. uFWord advanceWidthMax must be consistent with horizontal metrics. FWord minLeftSideBearing must be consistent with horizontal metrics. FWord minRightSideBearing must be consistent with horizontal metrics. FWord xMaxExtent max(lsb + (xMax-xMin)). int16 caretSlopeRise used to calculate the slope of the caret (rise/run) set to 1 for vertical caret. int16 caretSlopeRun 0 for vertical. FWord caretOffset set value to 0 for non-slanted fonts. int16 reserved set value to 0. int16 reserved set value to 0. int16 reserved set value to 0. int16 reserved set value to 0. int16 metricDataFormat 0 for current format. uint16 numOfLongHorMetrics number of advance widths in metrics table. OS/2 – Global font information table (in ISO/IEC 14496-22 2009 §5.2.7) The version number for this OS/2 table. Set to 0x0004 Average weighted escapement. Weight class. Width class. Type flags. Subscript horizontal font size. Subscript vertical font size. Subscript x Offset. Subscript y Offset. Superscript horizontal font size. Superscript vertical font size. Superscript x Offset. Superscript y Offset. Width of the strikeout stroke in font design units. The position of the top of the strikeout stroke relative to the baseline in font design units. Font-family class and subclass. (Possible values are in Annex B of the spec) PANOSE classification number Must be a 10 bytes array, the first byte defining what type of font it is An extended version of Panoses exists with 14 values but I didn't find enough doc on that. See http://www.monotype.com/services/pan1 for more information. Unicode Character Range Font Vendor Identification Must be 4 bytes array Font selection flags. The minimum Unicode index (character code) in this font. The maximum Unicode index (character code) in this font. The typographic ascender for this font. The typographic descender for this font. The typographic line gap for this font. The ascender metric for Windows. The descender metric for Windows. Code Page Character Range The distance between the baseline and the approximate height of nonascending lowercase letters. The distance between the baseline and the approximate height of uppercase letters. The maximum length of a target glyph context for any feature in this font. Returns the width of a glyph, in points, for a specific font size. The character id. The font size, in points. The width of the glyph, in points. Represents a block of extracted text from a document page, with support for paragraph detection, heading analysis, and reading order sorting. All words in this text block, in extraction order. Transformation matrix applied to this text block's coordinate space. Rotation and flip applied to this text block. Detected paragraphs in this text block. Populated after is called. Gets whether this text block contains no words. Bounding box encompassing all text lines in this block. Computed lazily on first access. Gets or sets whether text extraction should clip words to the page bounds. Content stream order index, used for determining reading order within a page. Returns words belonging to the specified paragraph, or all words if paragraphId is -1. Initializes a new text block with the given transformation matrix, page bounds, and rotation. Adds text glyphs (from GlyphOffset list) to this block. Returns false if the word limit is exceeded. Adds text glyphs (from GlyphBox list) to this block. Returns false if the word limit is exceeded. Sorts words into lines and computes line-level statistics. Must be called before paragraph detection. Groups words into paragraphs using spacing and layout heuristics. Normalizes the block first if needed. Old histogram-based column sorting approach, replaced by SortParagraphsXYCutpp. Checks if a single-character word uses a known symbol font (typically used for bullets). Checks if any alternative bullet candidate (small path/image) is positioned immediately to the left of the given word, on the same vertical line. Tries to parse a list item number prefix from the input string. Matches patterns like: "1.", "2)", "(3)", "[a]", "b.", "iv.", "12-" Returns the ordinal position (1-based) so consecutive checks can work across formats. For letters: a=1, b=2, etc. For roman numerals: i=1, ii=2, iv=4, etc. When previousNumber is provided, also validates that the parsed number is consecutive (previousNumber + 1). Scores a paragraph for heading likelihood based on visual signals (size, bold, caps, numbering, keywords). Returns true if the paragraph qualifies as a heading after applying threshold and single-signal guards. Detects section/chapter-style numbering for heading detection. Matches: "1.", "2)", "3.1", "3.1.2", "IV.", "A.", "A)" Does NOT match: years ("2011"), financials ("117,3"), bare digits ("5") Represents a detected paragraph within a text block, grouping words by spatial and typographic proximity. Result of attempting to add a word to this paragraph. Word was added successfully. Word was rejected; try the next word on the same line. Word was rejected; skip to the next line. Word was rejected; end the current paragraph. Paragraph identifier, unique within the parent text block. Bounding box encompassing all words in this paragraph. Whether this paragraph has not been merged into another. Whether this paragraph was detected as a heading. Whether this heading was created by splitting a paragraph. List item type: 0 = none, 1 = unordered, 2 = ordered. Sequence number for ordered list items. When true, word association scans backwards (right-to-left paragraphs). Number of text lines in this paragraph. Highest across this paragraph's words. Used by the page-context heading rejection — a heading whose last line equals the page's last line is almost always a recurring page footer. Total number of non-separator words in this paragraph. Returns the number of words on the specified line (0-based index relative to paragraph start). Number of lines that contain at least one non-spacing word. Average vertical gap between consecutive lines. Average height of line bounding boxes. Average font size across all words. Average horizontal spacing between consecutive words. Returns word-to-word spacing values for the specified line. Average word spacing on the specified line. Average width of word bounding boxes. Average word width on the specified line. Consistency score (0-1) of word spacing across the paragraph. 1 = perfectly uniform. Word spacing consistency score for the specified line. Whether all words in this paragraph are bold. Detects if the first line is a heading based on font size, style, and color differences from the rest. Creates a lightweight temporary paragraph from the first words. Used to pre-score a potential heading before committing to a paragraph split. Returns the text content of the first non-whitespace word. Returns the text content of the second non-whitespace word. Detects bare numbered heading prefix: a 1-3 digit number followed by an oversized gap and a capitalized word (e.g. "7 Variants"). Returns the line number of the first non-whitespace word. Returns the text content of the last non-whitespace word. Returns the content and index of the first word on the specified line. Returns the first Word object and its index on the specified line. Returns the bounding box and index of the first word on the specified line. Creates a new paragraph associated with the given text block and starting line number. Absorbs all words from another paragraph into this one and marks the other as dead. Returns the concatenated text content of all non-whitespace words. Adds a list of words to this paragraph. Adds a single word to this paragraph, updating bounding box and line tracking. Scores the word for paragraph membership and adds it if it qualifies. Sets a new paragraph ID and propagates it to all owned words. Increments the paragraph ID by one and propagates it to all owned words. Returns the bounding box of the specified line, or null if out of range. Converts a TextBlock into a layout-preserving plain text string. Words that are close together are joined with single spaces (normal text flow). Large gaps between words are preserved as proportional spacing (columns/tab stops). Vertical gaps between lines produce blank lines. The text block containing lines and words. PDF page width in the same coordinate space as word bounding boxes. Formatted text string preserving spatial layout. Detects TOC-style lines (title + dot leaders + page number) and right-aligns page numbers to a consistent column, adjusting dot count to fill the gap. Determines if a gap between two words is a column boundary. A gap is a column gap if it exceeds the global threshold OR if it is wider than the word that follows (strong signal for table columns). Finds the index of the nearest column snap point for a given word X position. Returns -1 if no snap column is within tolerance. Computes the gap threshold that separates normal inter-word spacing from column/tab-stop gaps. Returns 3x the median word gap. Computes the median character width across all words to use as the column cell width. Uses glyph boxes when available, otherwise falls back to word width / content length. Represents the result of a search operation, containing the first and last words found, as well as character indices marking the start in the first word and the end in the last word. Gets or sets the first in the search result range. Gets or sets the last in the search result range. Gets or sets the character start index within . Gets or sets the character end index within . Initializes a new instance of the class, sanity checking indices if first and last word are the same. The first of the result. The last of the result. The character index in where the result starts. The character index in where the result ends. Thrown if and are the same and is greater than . Initializes a new instance of the class. Paragraph ID. Returns if the testWord parameter can be appended at the end of the word. The type of the selected font The font is embedded in the documents. The font is available on the system. We performed a font substitution, because the font is not embedded nor available. Class used to retrieve information about a font in an Office document. The name of the requested font. The name of the requested font. The name of the font we actually use. If the requested font is embedded in the file, or present on the machine, this should be the same as the requested font or the alternative one. If it is different, we performed a font substitution. The type of the font: Embedded, System or Substitution. The font was requested in Bold style. The font was requested on Italic style. A flag indicating if the font is actually requested. In the document, in run properties we may have a font name, and this could never be requested. This is a dynamic flag, we use it to retrieve only used fonts, not all defined. The constructor Return the true type font style of the font Writes the requested font details on an xml stream. Informations about all the font within a document. The list of requested fonts. The constructor Uniquely adds the othr fonts Adds a requested font. Adds a requested font. Replace info about a requested font Sets the font as requested by the document. Retrives informations about document fonts. All the fonts required by the document Creates an unique key for a font with a specifid type. Computes the rotation of a quadrilateral shape, in degrees, by analyzing the position of the most-top visible side. The origin of the 2D space is top-left. Position of the top-left corner. Position of the top-right corner. Position of the bottom-right corner. Position of the bottom-left corner. The computed angle of rotation, in degrees. Computes the threshold of a bimodal histogram true iff the histogram is bimodal Performes the thresholding of the initial gray image to provide a binary input image for barcode recognition engines Returns the median of the histogram on [start, end] interval Computes the number of times a histogram touches a zero value Only values with a single 0 are counted, i.e. the previous value wad not zero and the next values is not zero Counts the entries in the histo with stored value lower then a threshold. Computes the peaks and the valley of a bimodal histogram true iff the histogram is bimodal Computes a threshold of a bimodal histogram using iterative selection Checks if a page number is in a predefined page range. Can be '*': all page, or in a form such as start-to;start_to;page. This function is safe and never throws exception. the page number to check the string page range, the parameter must be validated by the calling function. true or false. Perform a deep Copy of the object, using Json as a serialization method. NOTE: Private members are not cloned using this method. The type of object being copied. The object instance to copy. The copied object. Helper method for generating a "pack://" URI for a given relative file based on the assembly that this class is in. Offers postscript instructions parsing. This class can throw exceptions from its constructor and methods. Gets the total length of the data being tokenized. Gets the underlying data buffer. Gets or sets the current token position. Scans the next token and returns its byte range in m_Data. No string allocation. Returns false when no more tokens. Parses a PDF name directly as a string, without creating a PDFNameObject. Used for dictionary keys where we only need the string value. Returns null if the current position is not a name (doesn't start with '/'). Constructor with capacity hint for cloning - avoids dictionary resizing THIS IS PURE BACKWARDS COMPATIBILITY METHOD AND SHOULD NOT BE UTILIZED IN NEW IMPLEMENTATIONS!!!!!!! PDFIndirectObject constructor. The referenced object. The object number. The object generation number. Specifies that the indirect object is linked from a single object. Performs partial FlateDecode decompression, reading only the first maxBytes. Note: This method ignores predictor processing since it's meant for header reading only. Sets a base stream object for copy-on-write behavior. The stream data will be borrowed from the base object until this stream is modified. This avoids copying large stream data (images, fonts) during cloning operations. The source stream object to borrow data from Returns true if this stream is currently borrowing data from a base object. Decompresses only the first maxBytes of the stream data. Optimized for reading headers (e.g., ICC profile headers) without decompressing entire streams. Only supports single FlateDecode filter; falls back to full decompression for other filters. Output byte array containing the decompressed header data. Maximum number of bytes to decompress. GdPictureStatus indicating success or failure. A name object is an atomic symbol uniquely defined by a sequence of characters. Uniquely defined means that any two name objects made up of the same sequence of characters are identically the same object. Atomic means that a name has no public structure; although it is defined by a sequence of characters, those characters are not considered elements of the name. A slash character(/) introduces a name.The slash is not part of the name but is a prefix indicating that the following sequence of characters constitutes a name.There can be no white-space characters between the slash and the first character in the name. The name may include any regular characters, but not delimiter or white-space characters (see Section 3.1, “Lexical Conventions”). Beginning with PDF 1.2, any character except null (character code 0) may be included in a name by writing its 2-digit hexadecimal code, preceded by the number sign character (#); see implementation notes 3 and 4 in Appendix H. This syntax is required to represent any of the delimiter or white-space characters or the number sign character itself; it is recommended but not required for characters whose codes are outside the range 33 (!) to 126 (~). Uppercase and lowercase letters are considered distinct: /A and /a are different names Converts a string to PDF name format directly as bytes, avoiding intermediate string allocation. More efficient than ToPDFNameU + StringUtils.GetBytes for writing to streams. Returns the number of UTF-8 bytes needed to encode a character. Writes a character as UTF-8 bytes with # hex escaping. Returns new write position. Decodes a PDF string into a provided buffer, avoiding allocation. Returns the number of bytes written. Decodes a PDF string literal from byte[] source into a provided buffer, avoiding allocation. The input should start after '(' and end before ')' (i.e., pass start+1, len-2 for "(text)"). Returns the number of bytes written. Represents a document bookmark, associating a navigable link location with display text and a style. Used to produce PDF bookmarks (outline entries) from document headings or named bookmarks during conversion. Gets the link that defines the bookmark's clickable area and destination within the document. Gets the display text of the bookmark, typically the heading content or the bookmark name. Gets the style associated with the bookmark (e.g., "Heading1", "Heading2", "Bookmark"), which determines its hierarchy level in the PDF outline. Initializes a new instance of the class. The link defining the bookmark's clickable area and destination location. The display text for the bookmark. The style name indicating the bookmark's type or heading level. Handles document comments. The id of the comment, extracted from DOCX. The author of the comment The date and time of the comment. The text of the comment If positive, the comment has a parent, i.e. is a reply to a comment The rectangle that surrounds the reference to the comment in the document. The points that define the region to highlight The page where the comment is located. The color of the comment annotation. The constructor. /// Handles link. Horizontal position, of the bounding box of the link, from the top-left origin, in inches. Vertival position of the bounding box of the link, from the top-left origin, in inches. Width of the bounding box of the link, in inches. Height of the bounding box of the link, in inches. The page destination of the link, if any. The page destination of the link, if any. The bounding box of the destination of the link, from the top-left origin, in inches, if any. The zoom level of the destination, if any. The destination uri, if any. the number of timesteps of our model. Our models have an output size of : timeSteps x vocabularyLen Defines internal constants for OCR processing, including optimal margins for LSTM-based character recognition. Standard OCR engine that performs optical character recognition on a single region or full page of an image. This engine handles the complete OCR workflow including: Image preprocessing and binarization Skew detection and correction Orientation detection Text recognition with Tesseract OCR Multiple refinement passes for improved accuracy Table detection and processing Form field and key-value pair extraction Special context support (MICR, MRZ, numeric-only, handwritten) The engine supports various OCR contexts (document, single line, single word, etc.) and can be configured to favor either speed or accuracy. It includes sophisticated refinement strategies for handling non-dictionary words, character confusion, and vertical text blocks. Initializes a new instance of the class. Performs OCR on a specified region of interest within the image. The region of interest to process. If null, the entire image is processed. The ROI will be clamped to the image boundaries if it extends beyond them. Optional process monitor for timeout and cancellation support. Optional character size filters to restrict recognition to characters within specific dimension ranges. Can be null to disable character filtering. When this method returns, contains the OCR result with recognized text and layout information, or null if OCR failed. A indicating the result of the operation. Returns on success, if no image has been set, or an error status if OCR processing fails. This method performs a complete OCR workflow including: Image preprocessing (binarization, despeckling) Skew detection and correction Orientation detection (if enabled) Text recognition with the Tesseract engine Layout analysis and refinement Table detection (if enabled and in document mode) Key-value pair extraction (if enabled) Various accuracy refinement passes If orientation appears suspicious based on content quality, the method will automatically attempt refinement with alternative rotation angles to improve accuracy. The engine behavior is controlled by properties inherited from , including OcrMode, ContextMode, DetectOrientation, DetectTables, and various refinement enable flags. Attempts to improve OCR results by re-running with an alternative page rotation. The OCR configuration settings. The alternative rotation angle to try (0, 90, 180, or 270 degrees). Outputs true if the alternative rotation produced better results; otherwise, false. A indicating success or failure. This method is used when orientation detection confidence is low or results seem poor. It: Compares current average word score Re-runs OCR with the alternative rotation Keeps the rotation that produces better quality results If the alternative rotation doesn't improve results, the method reverts to the original rotation and page layout. Executes the internal OCR processing workflow, handling different special contexts and applying appropriate refinements. A indicating the result of the operation. Returns on success, or an error status if processing fails. This method routes processing to specialized handlers based on the OCRSpecialContext: - Optimized for 1-2 digit recognition - Optimized for single-line numeric content - Machine-readable zone (passport, ID) recognition / - Bank check MICR line recognition - Machine learning-based numeric recognition - Handwritten digit recognition - All-caps alphanumeric recognition Default (None) - Standard document OCR with full pipeline For standard document OCR, the method performs: Image preprocessing (if not a special context) Skew detection and correction (if applicable) Dictionary validation Layout analysis preflight check Orientation detection Table detection (in full-page document mode with accuracy setting) Main OCR recognition (document content or isolated tables) Multiple refinement passes (layout, NPL, word segmentation, etc.) Table processing and analysis Key-value pair detection (if enabled) Form field detection Block layout refinement Isolated tables are processed in parallel with the main document content for improved performance. Creates an OCR configuration object based on the current engine settings and specified region of interest. The region of interest to include in the configuration. An object configured with the engine's current settings and the specified ROI. The configuration includes all enabled refinement and detection features from the engine's properties, and the provided ROI which may be a sub-region of the full image. Releases the unmanaged resources used by the and optionally releases the managed resources. true to release both managed and unmanaged resources; false to release only unmanaged resources. Releases all resources used by the . This method releases both managed and unmanaged resources, including closing any loaded images and releasing the Tesseract OCR engine. It's recommended to call this method when you're finished using the engine to free resources promptly. Alternatively, use the engine in a using statement for automatic disposal. Finalizer for the class. This finalizer is called by the garbage collector if the method was not called. It ensures that unmanaged resources are released even if the engine is not explicitly disposed. Abstract base class for OCR engines that provides core OCR functionality including image preprocessing, orientation detection, skew correction, and various OCR refinement operations. This base class encapsulates common OCR engine functionality that is shared across different OCR engine implementations (, , etc.). It provides: Image management and preprocessing (binarization, despeckling, optimal thresholding) Skew detection and automatic deskewing Orientation detection and page rotation Integration with Tesseract OCR engine OCR variable management Multiple refinement strategies (layout, word segmentation, character confusion, etc.) Table detection and processing Configuration management for OCR contexts and modes Derived classes must implement the method to define their specific OCR workflow while leveraging the base class's preprocessing and refinement capabilities. The file extension used for Tesseract OCR dictionary files. The minimum skew angle (in degrees) required to trigger automatic deskewing. This value was changed from 1.0 to 0.5 degrees to provide better support for isolated table detection. Smaller angles improve accuracy for documents with subtle skew that can affect table structure recognition. The minimum skew angle (in degrees) required to trigger automatic deskewing in optimistic mode. Optimistic mode uses a more aggressive deskewing strategy, which can be useful for documents where skew detection confidence is high. The maximum level of accuracy for orientation detection, on a scale from 1 to 10. Higher levels result in more accurate orientation detection but require more processing time. Level 10 provides the highest accuracy. The default accuracy level used for orientation detection. By default, the engine uses the maximum accuracy level () to ensure reliable page orientation detection. Transforms a region of interest (ROI) from the original image coordinates to the preprocessed binary image coordinates. The region of interest in the original image coordinates. The transformed region of interest in the preprocessed binary image coordinates. This method is used by derived classes to map coordinates between the original input image and the preprocessed binary image, accounting for any transformations applied during preprocessing such as scaling, rotation, or deskewing. Sets page rotation and skew information from a multizone OCR engine after it has processed the page. The detected page rotation in degrees (0, 90, 180, or 270). The number of text blobs used for rotation detection. The secondary rotation angle candidate. The confidence score for the detected rotation. The detected script/language of the page content. The detected skew angle in degrees. This internal method is called by to transfer rotation and skew detection results to zone-specific engines. This allows zones to skip redundant orientation detection since it has already been performed at the page level. Ensures the binary image is prepared before processing, creating it if necessary. A indicating success or failure. This method performs optimal image thresholding to convert the input image to binary format suitable for OCR processing. It uses either advanced thresholding or Tesseract's built-in thresholding depending on configuration. The method also handles: Resolution detection and image scaling Grayscale image creation for certain refinement operations Transform matrix updates to track coordinate mappings Gets or sets the expected number of symbols (characters) in the OCR region. The expected symbol count, or 0 if unknown. This hint can help optimize OCR processing when you know approximately how many characters to expect. For example, if processing a known field like a zip code or phone number, setting this value can improve accuracy and performance. Gets or sets the maximum number of threads used for parallel OCR operations. The maximum thread count. The value is automatically clamped between 1 and the number of processor cores. This property controls parallelization for multi-zone OCR processing and certain refinement operations. Setting a lower value reduces resource usage but may increase processing time for complex documents. Gets a value indicating whether automatic resolution detection is enabled. true if resolution detection is enabled; otherwise, false. Resolution detection automatically determines the optimal DPI for OCR processing and scales the image accordingly. This feature is disabled if is set to true. Gets a value indicating whether the line segmentation refiner is enabled. true if line segmentation refinement is enabled; otherwise, false. The line segmentation refiner improves text line boundaries and helps correct segmentation errors in the initial OCR pass. This feature is disabled if is set to true. Gets a value indicating whether the NPL (Natural Processing Language) refiner is enabled. true if NPL refinement is enabled; otherwise, false. The NPL refiner uses language models and dictionary lookups to improve recognition accuracy by correcting common OCR errors based on linguistic context. This feature is disabled if is set to true. Gets a value indicating whether the word segmentation refiner is enabled. true if word segmentation refinement is enabled; otherwise, false. The word segmentation refiner improves word boundary detection, helping to correctly separate merged words or join split words. This feature is disabled if is set to true. Gets or sets a value indicating whether GdPicture-specific OCR enhancements are disabled. true to disable GdPicture enhancements and use only Tesseract OCR; otherwise, false. When set to true, the engine will use only Tesseract's native OCR capabilities without any GdPicture-specific preprocessing, refinement, or enhancement features. This is primarily used for diagnostic purposes to compare pure Tesseract results with enhanced results. Gets or sets a value indicating whether document-level OCR processing is disabled. true to disable document OCR mode; otherwise, false. This static property is used for diagnostic purposes to disable the document context mode () across all OCR engine instances. Gets a value indicating whether poor content rejection is disabled. true if poor content rejection is disabled; otherwise, false. Poor content rejection filters out low-quality OCR results that are likely to be incorrect, such as text recognized from images, noise, or heavily degraded regions. This is automatically disabled if is set to true. Gets a value indicating whether the advanced thresholder is disabled. true if advanced thresholding is disabled; otherwise, false. The advanced thresholder uses sophisticated algorithms to convert images to binary format, providing better results than Tesseract's built-in thresholding for challenging documents. This is automatically disabled if is set to true. Gets a value indicating whether automatic multi-pass OCR runs are disabled. true if automatic pass runs are disabled; otherwise, false. Automatic pass runs perform multiple OCR passes with different configurations to improve accuracy on difficult content. This is automatically disabled if is set to true. Gets a value indicating whether the character confusion refiner is enabled. true if character confusion refinement is enabled; otherwise, false. The character confusion refiner corrects commonly confused characters (such as '0' vs 'O', '1' vs 'l', '5' vs 'S') based on context and visual similarity analysis. This feature is disabled if is set to true. Gets a value indicating whether the numerical signs refiner is enabled. true if numerical signs refinement is enabled; otherwise, false. The numerical signs refiner improves recognition of mathematical and currency symbols, particularly plus/minus signs, decimal points, and other numerical notation. This feature is disabled if is set to true. Gets a value indicating whether the vertical blocks refiner is enabled. true if vertical blocks refinement is enabled; otherwise, false. The vertical blocks refiner detects and processes text blocks with vertical orientation, such as Asian language text or rotated content. This feature is disabled if is set to true. Gets a value indicating whether the non-dictionary content refiner is enabled. true if non-dictionary content refinement is enabled; otherwise, false. The non-dictionary content refiner improves recognition of content that doesn't appear in standard dictionaries, such as proper nouns, technical terms, product codes, and specialized terminology. This feature is disabled if is set to true. Gets a value indicating whether missed high-quality words detection pass is enabled. true if high-quality words detection is enabled; otherwise, false. This feature performs an additional OCR pass to detect high-quality text that may have been missed during the initial recognition phase, particularly isolated words or small text regions. This feature is disabled if is set to true. Gets a value indicating whether missed high-quality isolated characters detection is enabled. true if isolated character detection is enabled; otherwise, false. This feature detects isolated characters (single letters or numbers) that may have been missed during word-level recognition, such as checkbox labels or standalone symbols. This feature is disabled if is set to true. Gets the character whitelist (charset) used for OCR recognition. A string containing all allowed characters, or null if no restriction is set. The charset restricts OCR to only recognize characters present in the whitelist. For example, setting this to "0123456789" will only recognize numeric characters. This improves accuracy when the expected character set is known in advance. Gets or sets the OCR context mode that determines page segmentation behavior. An value specifying the page segmentation mode. The context mode tells the OCR engine how to interpret the page layout. Common modes include: - Automatic page segmentation with orientation detection - Assume a single uniform block of text - Treat the image as a single text line - Treat the image as a single word - Find text in any order (for forms, tables, etc.) Gets the character blacklist used to exclude specific characters from OCR recognition. A string containing characters to be excluded from recognition, or null if no blacklist is set. The blacklist prevents specific characters from being recognized. This is useful when certain characters are known to cause confusion or should never appear in the expected output. Gets or sets a value indicating whether image preprocessing is enabled. true if preprocessing is enabled; otherwise, false. Image preprocessing includes operations such as: Noise removal (despeckling) Detection and removal of line elements Image inversion detection Speckle level analysis Preprocessing improves accuracy on noisy or degraded images but adds processing time. This feature is disabled if is set to true. Gets or sets a value indicating whether vigorous despeckling is enabled. true to enable aggressive noise removal; otherwise, false. Vigorous despeckling applies aggressive noise removal to images with heavy speckle or degradation. This can improve OCR accuracy on low-quality scans but may remove small legitimate features. Use this setting carefully, as over-aggressive despeckling can reduce accuracy. Gets or sets a value indicating whether automatic page orientation detection is enabled. true to enable orientation detection; otherwise, false. When enabled, the engine automatically detects and corrects page rotation (0, 90, 180, or 270 degrees). This feature analyzes text blobs and script patterns to determine the correct orientation. Orientation detection adds processing time but is essential for documents with unknown rotation. This feature is disabled if is set to true. Gets or sets a value indicating whether key-value pair detection is enabled. true to enable key-value pair detection; otherwise, false. Key-value pair detection identifies form fields and their labels, such as "Name: John Smith" or "Date: 01/01/2024". This feature is useful for structured form processing and data extraction. This feature is disabled if is set to true. Gets or sets a value indicating whether table detection is enabled. true to enable table detection; otherwise, false. Table detection identifies tabular structures in the document and processes them separately to preserve cell boundaries and row/column relationships. This improves accuracy for documents containing tables, grids, or structured layouts. This feature is disabled if is set to true. Gets or sets a value indicating whether automatic skew detection and correction is enabled. true to enable skew detection; otherwise, false. Skew detection identifies and corrects angular misalignment in scanned documents. The engine automatically deskews the image if the detected angle exceeds . This feature is disabled if is set to true. Gets or sets the accuracy level for orientation detection. The accuracy level, clamped between 1 and . Higher values provide more accurate orientation detection at the cost of increased processing time. The default value is (level 10). Lower values (1-5) provide faster but less reliable detection, suitable for high-quality images. Gets or sets the OCR processing mode that balances speed and accuracy. An value specifying whether to favor speed or accuracy. - Faster processing with reduced refinement passes - More thorough processing with additional refinement (default) Gets or sets the special OCR context for optimized recognition of specific content types. An value specifying the specialized recognition mode. Special contexts provide optimized recognition for specific document types: - Standard document OCR (default) - Machine-readable zones (passports, ID cards) / - Bank check MICR lines - Single or double digit recognition - Handwritten digits Gets the width of the input image in pixels. The image width, or 0 if no image is set. Gets the height of the input image in pixels. The image height, or 0 if no image is set. Gets the detected page rotation angle in degrees. The rotation angle: 0, 90, 180, or 270 degrees. This value is populated when is enabled and orientation detection has been performed. The rotation represents the clockwise angle needed to correct the page orientation. Gets the secondary page rotation candidate angle in degrees. The secondary rotation angle: 0, 90, 180, or 270 degrees. When orientation detection is uncertain, this provides an alternative rotation angle. Compare with confidence scores to determine reliability. Gets a clone of the current binary image used for OCR processing. A new instance containing the binary image, or null if no binary image exists. The binary image is the preprocessed, thresholded version of the input image that the OCR engine processes. The caller is responsible for disposing the returned image. Validates that the specified OCR dictionary exists and returns its full path. The dictionary name or language code (e.g., "eng", "fra", "deu"). Outputs the full path to the dictionary file if found; otherwise, outputs the original input. true if the dictionary exists and is valid; otherwise, false. This method searches for Tesseract OCR dictionary files with the extension in the configured dictionary paths. Use this to verify dictionary availability before starting OCR operations. Closes and releases the current OCR image and resets processing state. This method disposes of all image resources (input, binary, and grayscale images) and resets processing flags to their initial state. Call this method when done processing an image before setting a new one. The method resets: All image references (input, binary, grayscale) Transform matrices Processing flags (skew detection, preprocessing, orientation detection) Rotation and skew angle values Speckle regions and line elements Performs image preprocessing operations to improve OCR accuracy. If true, preprocessing runs even if is false; otherwise, preprocessing only runs if enabled and not already performed. A indicating success or failure. Preprocessing includes: Speckled region detection Line element detection (horizontal/vertical rules) High speckle level analysis Image inversion detection and correction The method ensures the binary image is created before preprocessing. Results are cached, so subsequent calls return immediately unless forced. Sets the input image for OCR processing. The image to process. Must not be null. A indicating success or failure. This method: Closes any existing image by calling Converts the image to 8-bit grayscale if needed Normalizes 1-bit images to photometric mode 1 (black is 0, white is 255) Stores the grayscale image for subsequent OCR operations The binary image and transformations are created lazily during OCR processing, not during this call. Sets the images and transformation matrices directly (used internally by derived classes). The original input image. The preprocessed binary image. The grayscale version of the input image. The transformation matrix for coordinate mapping. The transformation matrix for PDF coordinate mapping. This protected method allows derived classes to set preprocessed images directly, bypassing the normal workflow. This is used for optimization when images have already been preprocessed externally. Clears the OCR results from the native Tesseract engine. if successful, or if the engine is not initialized. This method releases the OCR results from memory but does not affect the image or configuration settings. Call this after extracting needed results to free memory before processing another region or page. Sets the dictionary path and language for OCR recognition. The full path to the directory containing Tesseract dictionary files. The language code (e.g., "eng", "fra", "deu") or combined languages (e.g., "eng+fra"). This method must be called before starting OCR operations. The dictionary files must have the extension and exist in the specified path. Use to verify dictionary availability. Clears OCR variables (configuration parameters). If true, clears only user-defined variables; if false, clears all variables. Variables control Tesseract OCR behavior and GdPicture enhancements. Clearing user variables releases the native engine, forcing reinitialization on the next OCR operation. This is necessary when changing core configuration parameters that affect engine initialization. Sets a configuration variable for the OCR engine. The variable name (e.g., "tessedit_char_whitelist", "tessedit_pageseg_mode"). The variable value. true if this is a user-defined variable; false if it's an internal engine variable. If true, prevents overwriting existing user-defined variables; otherwise, allows overwriting. Variables control both Tesseract and GdPicture OCR behavior. Common variables include: tessedit_char_whitelist - Allowed characters tessedit_char_blacklist - Forbidden characters tessedit_pageseg_mode - Page segmentation mode load_system_dawg / load_freq_dawg - Dictionary loading GdPicture-specific variables starting with enable_ or disable_ Setting certain user variables may require engine reinitialization. When overridden in a derived class, performs the core OCR processing logic. A indicating success or failure. This abstract method must be implemented by derived classes (, ) to define their specific OCR workflow. The base class provides common functionality like preprocessing, skew detection, and refinement, which derived classes can leverage in their implementation. Detects and corrects image skew (angular misalignment). If true, runs skew detection even if is false or detection was already performed. If true, performs connected component segmentation before skew detection to filter content. The maximum skew angle to detect, in degrees. Default is 20 degrees. If true, uses a lower threshold () for deskewing. Optional page layout to compute skew from text lines instead of image analysis. Maximum black pixel ratio for regions to include in skew detection. Set to -1 to include all regions. A indicating success or failure. This method detects angular skew in scanned documents and automatically deskews if the angle exceeds the configured minimum threshold. Skew detection requires images with dimensions of at least 51x51 pixels. When is true, the method first segments the image to identify text-like regions, which can improve accuracy for documents with graphics or complex layouts. If deskewing is performed, the method updates the binary and grayscale images and adjusts the transformation matrices accordingly. Initializes a new instance of the class with default configuration. The constructor sets up default values for all OCR configuration variables: Context mode: Resolution detection: Enabled All refiners: Enabled (line segmentation, NPL, word segmentation, character confusion, etc.) Table and key-value pair detection: Enabled Image preprocessing: Enabled Skew and orientation detection: Disabled by default (enable via properties) Poor content rejection: Enabled These defaults provide optimal accuracy for most document types. Adjust individual properties after construction to customize behavior for specific use cases. Processes the main document content, excluding isolated table regions. The binary image to process. The region of interest in transformed coordinates. List of table regions to be excluded from main processing. A indicating success or failure. This method runs OCR on the primary document content, masking out table regions with black fill to prevent their text from being processed as part of the main flow. Tables are processed separately by . Processes isolated table regions in parallel with specialized OCR settings. List of detected table regions to process. Thread processing the main document content (this method waits for it to complete). A indicating success or failure. This method processes tables separately from the main content using optimized OCR settings ( or depending on table attributes). Each table is processed in parallel for optimal performance. The method includes quality filtering to reject low-confidence table recognition results that may represent images or graphics rather than actual tables. Rejected tables are marked as non-text regions. Refines horizontal text lines that contain non-dictionary words. The OCR configuration settings. A indicating success or failure. This method re-processes horizontal text lines that contain words not found in the dictionary, which may be proper nouns, technical terms, or product codes. The refiner is skipped if the page has suspicious rotation (indicating possible orientation detection errors). Runs the block layout refiner to improve text block structure and boundaries. A indicating success or failure. The block layout refiner analyzes and corrects text block boundaries, paragraph structure, and reading order. This refiner only runs when is set to and a page layout exists. Executes all enabled OCR refinement passes to improve recognition accuracy. The OCR configuration specifying which refiners are enabled. The region of interest in transformed coordinates. A indicating success or failure. This method orchestrates multiple refinement passes in a specific order: Vertical blocks refinement (for rotated or vertical text) Post-processing (segmentation, word size analysis) Word layout refinement High-quality missed words detection Non-dictionary content refinement (proper nouns, technical terms) Suspicious content refinement (likely OCR errors) Numerical signs refinement (plus/minus, decimals) NPL (Natural Processing Language) refinement Final word layout pass (merges split URI parts) Each refiner may update the page layout, triggering post-processing to update word spacing and structure. The method respects the configuration to skip disabled refiners. Performs post-processing operations on OCR results to refine accuracy and structure. The OCR configuration settings. The page layout containing OCR results to refine. If true, enables line-level refinement with re-OCR capability; otherwise, only performs structural line refinement. A indicating success or failure. Post-processing includes: Segmentation refinement (word and character boundary correction) Word size refinement (font size and baseline adjustment) Line layout refinement (line boundary and reading order) Character confusion correction (0/O, 1/l, etc.) Dirty content rejection (low-quality regions, noise) Word data type classification (numeric, alphanumeric, etc.) Word spacing updates This internal method is called after each refinement pass and after the initial OCR run. Line refining is only enabled on the first post-processing call to avoid redundant work. Releases the resources used by the . true to release both managed and unmanaged resources; false to release only unmanaged resources. This method follows the standard .NET Dispose pattern. When is true, it releases the native Tesseract OCR engine and suppresses finalization. This method is safe to call multiple times. Releases all resources used by the . This method releases the native Tesseract OCR engine but does not close the current image. Call separately if you need to release image resources. After calling Dispose, the OCR engine instance should not be used for further operations. Finalizer for the class. The finalizer ensures that unmanaged resources (native Tesseract engine) are released even if Dispose is not called explicitly. However, it's recommended to always call Dispose explicitly to ensure timely resource cleanup. Multi-zone OCR engine that performs optical character recognition on multiple regions within an image. This engine processes multiple zones in parallel, where each zone can have its own OCR configuration, context mode, and character filtering settings. The results from all zones are assembled into a single unified page layout. This is particularly useful for documents with different types of content in different regions (e.g., mixed languages, tables, form fields). Initializes a new instance of the class. Performs OCR on multiple zones within the image, processing each zone in parallel with zone-specific configurations. The list of zones to process. Each zone defines a region and its OCR configuration. Optional process monitor for timeout and cancellation support. When this method returns, contains the assembled OCR result from all zones, or null if OCR failed. A indicating the result of the operation. Returns on success, if no image has been set, if zones is null or empty, or an error status if OCR processing fails. This method processes each zone independently in parallel, allowing different OCR settings per zone. Each zone can specify its own: OCR context (document, single line, single word, etc.) OCR mode (favor speed or accuracy) Character whitelist/blacklist Dictionary loading preferences Character size constraints The zones are processed with a configurable degree of parallelism (up to 8 threads by default). After all zones complete, their layouts are merged into a single unified result. If orientation appears suspicious, the method will automatically attempt refinement with alternative rotation angles. Attempts to improve OCR results by re-running with an alternative page rotation. The OCR configuration settings. The alternative rotation angle to try (0, 90, 180, or 270 degrees). The list of zones to process. Each zone defines a region and its OCR configuration. Outputs true if the alternative rotation produced better results; otherwise, false. A indicating success or failure. This method is used when orientation detection confidence is low or results seem poor. It: Compares current average word score Re-runs OCR with the alternative rotation Keeps the rotation that produces better quality results If the alternative rotation doesn't improve results, the method reverts to the original rotation and page layout. Executes the internal OCR processing workflow for multi-zone recognition. A indicating the result of the operation. Returns on success, or an error status if processing fails. This method performs the following steps: Prepares the optimal binary image for OCR processing Detects and corrects skew angle Validates the OCR dictionary Performs image preprocessing (noise removal, etc.) Validates layout analysis feasibility Detects page orientation Processes each zone in parallel with zone-specific settings Assembles all zone results into a unified page layout Each zone is processed by a separate instance, allowing independent configuration and parallel execution for improved performance. Generates a unique allocator ID for a zone OCR engine combining instance ID, zone index, thread ID, and timestamp. The index of the zone being processed. A unique string identifier for the allocator. The ID format is: "MZ{instanceId}_Z{zoneIndex}_T{threadId}_{timestamp}_{guid}" This ensures uniqueness even in highly parallel scenarios. Creates and initializes a new OCR engine instance for processing a single zone. The index of the zone being processed. A configured instance with the parent engine's language and variables. The returned engine inherits the dictionary path, language, and all OCR variables from the parent multi-zone engine. Zone-specific overrides can be applied separately via . Configures an OCR engine with zone-specific settings including context, mode, and character filtering. The OCR engine instance to configure. The zone containing the configuration settings to apply. When this method returns, contains the character filter for the zone, or null if no filter is needed. Always returns . This method applies zone-specific configuration including: OCR context mode (if different from default) OCR processing mode (speed vs accuracy) Character whitelist and blacklist Dictionary loading preferences (main and frequency dictionaries) Language model penalties for non-dictionary words Character size constraints (min/max width/height) The zone's bounding box is also transformed to match the preprocessed bitmap coordinates. Creates an OCR configuration object based on the current engine settings. An object configured with the engine's current settings. The configuration includes the full page rectangle as the ROI and all enabled refinement and detection features from the engine's properties. Releases the unmanaged resources used by the and optionally releases the managed resources. true to release both managed and unmanaged resources; false to release only unmanaged resources. Releases all resources used by the . This method releases both managed and unmanaged resources, including closing any loaded images. It's recommended to call this method when you're finished using the engine to free resources promptly. Alternatively, use the engine in a using statement for automatic disposal. Finalizer for the class. This finalizer is called by the garbage collector if the method was not called. It ensures that unmanaged resources are released even if the engine is not explicitly disposed. Concrete implementation of the OCR engine that performs optical character recognition on a single zone within an image. This class is the core OCR processing engine that handles the complete OCR workflow for a single region (zone) of an image. It supports multiple specialized recognition contexts and advanced features: Special Contexts: MICR (E13B, CMC7), MRZ (Machine Readable Zone), numeric-only recognition Table Detection: Automatic detection and structured extraction of tabular data Form Field Detection: Identification of form fields and their relationships Key-Value Pair Extraction: Intelligent extraction of field names and values from forms Advanced Refinement: Multiple refinement passes to improve accuracy Layout Analysis: Hierarchical block, paragraph, line, word, and character detection The engine integrates with the Tesseract OCR library and applies GdPicture-specific enhancements including preprocessing, noise reduction, and post-processing refiners. It's designed to be used by for parallel processing of multiple zones, or standalone for single-zone OCR operations. Initializes a new instance of the class. The constructor initializes the base OCR engine with default settings. The engine must be configured with images and transforms using before performing OCR. Performs OCR on a specific zone within the image using zone-specific configuration settings. The defining the region to process and its OCR configuration (context mode, character filters, dictionary settings, etc.). Optional for timeout and cancellation support. Pass null for no monitoring. When this method returns, contains the with the OCR results for the zone, or null if OCR failed. A indicating the result of the operation. Returns on success, if images have not been set via , or an error status if OCR processing fails. This method is the main entry point for single-zone OCR processing. It: Extracts the zone configuration and character filters Applies zone-specific OCR settings Executes the internal OCR workflow Returns the page layout results for the zone The zone's bounding box, context mode, OCR mode, and character filtering settings determine how the OCR engine processes the specified region. Different zones can have completely independent configurations. Before calling this method, you must call to provide the input, grayscale, and binary images along with their transformation matrices. Executes the internal OCR processing workflow for the configured zone. A indicating the result of the operation. Returns on success, if the required dictionary is not available, or an error status if processing fails. This method implements the complete OCR processing pipeline, handling multiple specialized recognition contexts and features. The processing flow varies based on the special context: Special Contexts: - Optimized for 1-2 digit recognition (96.7% accuracy, ~128ms) - Single line numeric recognition (83% accuracy, ~10ms) - Machine Readable Zone for passports/IDs (88.67% accuracy, ~994ms) - MICR E13B font for bank checks (82.99% accuracy, ~426ms) - MICR CMC7 font for European checks (91.36% accuracy, ~303ms) - Machine learning-based numeric line recognition - ML-based handwritten numeric recognition - ML-based uppercase alphanumeric recognition Standard OCR Processing (non-special contexts): Dictionary validation Table detection (if enabled) - identifies isolated tables and negative blocks Image preprocessing - noise reduction, contrast adjustment Tesseract OCR engine initialization and execution Refinement passes - line segmentation, word segmentation, character confusion correction Table processing - structured extraction with rows/columns/cells Key-value pair detection (if enabled) - form field extraction Form field detection - identifies form elements and relationships Block layout refinement - improves block boundaries and hierarchy The method uses parallel processing when both main content and isolated tables are present, processing them concurrently for improved performance. Sets the line elements for this zone by filtering line elements that fall within the specified region of interest. The complete list of line elements detected on the full page. Can be null if no line detection was performed. The region of interest (bounding rectangle) for this zone. Only line elements completely within this region are kept. Line elements represent detected lines, rules, and graphical elements in the document that can affect OCR processing. This method filters the full page's line elements to include only those relevant to the current zone. Line elements are used for: Table detection - identifying cell boundaries and grid structures Layout analysis - detecting document structure and regions Text flow detection - understanding reading order If is null, no line elements are set for this zone. Extracts and creates a character size filter from the zone's configuration. The zone containing the configuration with character size constraints. An instance with the zone's character size constraints, or null if no size constraints are specified in the zone configuration. Character size filtering allows the OCR engine to ignore characters that fall outside specified width and height ranges. This is useful for: Filtering out noise and artifacts that are too small Excluding decorative elements that are too large Focusing on text of a specific size range If the zone configuration is null or all size constraints are zero (no constraints), the method returns null to indicate no filtering should be applied. Creates a comprehensive OCR configuration object from the zone's settings and the engine's global settings. The zone containing the specific OCR configuration settings. An object combining zone-specific settings (context, bounding box, character filters, OCR mode) with engine-level settings (refiners, table detection, key-value pair detection). This method merges zone-specific configuration with engine-level settings to create a complete configuration for OCR processing. The configuration includes: Zone-Specific Settings: OCR context mode (page segmentation behavior) Bounding box (region of interest) Character blacklist (forbidden characters) Character whitelist (allowed characters) OCR mode (speed vs accuracy) Engine-Level Settings: Refinement passes (line segmentation, word segmentation, character confusion correction, etc.) Table detection and processing Key-value pair extraction Poor content rejection Vertical blocks handling Numerical signs refinement Missed high-quality words detection Non-dictionary content refinement Sets the images and transformation matrices required for OCR processing. The original input image in its native format (color or grayscale). The grayscale version of the input image. Can be null if the input is already grayscale. The binary (black and white) version of the image, preprocessed and optimized for OCR. This is the primary image used for text recognition. The transformation matrix that maps from the original image coordinates to the preprocessed binary image coordinates. Used to transform OCR results back to original coordinates. The transformation matrix for converting coordinates to PDF space (72 DPI units). Used when exporting OCR results to PDF format. This method must be called before to provide the engine with the necessary images and coordinate transformations. The images and transforms are typically prepared by the parent or by preprocessing steps. Image Roles: - Original image, used for quality checks and certain preprocessing - Grayscale version, used for advanced analysis - Binary image, the primary input for Tesseract OCR Transform Matrices: - Handles rotation, scaling, and translation from original to preprocessed space - Converts coordinates to PDF units (points at 72 DPI) The OcrResult class manages the ocr result. The standard rotation applied to the page before starting the OCR process. Accepted values are 0, 90, 180 and 270. The detected page skew angle, in degrees, clockwise. The paragraphs of the page. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. The default associated with a default instance. The source-generated options associated with this context. The standard rotation of the paragraph. Accepted values are 0, 90, 180 and 270. The text writing direction. Supported values are: 0 for left to right, 1 for right to left, 2 for top to bottom. The lines of the paragraph. The words of the line. The bounding box. It is not mandatory to provide it since it can be computed from character boxes. The characters of the word. The bounding box. The character value. The TesseractBlock structure holds the properties of a block. This is the data structure retrieved by the OCR engine wrapper. The top coordinate of the bounding box. The left coordinate of the bounding box. The bottom coordinate of the bounding box. The right coordinate of the bounding box. The number of paragraphs within the block. The writing direction. May be: WRITING_DIRECTION_LEFT_TO_RIGHT = 0, WRITING_DIRECTION_RIGHT_TO_LEFT = 1, WRITING_DIRECTION_TOP_TO_BOTTOM = 2, The orientation. May be: ORIENTATION_PAGE_UP = 0, ORIENTATION_PAGE_RIGHT = 1, ORIENTATION_PAGE_DOWN = 2, ORIENTATION_PAGE_LEFT = 3, The type. The skew angle. The TesseractCharacter structure holds the properties of a character. This is the data structure retrieved by the OCR engine wrapper. The top coordinate of the bounding box. The left coordinate of the bounding box. The bottom coordinate of the bounding box. The right coordinate of the bounding box. The confidence. The character value. The TesseractParagraph structure holds the properties of a paragraph. This is the data structure retrieved by the OCR engine wrapper. The top coordinate of the bounding box. The left coordinate of the bounding box. The bottom coordinate of the bounding box. The right coordinate of the bounding box. The number of text lines within the paragraph. The TesseractTextLine structure holds the properties of a text line. This is the data structure retrieved by the OCR engine wrapper. The top coordinate of the bounding box. The left coordinate of the bounding box. The bottom coordinate of the bounding box. The right coordinate of the bounding box. The number of words within the text lines. The TesseractWord structure holds the properties of a word. This is the data structure retrieved by the OCR engine wrapper. The top coordinate of the bounding box. The left coordinate of the bounding box. The bottom coordinate of the bounding box. The right coordinate of the bounding box. The number of characters within the word. The number of spaces before the word. */ The is bold flag. The is italic flag. The is underlined flag. The is monospace flag. The is serif flag. The is small caps flag. The size of the font, in points. The universal fontID; The font name. Specifies if the word was found in a dictionary. The name of the language used to recognize this word. The word confidence, in the range [0 - 100]. This class is responsible for matching strings to Data types. We need data types to help us give more meaning to words and chunks. We invoke a set of tasks in the "DataTypeRules" class, each of this task validates the text against a data type This methods tries to match the input string to several data types, it will return a set of all positive matches This class contains a set of tasks that will match the input text to a particular datatype Ideally, all the symbols in the following link should be matched: https://www.xe.com/symbols.php Defines size-based filtering criteria for OCR character recognition by specifying minimum and maximum width and height constraints. Configuration settings for OCR processing that control various refinement strategies, detection features, and processing modes. This class encapsulates all configuration parameters needed for an OCR operation, including character filtering, refinement options, and special detection features. Many settings are automatically determined based on the OCR mode (speed vs accuracy) and context (document, single line, etc.). Indicates whether to perform only segmentation without character recognition. Indicates whether processing a full-page document (ROI matches entire image dimensions). Indicates whether layout refinement is enabled to improve text structure detection. Indicates whether NPL (Natural Pattern Learning) refinement is enabled for improved accuracy. Indicates whether word segmentation refinement is enabled to improve word boundary detection. Indicates whether poorly segmented words should be rejected during refinement. Indicates whether table detection is enabled for identifying and processing tabular content. Indicates whether key-value pair detection is enabled for form field extraction. Indicates whether character confusion refinement is enabled to resolve similar-looking characters. Indicates whether vertical text block refinement is enabled. Indicates whether numerical sign refinement is enabled for better +, -, and decimal point recognition. Indicates whether detection of missed high-quality words is enabled for improved recall. Indicates whether refinement of non-dictionary content is enabled for alphanumeric text. Indicates whether poor content rejection is disabled (when true, keeps all recognized content). The region of interest (ROI) within the image to process. The OCR context mode that defines the expected content structure. Determines whether a specific character is allowed according to the character whitelist and blacklist settings. The character to check. true if the character is allowed; otherwise, false. A character is disallowed if it appears in the blacklist, or if a whitelist is defined and the character is not in it. Initializes a new instance of the class with the specified OCR parameters. The OCR context mode that defines the expected content structure. The region of interest within the image to process. Characters that should not be recognized (blacklist). Characters that are allowed to be recognized (whitelist). If null or empty, all characters except blacklisted ones are allowed. The OCR processing mode (favor speed or accuracy). The width of the input image in pixels. The height of the input image in pixels. Whether to enable line segmentation refinement. Whether to enable NPL (Natural Pattern Learning) refinement. Whether to enable character confusion refinement. Whether to enable word segmentation refinement. Whether to disable rejection of low-confidence content. Whether to enable table detection. Whether to enable key-value pair detection. Whether to enable vertical text block refinement. Whether to enable numerical sign refinement. Whether to enable detection of missed high-quality words. Whether to enable refinement of non-dictionary content. This constructor automatically determines optimal settings for various refinement features based on the provided OCR mode and context. For example, most refinement features are only enabled when using mode. Provides utility methods for identifying OCR dictionary language characteristics, including Latin-based languages, Arabic/Indic scripts, and multi-language configurations. Provides utility methods for OCR image processing operations including thresholding, block type detection, and image transformations. Represents an OCR configuration variable with its name, value, and metadata indicating whether it's user-defined or native to the OCR engine. Specifies the type of content in an OCR zone. Different zone types are processed with different OCR strategies to optimize recognition accuracy for specific content structures. Indicates the zone contains regular text content. Text zones are processed with standard OCR algorithms optimized for continuous text, paragraphs, and general document content. Indicates the zone contains a table structure. Table zones are processed with specialized algorithms that preserve cell boundaries, row/column relationships, and tabular structure. Configuration settings for an OCR zone that control recognition behavior and constraints. This class provides fine-grained control over OCR processing for individual zones, allowing different settings for different regions of the same image. Key configuration areas include: Language model penalties for dictionary matching Dictionary loading options Character size constraints (min/max width and height) Character set filtering (whitelist and blacklist) Gets or sets the language model penalty applied to words not found in the dictionary. A penalty value between 0.0 and 1.0. Default is 0.1. Higher values make non-dictionary words less likely to be recognized. This penalty affects the OCR engine's confidence scoring for words that don't appear in the loaded dictionaries. Higher penalties favor dictionary words, which can improve accuracy for standard text but may reduce accuracy for proper nouns, technical terms, or specialized vocabulary. Gets or sets the language model penalty applied to words not found in the frequent words dictionary. A penalty value between 0.0 and 1.0. Default is 0.15. Higher values favor more common words. This penalty affects words that appear in the main dictionary but not in the frequent words dictionary. It helps the OCR engine favor commonly-used words over rare vocabulary, which can improve accuracy for general content. Set lower values when processing documents with specialized or uncommon terminology. Gets or sets a value indicating whether to load the main system dictionary. true to load the main dictionary; otherwise, false. Default is true. The main system dictionary (load_system_dawg in Tesseract) contains the primary vocabulary for the language. Disabling it can improve speed for specialized content like numeric data, codes, or when using a custom character set that doesn't match dictionary words. Gets or sets a value indicating whether to load the frequent words dictionary. true to load the frequent words dictionary; otherwise, false. Default is true. The frequent words dictionary (load_freq_dawg in Tesseract) contains commonly-used words. The OCR engine uses this to favor common words over rare ones, improving accuracy for general content. Disable for specialized documents where rare or technical terminology is expected. Gets or sets the minimum character height in pixels. The minimum character height in pixels, or 0 for no minimum constraint. Default is 0. Setting a minimum height filters out characters smaller than the specified size, which can help reduce false positives from noise or very small text. Use this when you know the approximate character size and want to exclude smaller artifacts. Gets or sets the maximum character height in pixels. The maximum character height in pixels, or 0 for no maximum constraint. Default is 0. Setting a maximum height filters out characters larger than the specified size, which can help exclude titles, headers, or decorative text when you want to focus on body text of a specific size range. Gets or sets the minimum character width in pixels. The minimum character width in pixels, or 0 for no minimum constraint. Default is 0. Setting a minimum width helps filter out narrow artifacts, thin lines, or very small characters that might be noise. This is useful for processing documents with consistent character sizing. Gets or sets the maximum character width in pixels. The maximum character width in pixels, or 0 for no maximum constraint. Default is 0. Setting a maximum width helps filter out wide characters or graphical elements. This is useful when processing monospaced text or when you want to exclude decorative elements that are wider than normal characters. Gets or sets the character whitelist (allowed characters) for OCR recognition. A string containing all allowed characters, or an empty string for no restriction. Default is empty. The character set restricts OCR to only recognize characters present in the whitelist. This improves accuracy when the expected character set is known in advance. Examples: "0123456789" - Numeric only "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" - Uppercase alphanumeric "$€£¥0123456789.," - Currency values Gets or sets the character blacklist (excluded characters) for OCR recognition. A string containing characters to exclude from recognition, or an empty string for no exclusions. Default is empty. The blacklist prevents specific characters from being recognized. This is useful when certain characters are known to cause confusion or should never appear in the expected output. For example, blacklisting "O" (letter O) when processing pure numeric content helps prevent confusion with "0" (zero). Initializes a new instance of the class with default settings. Default values: LanguageModelPenaltyNonDictWords: 0.1 LanguageModelPenaltyNonFreqDictWords: 0.15 LoadMainDictionary: true LoadFreqWordsDictionary: true Character size constraints: 0 (no constraints) CharacterSet: empty (no whitelist) CharacterBlackList: empty (no blacklist) Resets all configuration properties to their default values. This internal method is called by the constructor and can be used to restore default settings after modification. All properties are reset to their initial values as documented in the constructor. Represents a rectangular region within an image designated for OCR processing with specific settings. An OCR zone defines a specific area of an image to be processed with customized OCR settings. This enables multi-zone OCR processing where different regions of the same image can be processed with different configurations optimized for their content type. Common use cases: Processing form fields with different character sets (numeric vs. alphanumeric) Applying different accuracy/speed tradeoffs to different regions Using different context modes for tables vs. continuous text Applying character size constraints to specific areas Gets or sets the bounding rectangle that defines the zone's location and size within the image. A specifying the zone's position (Left, Top) and dimensions (Width, Height) in pixels. The bounding box coordinates are relative to the top-left corner of the image. All OCR processing for this zone is restricted to this rectangular region. Gets or sets the type of content in this zone. An value indicating whether the zone contains text or tabular data. The zone type determines which OCR algorithms and processing strategies are applied. For example, uses specialized table processing to preserve cell structure and boundaries. Gets or sets the OCR processing mode that balances speed and accuracy for this zone. An value specifying whether to favor speed or accuracy. - Faster processing with fewer refinement passes - More thorough processing with additional refinement Different zones can use different modes; for example, using FavorSpeed for low-priority regions and FavorAccuracy for critical data fields. Gets or sets the OCR context mode that determines page segmentation behavior for this zone. An value specifying the page segmentation mode. Common context modes for zones: - For single-line fields (names, addresses) - For isolated words or codes - For uniform text blocks - For scattered text (forms, tables) Gets or sets the detailed configuration settings for this zone. An instance containing character filtering, dictionary settings, and size constraints. The zone configuration provides fine-grained control over recognition behavior, including character whitelists/blacklists, dictionary penalties, and character size filtering. This allows each zone to be optimized for its specific content requirements. Initializes a new instance of the class with the specified parameters. The rectangular region defining the zone's location and size. The type of content in the zone (text or table). The OCR processing mode (speed vs. accuracy). The OCR context mode (page segmentation behavior). The detailed configuration settings for the zone. All parameters are required to fully define an OCR zone. The zone will be processed according to the specified configuration when passed to a multi-zone OCR engine. Refines OCR results by detecting and correcting commonly confused characters such as '|' vs 'I/1', 'O' vs '0', '(' vs '0/O/o', and other similar ambiguities based on character shape and context analysis. Filters and removes low-quality OCR results including poorly recognized words, isolated symbols, and content that doesn't meet minimum confidence thresholds, improving overall result quality by rejecting unreliable detections. Refines horizontally-oriented text lines containing non-dictionary words by re-processing them with specialized dictionaries optimized for alphanumeric content. Refines the layout and structure of text blocks within OCR results to improve organization and formatting. Refines word-level layout by merging fragmented words, adjusting spacing, and improving word boundary detection based on image analysis and character relationships. Represents a layout element that requires refinement because it contains non-dictionary words, along with its character set and refining mode metadata. Specifies the character set mode for refining non-dictionary words during OCR post-processing. Performs character and word segmentation refinement by analyzing connected components, glyph boundaries, and font metrics to improve OCR accuracy. Refines word segmentation by analyzing character spacing, connected components, and font characteristics to correctly identify word boundaries and merge or split characters as needed. VIP: this method must not be called asynchronousely on multiple words of the same layout. Identifies and re-processes words with suspicious recognition quality by re-running OCR using an LSTM recognizer on isolated content regions to improve accuracy. Validates and refines vertically-oriented text blocks by re-processing them with appropriate settings and removing invalid or low-confidence vertical text detections. Manages Tesseract OCR engine operations including variable configuration, OCR execution for various contexts (MRZ, MICR, numeric modes), and result processing. The IOcrResultBrowser interface describes a browser for the ocr result. Starts a block. The block. Ends a block. Starts a paragraph. The paragraph. Ends a paragraph. Starts a text line. The text line. Ends a text line. Starts a word. The word. Ends a word. Fires a character. The word containing the character. Used to provide the font style that is specified at word level in tesseract. The character. Browse browses the result with the provided browser. Renders annotation text Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. The default associated with a default instance. The source-generated options associated with this context. DeepCopy this instance Occurs when the view in the client side should be updated. Specifies a new zoom has been computed. Specifies a new view or page rotation. Specifies the scrollbar options have been changed. Specifies that page alignment configuration changed. The computed horizontal scrollbar position. The computed vertical scrollbar position. Indicates that current page of the vector document must be rasterized. A new document is displayed. A new page is displayed. Specifies if a document is loaded and handled. Specifies that canvas sizes changed. Specifies that the current pas has been altered. Specifies that the current document has been reloaded. Specifies a list of rotated pages. Specifies the viewer display mode. Default value is PageDisplayMode.SinglePageView. Specifies if the image canvas is movable. Default value is false. Defines in the View renderer engine is DPI aware (for example WPF is "DPI aware" while GDI+ is not). Default value is false. The combination of m_Delegates.getPageRotation() and ViewRotation that represents the final rendering rotation of the current page. (Read-Only). The combination of m_Delegates.getPageRotation() and ViewRotation that represents the final rendering rotation of a specific page. The margin to apply to the vertical scrollbar. (Read-Only). The margin to apply to the horizontal scrollbar. (Read-Only). Specifies if the vertical scrollbar must be visible. (Read-Only). Specifies if the horizontal scrollbar must be visible. (Read-Only). Specifies if the max value to apply to the horizontal scrollbar. (Read-Only). Specifies if the max value to apply to the vertical scrollbar. (Read-Only). When SinglePageView mode is set to false, specifies the space between each rendered pages. Specifies the items left margin. Specifies the items top margin. Specifies the items right margin. Specifies the items bottom margin. Defines the size of the image canvas in the DOM, in pixel, for a specific page. The page number. Specifies the size of the region containing all rendered canvas when PageDisplayMode is set to PageDisplayMode.MultiplePagesView. Defines the size of the viewer area, in pixel. Specifies if both scrollbars must be always visible, whatever the zoom configuration is. Default value is false. Specifies if scrollbars are enabled. Turning this property to false forces both scrollbars to be always invisible, whatever the zoom configuration is. Default value is true. Returns the current horizontal zoom level. Returns the current vertical zoom level. Defines the percentage of increasing or decreasing of the level of zoom for 'Zoom In' and 'Zoom Out' operations. Default value is 25. Zoom mode used by the viewer. Default value is ViewerZoomMode.ZoomMode100. Default image alignment within the viewer when the area of the viewer if smaller than the displayed document in its current zoom configuration. Setting this property to DocumentAlignmentTopLeft has the effect to display the most top-left part of the displayed page during "Zoom In" operations. Default value is ViewerDocumentAlignment.DocumentAlignmentMiddleCenter. Specifies if the viewer must keep the page position when the displayed page changes or when a new document is loaded. Default value is false. Specifies if the document must ce centered to the latest provided cursor position when a zoom operation is performed. Default value is false. Default page position within the viewer when the rendering area of the displayed document in its current zoom configuration if smaller than then area of the viewer. Default value is ViewerDocumentPosition.DocumentPositionMiddleCenter. The current rotation of the page view. The latest computed renderer Matrix for the end graphics engine. (Read-Only). If RendererDPIAware is true RenderMatSystem = RenderMat. The latest computed rendering Matrix. (Read-Only). Tries to change the current level of zoom. The new noom level to apply. Specifies if zoom magnet is enabled. A member of the GdPictureStatus enumeration. In case of success, ZoomMode is automatically switched to ViewerZoomMode.ZoomModeCustom. Increases the current level of zoom. A member of the GdPictureStatus enumeration. In case of success, ZoomMode is automatically switched to ViewerZoomMode.ZoomModeCustom. Decreases the current level of zoom. A member of the GdPictureStatus enumeration. In case of success, ZoomMode is automatically switched to ViewerZoomMode.ZoomModeCustom. Update the controller. This method can be called internally and should be called externally when non binded properties have been changed such as scrollbars positions, canvas size, page rotation... The method triggers events, if any, to adjust scrollbars position, max value and visibility. Computes zoom bounds based on system context. The min supported zoom. The max supported zoom. Call this method when a page of the current document has been rotated. Call this method when the document has been closed. Call this method when a new document has been loaded. Call this method when the current document must be reloaded. Call this method when a new page has been loaded. The new selected page. Set True to trigger update events from the controller. Call this method when the current page has been updated. Call this method when the size of one or several pages changed. Call this method when specific pages hae been rotated. Makes a translation of a point coordinates from the viewer space, in pixel, to the document space, in pixel. The Left coordinate, in pixel, of the point over the viewer. The Top coordinate, in pixel, of the point over the viewer. Returns The Left coordinate, in pixel, of the point over the displayed document. Returns The Top coordinate, in pixel, of the point over the displayed document. Makes a translation of a point coordinates from the viewer space, in pixel, to the document space, in pixel. The rendering matrix. The Left coordinate, in pixel, of the point over the viewer. The Top coordinate, in pixel, of the point over the viewer. Returns The Left coordinate, in pixel, of the point over the displayed document. Returns The Top coordinate, in pixel, of the point over the displayed document. Makes a translation of a point coordinates from the viewer space, in pixel, to the document space, in inch. The Left coordinate, in pixel, of the point over the viewer. The Top coordinate, in pixel, of the point over the viewer. Returns The Left coordinate, in inch, of the point over the displayed document. Returns The Top coordinate, in inch, of the point over the displayed document. Makes a translation of a point coordinates from the viewer space, in pixel, to the document space, in inch. The page number of the document. The Left coordinate, in pixel, of the point over the viewer. The Top coordinate, in pixel, of the point over the viewer. Returns The Left coordinate, in inch, of the point over the displayed document. Returns The Top coordinate, in inch, of the point over the displayed document. Makes a translation of a point coordinates from the viewer space, in pixel, to the document space, in inch. The page number of the document. The page rendering matrix. The Left coordinate, in pixel, of the point over the viewer. The Top coordinate, in pixel, of the point over the viewer. Returns The Left coordinate, in inch, of the point over the displayed document. Returns The Top coordinate, in inch, of the point over the displayed document. Makes a translation of a point coordinates from the document space, in pixel, to the viewer space, in pixel. The Left coordinate, in pixel, of the point over the displayed document. The Top coordinate, in pixel, of the point over the displayed document. Returns the Left coordinate, in pixel, of the point over the viewer. Returns the Top coordinate, in pixel, of the point over the viewer. Makes a translation of a point coordinates from the document space, in pixel, to the viewer space, in pixel. The rendering matrix. The Left coordinate, in pixel, of the point over the displayed document. The Top coordinate, in pixel, of the point over the displayed document. Returns the Left coordinate, in pixel, of the point over the viewer. Returns the Top coordinate, in pixel, of the point over the viewer. Makes a translation of a point coordinates from the document space, in inches, to the viewer space, in pixel. The Left coordinate, in inches, of the point over the displayed document. The Top coordinate, in inches, of the point over the displayed document. Returns the Left coordinate, in pixel, of the point over the viewer. Returns the Top coordinate, in pixel, of the point over the viewer. Makes a translation of a point coordinates from the document space, in inches, to the viewer space, in pixel. The page number of the document. The page rendering matrix. The Left coordinate, in inches, of the point over the displayed document. The Top coordinate, in inches, of the point over the displayed document. Returns the Left coordinate, in pixel, of the point over the viewer. Returns the Top coordinate, in pixel, of the point over the viewer. Makes a translation of a point coordinates from the document space, in pixel, to the document space, in inches. The Left coordinate, in pixel, of the point over the document. The Top coordinate, in pixel, of the point over the document. Returns the Left coordinate, in inches, of the point over the document. Returns the Top coordinate, in inches, of the point over the document. Makes a translation of a point coordinates from the document space, in pixel, to the document space, in inches. The page number. The Left coordinate, in pixel, of the point over the document. The Top coordinate, in pixel, of the point over the document. Returns the Left coordinate, in inches, of the point over the document. Returns the Top coordinate, in inches, of the point over the document. Makes a translation of a point coordinates from the document space, in inches, to the document space, in pixels. The Left coordinate, in pixel, of the point over the document. The Top coordinate, in pixel, of the point over the document. Returns the Left coordinate, in pixels, of the point over the document. Returns the Top coordinate, in pixels, of the point over the document. Makes a translation of a point coordinates from the document space, in inches, to the document space, in pixels. The page number. The Left coordinate, in pixel, of the point over the document. The Top coordinate, in pixel, of the point over the document. Returns the Left coordinate, in pixels, of the point over the document. Returns the Top coordinate, in pixels, of the point over the document. Returns the bounds, in pixels, of the viewer area used to render the current page. Returns the coordinates, in pixel, of the visible area of the displayed document. Returns Left pixel (0 based) position of the area. Returns Top pixel (0 based) position of the area. Returns Width of the area in pixel. Returns Height of the area in pixel. Returns the coordinates in inches of the visible area of the displayed document. Returns Left position, in inches, of the area. Returns Top position, in inches, of the area. Returns Width, in inches, of the area. Returns Height, in inches, of the area. This method is internally called before trying to set a new zoom value. Specifies different modes of the segmentation process. Finds bounding boxes of 4-connected components using the Paul Heckbert's stack-based seed fill algorithm. Each detected box is stored within a block. Finds bounding boxes of 8-connected components using the Paul Heckbert's stack-based seed fill algorithm. Each detected box is stored within a block. Identifies page's layout and stores the result into blocks, paragraphes, lines, words and characters. Identifies word's layout in a region of Interest, according to a specified string value, and stores the result into a block, a paragraph, a line, a word and characters. Identifies word's layout, according a specified string value, and stores the result into a block, a paragraph, a line, a word and characters. This method is based on a dynamic programming approach, established by Louisa Kessi. Specifies known data type of a text content. Phone number data type. Email address data type. Currency data type. Number data type. Date Time data type. String data type. Post Code data type. URL data type. Percentage data type. Symbol data type. Vat ID Value data type. Time Period data type. International Bank Account Number data type. Business Identifier Codes data type. Credit card number. unique identifier. Postal address data type. Vehicle identification number. Social security number. IP address data type. Specifies how RAW images must be decoded. Tries to load the embedded JPEG preview bitmap, if such bitmap is not available, the image will be developed to sRGB color space. Develops the image to sRGB color space using a gamma of 2.4 / 12.92. Develops the image to half of its original size. Develops the image to RAW color space using a gamma of 1 / 1. Applies automatic brightness adjustment during the development. Specifies PDF conformance levels currently supported by the PDF conversion engine. The different conformance levels reflect the quality of the archived document and depend on the input material and the documents purpose. PDF/A versions and levels are given one after another as well as PDF/UA version. PDF/A-1 is the first archiving standard based on PDF version 1.4. All resources must be embedded within the PDF/A document itself. PDF/A-2 is based on PDF 1.7. It allows JPEG2000 compression, transparent elements, PDF layers and more. PDF/A-3 is available since October 2012. It allows to embed any file format desired. Level a (accessible) meets all requirements for the standard. Level b (basic) guaranteed that the content of the document can be unambiguously reproduced. Level u (unicode) specifies that all text can be mapped to standard Unicode character codes. PDF/UA-1 is based on ISO 14289-1 specification. The PDF conformance level is PDF/A-1a. The PDF conformance level is PDF/A-1b. The PDF conformance level is PDF/A-2a. The PDF conformance level is PDF/A-2u. The PDF conformance level is PDF/A-2b. The PDF conformance level is PDF/A-3a. The PDF conformance level is PDF/A-3u. The PDF conformance level is PDF/A-3b. The PDF conformance level is PDF/A-4. The PDF conformance level is PDF/A-4e. The PDF conformance level is PDF/A-4f. The PDF conformance level is PDF/UA-1. Specifies PDF conformance levels currently supported by the PDF validation engine. The different conformance levels reflect the quality of the archived document and depend on the input material and the documents purpose. PDF/A versions and levels are given one after another. PDF/A-1 is the first archiving standard based on PDF version 1.4. All resources must be embedded within the PDF/A document itself. PDF/A-2 is based on PDF 1.7. It allows JPEG2000 compression, transparent elements, PDF layers and more. PDF/A-3 is available since October 2012. It allows to embed any file format desired. Level a (accessible) meets all requirements for the standard. Level b (basic) guaranteed that the content of the document can be unambiguously reproduced. Level u (unicode) specifies that all text can be mapped to standard Unicode character codes. The PDF conformance level is PDF/A-1a. The PDF conformance level is PDF/A-1b. The PDF conformance level is PDF/A-2a. The PDF conformance level is PDF/A-2u. The PDF conformance level is PDF/A-2b. The PDF conformance level is PDF/A-3a. The PDF conformance level is PDF/A-3u. The PDF conformance level is PDF/A-3b. The PDF conformance level is PDF/A-4. The PDF conformance level is PDF/A-4e. The PDF conformance level is PDF/A-4f. Specifies the origin's location of the currently used coordinate space. The origin's location is unknown. The origin's location is in the bottom left corner. The origin's location is in the top left corner. The origin's location is in the top right corner. The origin's location is in the bottom right corner. A state specifying the visibility, that is assigned to an optional content group (OCG). The value of the state is undefined. Content belonging to the OCG is invisible. Content belonging to the OCG is visible. Specifies the numbering style to be used for the numeric portion of page labels. The style is undefined. Decimal arabic numerals (1, 2, 3, 4, 5, ...). Uppercase roman numerals (I, II, III, IV, V, ...). Lowercase roman numerals (i, ii, iii, iv, v, ...). Uppercase letters (A to Z for the first 26 pages, AA to ZZ for the next 26, and so on). Lowercase letters (a to z for the first 26 pages, aa to zz for the next 26, and so on). Specifies the type of the image masking. Unknown mask mode. Standard bitmap without masking operation. A monochrome image, in which each sample is specified by a single bit. However, instead of being painted in opaque black and white, the image mask is treated as a stencil mask, that is partly opaque and partly transparent. Sample values in the image do not represent black and white pixels, rather, they designate places on the page that should either be marked with the current color or masked out (not marked at all). Areas, which are masked out, retain their former content. The effect is like applying paint in the current color through a cut-out stencil, which lets the paint reach the page in some places and masks it out in others. In PDF 1.3, the Mask entry in an image dictionary may be an image mask, as described above under “Stencil Masking”, which serves as an explicit mask for the primary (base) image. The base image and the image mask need not have the same resolution (Width and Height values), but since all images are defined on the unit square in user space, their boundaries on the page will coincide, that is, they will overlay each other. The image mask indicates which places on the page are to be painted and which are to be masked out (left unchanged). Unmasked areas are painted with the corresponding portions of the base image, masked areas are not. Defines the Alpha channel to be applied to another image. In PDF 1.3, the Mask entry in an image dictionary may alternatively be an array specifying a range of colors to be masked out. Samples in the image, that fall within this range, are not painted, allowing the existing background to show through. The effect is similar to that of the video technique known as chroma-key. Specifies the viewer preference settings to control the way the document is presented on the screen in Adobe Reader or Acrobat viewer. A flag specifying whether to hide the viewer application’s tool bars when the document is active. Default value: false. (Optional) A flag specifying whether to hide the viewer application’s menu bar when the document is active. Default value: false. (Optional) A flag specifying whether to hide user interface elements in the document’s window (such as scroll bars and navigation controls), leaving only the document’s content displayed. Default value: false. (Optional) A flag specifying whether to resize the document’s window to fit the size of the first displayed page. Default value: false. (Optional) A flag specifying whether to position the document’s window in the center of the screen. Default value: false. (Optional; PDF 1.4) A flag specifying whether the window’s title bar should display the document title taken from the Title entry of the document information dictionary. If false, the title bar should instead display the name of the PDF file containing the document. Default value: false. Specifies how the document should be displayed when opened. Neither document outline nor thumbnail images are visible. Document outline is visible. Thumbnail images are visible. Full-screen mode, with no menu bar, window controls, or any other window visible. (PDF 1.5) Optional content group panel is visible. (PDF 1.6) Attachments panel is visible. Defines the document’s page mode, specifying how to display the document on exiting full-screen mode. Neither document outline nor thumbnail images are visible. Document outline is visible. Thumbnail images are visible. Optional content group panel is visible. Specifies the page layout to be used when the document is opened. Display one page at a time. Display the pages in one column. Display the pages in two columns, with odd-numbered pages on the left. Display the pages in two columns, with odd-numbered pages on the right. (PDF 1.5) Display the pages two at a time, with odd-numbered pages on the left. (PDF 1.5) Display the pages two at a time, with odd-numbered pages on the right. For the internal use only. Unknown signature type. No signature. AdobePPKlite. Specifies the access permissions granted by the signature. Standard digital signature. PDF documents can be digitally signed many times. No changes to the document are permitted; any change to the document invalidates the signature. Permitted changes are filling in forms, instantiating page templates, and signing; other changes invalidate the signature. This is the suggested mode. Permitted changes are the same as for FormFilling, as well as annotation creation, deletion, and modification; other changes invalidate the signature. Specifies various characteristics of the annotation. Flags are undefined. If set, do not display the annotation if it does not belong to one of the standard annotation types and no annotation handler is available. If clear, display such an unknown annotation using an appearance stream specified by its appearance dictionary, if any. (PDF 1.2) If set, do not display or print the annotation or allow it to interact with the user, regardless of its annotation type or whether an annotation handler is available. In cases where screen space is limited, the ability to hide and show annotations selectively can be used in combination with appearance streams. (PDF 1.2) If set, print the annotation when the page is printed. If clear, never print the annotation, regardless of whether it is displayed on the screen. This can be useful, for example, for annotations representing interactive pushbuttons, which would serve no meaningful purpose on the printed page. (PDF 1.3) If set, do not scale the annotation’s appearance to match the magnification of the page. The location of the annotation on the page (defined by the upper-left corner of its annotation rectangle) remains fixed, regardless of the page magnification. (PDF 1.3) If set, do not rotate the annotation’s appearance to match the rotation of the page. The upper-left corner of the annotation rectangle remains in a fixed location on the page, regardless of the page rotation. (PDF 1.3) If set, do not display the annotation on the screen or allow it to interact with the user. The annotation may be printed (depending on the setting of the Print flag), but should be considered hidden for purposes of on-screen display and user interaction. (PDF 1.3) If set, do not allow the annotation to interact with the user. The annotation may be displayed or printed (depending on the settings of the NoView and Print flags), but should not respond to mouse clicks or change its appearance in response to mouse motions. Note: This flag is ignored for widget annotations; its function is subsumed by the ReadOnly flag of the associated form field. (PDF 1.4) If set, do not allow the annotation to be deleted or its properties (including position and size) to be modified by the user. However, this flag does not restrict changes to the annotation’s content, such as the value of a form field. (PDF 1.5) If set, invert the interpretation of the NoView flag for certain events. A typical use is to have an annotation that appears only when a mouse cursor is held over it. (PDF 1.7) If set, do not allow the content of the annotation to be modified by the user. This flag does not restrict deletion of the annotation or changes to other annotation properties, such as position and size. Specifies various types of the markup annotations. Highlight annotation. Underline annotation. Squiggly annotation. StrikeOut annotation. Defines the visibility of the form field, either on screen or in print. The form field is fully visible, both on screen and when printed. The form field is hidden, both on screen and when printed. The form field is visible on screen, but can't be printed. The form field is hidden on screen, but is is visible when printed. Specifies the annotation's border style. Solid - A solid rectangle surrounding the annotation. The default value. Dashed - A dashed rectangle surrounding the annotation. You can specify the dash pattern. Beveled - A simulated embossed rectangle that appears to be raised above the surface of the page. Inset - A simulated engraved rectangle that appears to be recessed below the surface of the page. Underline - A single line along the bottom of the annotation rectangle. Specifies a graphical style of a checkmark in check boxes and radio buttons, when they are checked. Check. Circle. Cross. Diamond. Square. Star. Specifies an annotation's line ending style. A square filled with the annotation’s interior color, if any. A circle filled with the annotation’s interior color, if any. A diamond shape filled with the annotation’s interior color, if any. Two short lines meeting in an acute angle to form an open arrowhead. Two short lines meeting in an acute angle as in the OpenArrow style and connected by a third line to form a triangular closed arrowhead filled with the annotation’s interior color, if any. No line ending. (PDF 1.5) A short line at the endpoint perpendicular to the line itself. (PDF 1.5) Two short lines in the reverse direction from OpenArrow. (PDF 1.5) A triangular closed arrowhead in the reverse direction from ClosedArrow. (PDF 1.6) A short line at the endpoint approximately 30 degrees clockwise from perpendicular to the line itself. Defines the name of an icon to be used in displaying the sticky note annotation. The comment icon. The key icon. The note icon. The default value. The help icon. The new paragraph icon. The paragraph icon. The insert icon. The check icon. The circle icon. The cross icon. The cross-hairs icon. The right arrow icon. The right pointer icon. The star icon. The up arrow icon. The up left icon. Specifies measurement units used in the PDF document. Undefined measurement unit. Point. 1 point = 1/72 inch. Millimeters. Centimeters. 1 centimeter = 1/2.54 inch. Inch. 1 inch = 72 points. Specifies the orientation of a page within the PDF document. The page orientation is undefined. The page orientation is portrait (vertical). The page orientation is landscape (horizontal). Defines the text rendering modes. Fill text. Stroke text. Fill, then stroke text. Neither fill nor stroke text (invisible). Fill text and add to path for clipping. Stroke text and add to path for clipping. Fill, then stroke text and add to path for clipping. Add text to path for clipping. Defines the boundary boxes (page boxes) that relate to the size of the pages in the PDF document. Defines the boundaries of the physical medium on which the page is intended to be displayed or printed. This mostly equals to the actual page size. Defines the visible region. When the page is displayed or printed, its content are to be clipped (cropped) to this rectangle and then imposed on the output medium. Defines the region to which the content of the page should be clipped when output in a production environment. Defines the intended dimensions of the finished page after trimming. Defines the extent of the page’s meaningful content (including potential white space) as intended by the page’s creator. Specifies the encryption algorithm. The encryption algorithm is unknown or invalid. The PDF document is not encrypted. 40-bit RC4 algorithm. RC4 is a copyrighted, proprietary algorithm of RSA Security, Inc. 128-bit RC4 algorithm. RC4 is a copyrighted, proprietary algorithm of RSA Security, Inc. 128-bit AES algorithm. The AES (Advanced Encryption Standard) algorithm (beginning with PDF 1.6). 256-bit AES algorithm. The AES (Advanced Encryption Standard) algorithm (beginning with PDF 1.6). 256-bit AES algorithm. The AES (Advanced Encryption Standard) algorithm with improved password handling (beginning with PDF 1.7 Adobe Extension Level 8 and PDF 2.0 (ISO 32000-2)). Specifies access permissions to the various operations within the PDF document. Allows the user to view the document. Always available. Allows the user to print the document, but possibly not at the highest quality level, see also PdfRightCanPrintFull. Allows the user to modify the document. Allows the user to copy or extract text and graphics from the document. Allows the user to add annotations. Allows the user to fill in form fields. Only works with 128-bit encryption. Enables copying or extracting for use with accessibility features. Only works with 128-bit encryption. Allows the user to assemble the document. Only works with 128-bit encryption. Allows high resolution printing of the document. Only works with 128-bit encryption. Allows everything. Specifies the security handler mechanism used for PDF document's encryption. The file's security handler provides a mechanism that not only implements encryption in PDF documents, but also stores all data related to this process. The PDF specification defines two security handlers: Standard Security handler and Public-Key Security handler. Other applications may provide security handlers of their own. The PDF document is encrypted using an unknown security handler. The PDF document is not encrypted. The PDF document is encrypted. The Standard Security Handler has been used for encryption. This handler allows you to define access permissions and up to two passwords - an user password and an owner password. The PDF document is encrypted. The Public-Key Security Handler has been used for encryption. This handler allows you to specify unique permissions for different recipients. Named actions, that PDF viewer applications are expected to support. Undefined action. Go to the next page of the document. Go to the previous page of the document. Go to the first page of the document. Go to the last page of the document. Specifies the operation to perform for a launch action. It is Windows-specific setting. Undefined launch operation type. Open a document. Print a document. The standard action types in PDF documents. You can assign these actions to links, bookmarks, pages, media clips, and form fields. Unknown action type. Go to a destination in the current document. (“Go-to remote”) Go to a destination in another document. (“Go-to embedded”; PDF 1.6) Go to a destination in an embedded file. Launch an application, usually to open a file. Begin reading an article thread. Resolve a uniform resource identifier. (PDF 1.2) Play a sound. (PDF 1.2) Play a movie. (PDF 1.2) Set an annotation’s Hidden flag. (PDF 1.2) Execute an action predefined by the viewer application. (PDF 1.2) Send data to a uniform resource locator. (PDF 1.2) Set fields to their default values. (PDF 1.2) Import field values from a file. (PDF 1.3) Execute a JavaScript script. (PDF 1.5) Set the states of optional content groups. (PDF 1.5) Controls the playing of multimedia content. (PDF 1.5) Updates the display of a document, using a transition dictionary. (PDF 1.6) Set the current view of a 3D annotation. Specifies a destination explicitly in a PDF file. Defines a particular view of a specified page in a PDF document. It is always tied to a given page. It consists of the location of the document window on that page and of the magnification (zoom) factor to use when displaying that page. Undefined page destination type. Displays the specific page with the coordinates (left, top) positioned at the upper-left corner of the window and the content of that page magnified by the zoom factor. A null value for any of the parameters left, top, or zoom specifies, that the current value of that parameter is to be retained unchanged. A zoom value of 0 has the same meaning as a null value. Displays the specific page with its content magnified just enough to fit the entire page within the window both horizontally and vertically. If the required horizontal and vertical magnification factors are different, use the smaller of the two, centering the page within the window in the other dimension. Displays the specific page with the vertical coordinate (top) positioned at the top edge of the window and the content of that page magnified just enough to fit the entire width of the page within the window. A null value for top specifies that the current value of that parameter is to be retained unchanged. Displays the specific page with the horizontal coordinate (left) positioned at the left edge of the window and the content of that page magnified just enough to fit the entire height of the page within the window. A null value for left specifies that the current value of that parameter is to be retained unchanged. Displays the specific page with its content magnified just enough to fit the rectangle specified by the coordinates left, bottom, right, and top entirely within the window both horizontally and vertically. If the required horizontal and vertical magnification factors are different, use the smaller of the two, centering the rectangle within the window in the other dimension. A null value for any of the parameters may result in unpredictable behavior. (PDF 1.1) Displays the specific page with its content magnified just enough to fit its bounding box entirely within the window both horizontally and vertically. If the required horizontal and vertical magnification factors are different, use the smaller of the two, centering the bounding box within the window in the other dimension. (PDF 1.1) Displays the specific page with the vertical coordinate (top) positioned at the top edge of the window and the content of that page magnified just enough to fit the entire width of its bounding box within the window. A null value for top specifies that the current value of that parameter is to be retained unchanged. (PDF 1.1) Displays the specific page with the horizontal coordinate (left) positioned at the left edge of the window and the content of that page magnified just enough to fit the entire height of its bounding box within the window. A null value for left specifies that the current value of that parameter is to be retained unchanged. Specifies a color space. Unknown color space. Controls the intensity of achromatic light, on a scale from black to white. Controls the intensities of red, green, and blue light, the three additive primary colors used in displays. Controls the concentrations of cyan, magenta, yellow, and black inks, the four subtractive process colors used in printing. Special case of a single-component CIE-based color space, known as a CIE-based A color space. Specifies a CIE-based ABC color space with only one transformation stage instead of two. Specifies a CIE-based ABC color space with two transformation stages. Specifies a color space based on a cross-platform color profile as defined by the International Color Consortium (ICC). An Indexed color space allows a PDF content stream to use small integers as indices into a color map or color table of arbitrary colors in some other space. A Pattern color space (PDF 1.2) enables a PDF content stream to paint an area with a pattern rather than a single color. A Separation color space (PDF 1.2) provides a means for specifying the use of additional colorants or for isolating the control of individual color components of a device color space for a subtractive device. DeviceN color spaces (PDF 1.3) can contain an arbitrary number of color components. They provide greater flexibility than is possible with standard device color spaces such as DeviceCMYK or with individual Separation color spaces. Specifies the shape to be used at the ends of open subpaths (and dashes, if any) when they are stroked. Butt cap. The stroke is squared off at the endpoint of the path. There is no projection beyond the end of the path. Round cap. A semicircular arc with a diameter equal to the line width is drawn around the endpoint and filled in. Projecting square cap. The stroke continues beyond the endpoint of the path for a distance equal to half the line width and is squared off. Specifies the shape of joints between connected segments of a stroked path. The outer edges of the strokes for the two segments are extended until they meet at an angle, as in a picture frame. If the segments meet at too sharp an angle (as defined by the miter limit parameter), a bevel join is used instead. An arc of a circle with a diameter equal to the line width is drawn around the point where the two segments meet, connecting the outer edges of the strokes for the two segments. This pieslice-shaped figure is filled in, producing a rounded corner. The two segments are finished with butt caps and the resulting notch beyond the ends of the segments is filled with a triangle. Specifies a method to enhance image compression in PDF documents. No enhancement. Method based on color detection on the full bitmap. Mixed raster content (MRC) compression, it uses image segmentation to compress areas with the optimum algorithm based on their characteristics. This method produces optimal results with document mixing text, graphics and images. The minimum supported PDF version is 1.5 when using this compression. The toolkit will automatically upgrade the PDF conformance if needed. A complete set of 14 standard fonts (Standard Type 1 Fonts) that can be used without prior definition. Font with the standard name Courier, the alternative name is CourierNew. Font with the standard name Courier-Oblique, the alternative name is CourierNew,Italic. Font with the standard name Courier-Bold, the alternative name is CourierNew,Bold. Font with the standard name Courier-BoldOblique, the alternative name is CourierNew,BoldItalic. Font with the standard name Helvetica, the alternative name is Arial. Font with the standard name Helvetica-Oblique, the alternative name is Arial,Italic. Font with the standard name Helvetica-Bold, the alternative name is Arial,Bold. Font with the standard name Helvetica-BoldOblique, the alternative name is Arial,BoldItalic. Font with the standard name Times-Roman, the alternative name is TimesNewRoman. Font with the standard name Times-Italic, the alternative name is TimesNewRoman,Italic. Font with the standard name Times-Bold, the alternative name is TimesNewRoman,Bold. Font with the standard name Times-BoldItalic, the alternative name is TimesNewRoman,BoldItalic. Font with the standard name Symbol, no alternative name exists. Font with the standard name ZapfDingbats, no alternative name exists. The initial view mode for the PDF Portfolio. It is the way the user can view the component files after opening the PDF Portfolio file. The collection view is presented in details mode, with all information in the Schema dictionary presented in a multi-column format. This mode provides the most information to the user. The default value. The collection view is presented in tile mode, with each file in the collection denoted by a small icon and a subset of information from the Schema dictionary. This mode provides top-level information about the file attachments to the user. The collection view is initially hidden, without preventing the user from obtaining a file list via explicit action. The name of a file attachment icon to be used in displaying the file attachment annotation. None icon is used. Graph icon. Paper clip icon. Push-pin icon. The default value. Tag icon. Specifies different options when merging PDF documents. The default option means the default behavior, so that attached files are included in the destination document. Files attached to the source document are ignored during the merging process. Defines different objects in the PDF document, which are cleaned from contained JavaScript scripts. None of all JavaScript scripts included in the document will be removed. All document actions (based on JavaScript scripts) will be removed from the document. All global JavaScript scripts will be removed from the document. All page level JavaScript scripts will be removed from the document. All annotation actions, which contain JavaScript scripts, will be removed from the document. All bookmark actions, which contain JavaScript scripts, will be removed from the document. It is the default option. That means all JavaScript scripts will be removed from the document and its related objects. Specifies different options for tab key navigation through annotations and interactive forms on a page, so called Tab Order. Specifies different decoration options for text drawing operations. Specifies different underline styles for text drawing operations. Specifies cell output ordering for GridSplit. Specifies embedded xml invoice data format. ZUGFeRD_1 v1.0 ZUGFeRD_1 v2.0 Factur-X v1.0 Defines the color to be removed (or set as transparent) from the background of the GdPictureImage object. The blue color. The green color. The red color. Specifies the color to be removed/filtered from the image. Removes the red color (pixels are set to white). Removes the magenta color (pixels are set to white). Removes the blue color (pixels are set to white). Removes the cyan color (pixels are set to white). Removes the green color (pixels are set to white). Removes the yellow color (pixels are set to white). Removes more red color. Compared to the Red filter, it also removes a bit of yellow and magenta. Removes more magenta (pixels are set to white). Compared to the Magenta filter, it also removes a bit of red and blue. Removes more blue (pixels are set to white). Compared to the Blue filter, it also removes a bit of magenta and cyan. Removes more cyan (pixels are set to white). Compared to the Cyan filter, it also removes a bit of blue and green. Removes more green (pixels are set to white). Compared to the Green filter, it also removes a bit of cyan and yellow. Removes more yellow (pixels are set to white). Compared to the Yellow filter, it also removes a bit of green and red. This filter is dedicated to black forms (pixels are set to white). It removes the black pixels that are part of the blank form. This filter is dedicated to red forms (pixels are set to white). It removes the black pixels that are part of the blank form. This filter is dedicated to blue forms (pixels are set to white). It removes the blue pixels that are part of the blank form. Defines the direction when searching through the thumbnails. The search direction is up, starting at the current object. The search direction is down, starting at the current object. The search direction is left, starting at the current object. The search direction is right, starting at the current object. Specifies different compression settings when saving a GdPicture image in high dynamic-range image. Save data as half with piz-based wavelet compression. Save data as float instead of as half (not recommended). Save with no compression. Save with zlib compression, in blocks of 16 scan lines. Save with piz-based wavelet compression. Save with lossy 24-bit float compression. Save with lossy 44% float compression - goes to 22% when combined with ExrCompressionLC. Save images with one luminance and two chroma channels, rather than as RGB (lossy compression). Specifies the orientation of lines to be removed from the GdPicture image. Removes horizontal lines. Removes vertical lines. Specifies the margin of the image when removing punch holes. Checks the left margin of the image. Checks the right margin of the image. Checks the top margin of the image. Checks the bottom margin of the image. Checks all sides of the image. Specifies a kind of lossy JPEG transformation. The image is to be rotated 90 degrees clockwise about its center. The image is to be rotated 180 degrees about its center. The image is to be rotated 270 degrees clockwise about its center. The image is to be flipped horizontally (about the vertical axis). The image is to be flipped vertically (about the horizontal axis). The image is to be transposed across upper-left to lower-right axis. The image is to be transposed across upper-right to lower-left axis. Specifies which chroma subsampling mode will be used for image compression in JPEG images. The default mode will be used. 4:1:1 (4x1 1x1 1x1) chroma subsampling will be used. The horizontal color resolution is quartered. 4:2:0 (2x2 1x1 1x1) chroma subsampling will be used. The chrominance resolution in both the horizontal and vertical directions is cut in half. 4:2:2 (2x1 1x1 1x1) chroma subsampling will be used. Half of the horizontal resolution in the chrominance is dropped (Cb and Cr), while the full resolution is retained in the vertical direction, with respect to the luminance. 4:4:4 (1x1 1x1 1x1) chroma subsampling will be used. The resolution of chrominance information (Cb and Cr) is preserved at the same rate as the luminance (Y) information. Identifies the states of the currently executed session using TWAIN. Unknown Error. Pre-Session, Twain environment is enabled, Source Manager is not loaded. Source Manager is loaded and ready to establish a session. Source Manager is opened and a session is established, ready for selecting a source. A source is opened, loaded in memory, ready for the next usage. A source is enabled, ready to show user interface if requested, prepared to acquire data. A source is ready to transfer data. A source is transfering data. Black and White. Grayscale. RGB color space. Color palette. CMY color space. CMYK color space. YUV color space. YUVK color space. CIEXYZ color space. LAB color space. SRGB color space. SCRGB color space. BGR color space. CIELAB color space. CIELLUV color space. YCBR color space. Infrared color space. Normal reading orientation. Rotated 90 degrees clockwise. Rotated 180 degrees clockwise. Rotated 270 degrees clockwise. The orientation is not known. Operation was successful. Operation failed - get the Condition Code for more information. Partially successful operation; request further information. Abort transfer or the Cancel button was pressed. Event or Windows message beIntegers to this Source. Event or Windows message does not beInteger to this source. All data has been transfered. No more sources found after MSG_GETNEXT. The type of information requested is not supported by the data source. Data for the requested information is not available. Do not use. Zero pixel represents darkest shade. Zero pixel represents lightest shade. It worked! Failure due to unknown causes. Not enough memory to perform operation. No Data Source. DS is connected to max possible applications. DS or DSM reported error, application shouldn't. Unknown capability. Unrecognized MSG DG DAT combination. Data parameter out of range. DG DAT MSG out of expected sequence. Unknown destination Application/Source in DSM_Entry. Capability not supported by source. Operation not supported by capability. Capability has dependancy on other capability. File System operation is denied (file is protected). Operation failed because file already exists. File not found. Operation failed because directory is not empty. The feeder is jammed. The feeder detected multiple pages. Error writing the file (meant for things like disk full conditions). Device seems to be offline. Cover or door is open. Document has a damaged corner. Focusing error during document capture. Document is too light. Document is too dark. No Media... The paper size, i.e. the type of the paper, used by Twain. Orients the image according to criteria determined by the source. Orients the document using text only algorithms. Orients the document using image only algorithms. Front of sheet. Rear of sheet. The type of the tag used within a document. These tags, also known as document's metadata, allows for additional information to be stored within a document. IPTC tags, also known as document's metadata, allows for additional information to be stored within a document. Document tags (EXIF, IPTC, Extra, Thumbnails, GPS, XML packet), also known as document's metadata, allows for additional information to be stored within a document. The quality of the hard copy or printout produced by a printer. Custom. Draft resolution. Low resolution. Medium resolution. High resolution. The type of the color palette used by a GdPicture image. The palette type is undefined. The palette entries support alpha channel. The palette is a grayscale palette. The palette is a grayscale palette with alpha channel support for its entries. The palette is a halftone palette. The palette is a halftone palette with alpha channel support for its entries. Defines the color space used by a GdPicture image. No color space information. The image is stored using an RGB color space. The image is stored using a CMYK color space. The image is a grayscale image. Specifies used operators when combining images. Pixel = Pixel And Source. Pixel = Pixel Or Source. Pixel = Pixel Xor Source. Pixel = Min(Pixel, Source). Pixel = Max(Pixel, Source). Pixel = Abs(Pixel, Source). Pixel = (Pixel * Source) / 255. Pixel = Pixel / Source. Pixel = Pixel + Source. Pixel = Pixel - Source. Defines an alignment of the thumbnails. Horizontal alignment. Vertical alignment. Defines how text is aligned. The text is aligned near the layout. In a left-to-right layout, the near position is left. In a right-to-left layout, the near position is right. Text is aligned in the center of the layout rectangle. Text is aligned far from the origin position of the layout rectangle. In a left-to-right layout, the far position is right. In a right-to-left layout, the far position is left. Specifies the image alignment within the page during a print process. The image is aligned in the middle left of the page. The image is aligned in the middle right of the page. The image is aligned in the middle center of the page. The image is aligned as it is. The default value. The image is aligned in the top left of the page. The image is aligned in the top right of the page. The image is aligned in the top center of the page. The image is aligned in the bottom left of the page. The image is aligned in the bottom right of the page. The image is aligned in the bottom center of the page. Specifies the algorithm to be used to perform black and white effect on images. Each pixel value is compared against a fixed threshold. This may be the simplest dithering algorithm there is, but it results in immense loss of detail and contouring. Produces a cross-hatch pattern. This is a form of dispersed dithering. Because the dots don't cluster, the result looks much less grainy. A simplified form of Stucki dithering that is faster, but less clean than Stucki dithering. Based on Floyd Steinberg, but is slightly faster. Its output tends to be clean and sharp. Only diffuses the error to neighbouring pixels. This results in very fine-grained dithering. Enumerates the mouse buttons. None. The left button. The right button. The middle button. The first X-mouse button. The second X-mouse button. Specifies the zoom mode used by the viewer to display the document. The zoom is set to display the 100% of the document. The default value. Fits the displayed document to the viewer while keeping the aspect ratio. The document is zoomed to fit the width of the viewer. The user-defined zoom mode specified by using the required zoom parameters. The document is zoomed to fit the height of the viewer. The document is zoomed to fit the entire viewer area without keeping the aspect ratio. Shrinks the displayed document to the viewer width. Defines how the pages are displayed on the screen. Displays a single page on the screen. Displays all document's pages on the screen and enables continuous scrolling. Defines the way how the mouse is used to manipulate with the displayed document. Do nothing. The default value. Allows user to select an area of the displayed document. Allows user to pan the displayed document. Allows user to select for zooming an area of the displayed document. Displays a magnifier tool. Specifies the page position within the viewer, when the rendering area of the displayed document is smaller than viewer's area. The page is displayed in the middle left of the viewer. The page is displayed in the middle right of the viewer. The page is displayed in the middle center of the viewer. The default value. The page is displayed in the top left of the viewer. The page is displayed in the top right of the viewer. The page is displayed in the top center of the viewer. The page is displayed in the bottom left of the viewer. The page is displayed in the bottom right of the viewer. The page is displayed in the bottom center of the viewer. Specifies the page alignment within the viewer, when the area of the viewer is smaller than the displayed document. The page is aligned in the middle left within the viewer. The page is aligned in the middle right within the viewer. The page is aligned in the middle center within the viewer. The default value. The page is aligned in the top left within the viewer. The page is aligned in the top right within the viewer. The page is aligned in the top center within the viewer. The page is aligned in the bottom left within the viewer. The page is aligned in the bottom right within the viewer. The page is aligned in the bottom center within the viewer. Specifies the level of displaying quality according to the algorithm used when images are scaled or rotated. Low quality interpolation. Bilinear interpolation. No prefiltering is done. This mode is not suitable for shrinking an image below 50 percent of its original size. Bicubic interpolation. No prefiltering is done. This mode is not suitable for shrinking an image below 25 percent of its original size. High-quality bilinear interpolation. Prefiltering is performed to ensure high-quality shrinking. High-quality bicubic interpolation. Prefiltering is performed to ensure high-quality shrinking. This mode produces the highest quality transformed images. Automatic display quality. Specifies how the page size must be adjusted depending of the actual paper size when printing. Use page size. Fit page content to paper size. Fit page content to paper size when page size exceed paper size. Defines the way how the mouse wheel is used to manipulate with the displayed document. The mouse wheel mode is disabled. The mouse wheel is used to zoom the document. The mouse wheel is used to scroll the document vertically. The mouse wheel is used to change between pages when viewing the document. Specifies whether the output will print in color or in monochrome on a device that supports color. Unknown or undefined color mode. Print output in monochrome (usually shades of black and white). Print output in color. Specifies whether documents are printed in portrait or landscape mode. Documents are printed vertically. The height of the page is greater than its width. Documents are printed horizontally. The width of the page is greater than its height. Defines the reference point of the page when detecting and removing margins. The reference point is top left. The reference point is top right. The reference point is bottom left. The reference point is bottom right. Specifies the foreground mix mode to use when combining the region and the displayed image. Undefined. Do not use. Pixel is always 0. Pixel is the inverse of the ForegroundMixModeMERGEPEN color. Pixel is a combination of the colors common to both the pen and the inverse of the screen. Pixel is the inverse of the pen color. Pixel is a combination of the colors common to both the pen and the inverse of the screen. Pixel is the inverse of the screen color. Pixel is a combination of the colors in the pen and in the screen, but not in both. Pixel is the inverse of the ForegroundMixModeMASKPEN color. Pixel is a combination of the colors common to both the pen and the screen. Pixel is the inverse of the R2_XORPEN color. Pixel remains unchanged. Pixel is a combination of the screen color and the inverse of the pen color. Pixel is the pen color. Pixel is a combination of the pen color and the inverse of the screen color. Pixel is a combination of the pen color and the screen color. Pixel is always 1. Defines the type of a Patch Code. Unknown or undefined patch code. Code 1. Used in Patch 1 and Patch 6. Code 2. Used in Patch 2. Code 3. Used in Patch 3 and Transfer Patch. Code 4. Used in Patch 4 and Toggle Patch. Code 5. Inverted Code 1, used in Patch 1 and Patch 6. Code 6. Inverted Code 3, used in Patch 3 and Transfer Patch. Specifies the alignment of the barcode within its bounding box when the barcode is drawn. The barcode is aligned in the left of its bounding box. The barcode is aligned in the center of its bounding box. The barcode is aligned in the right of its bounding box. All supported 1D (one-dimensional or linear) barcode types used for writing. UPC Version A UPC Version E UPC Supplemental 2 Digit UPC Supplemental 5 Digit EAN 113 EAN 8 Interleaved 2 of 5 Standard2of5 Industrial2of5 Code 39 Code39Extended Codabar PostNet Bookland ISBN JAN13 MSI Mod10 MSI 2 Mod10 MSI Mod11 MSI Mod 11 Mod10 Modified Plessey Code 11 USD 8 UCC12 UCC13 LOGMARS Code 128 Code 128A Code 128B Code 128C ITF14 Code93 TelePen All supported 1D (one-dimensional or linear) barcode types used for reading. None of them. Industrial 2 of 5 Inverted 2 of 5 Interleaved 2 of 5 Iata 2 of 5 Matrix 2 of 5 Code 39 Codeabar Bcd Matrix DataLogic 2 of 5 Code 128 Code 93 EAN 13 UPC Version A EAN 8 UPC Version E ADD 5 ADD 2 Defines the best scan mode (speed or quality) when reading 1D barcodes. The best speed. The best quality. Defines the best scan mode (speed or quality) when reading QR-Codes. The best speed. The best quality. Specifies the QR-Code error correction. The higher the error correction level, the less storage capacity. The low level – up to 7% damage can be restored. The medium level – up to 15% damage can be restored. The quartile level – up to 25% damage can be restored. The high level – up to 30% damage can be restored. Specifies the Micro QR-Code error correction. The higher the error correction level, the less storage capacity. The low level – up to 7% damage can be restored. The medium level – up to 15% damage can be restored. The quartile level – up to 25% damage can be restored. Defines the encoding mode for QR barcode. You can find more information here. The engine selects the most appropriate mode automatically according to the input data. Numeric encoding (10 bits per 3 digits). Alphanumeric encoding (11 bits per 2 characters). Byte encoding (8 bits per character). Kanji encoding (13 bits per character). Same as BarcodeQREncodingModeUndefined, but, if the data needs UTF8 encoding, the encoded data will start with UTF-8 BOM. Defines the encoding mode for DataMatrix barcode. You can find more information here. The engine selects the most appropriate mode automatically according to the input data. ASCII data (ASCII value + 1) C40 encoding Text encoding ANSI X12 encoding EDIFACT encoding Base 256 encoding Defines the encoding mode for PDF 417 barcode. You can find more information here. The engine selects the most appropriate mode automatically according to the input data. Text encoding. Each code word represents two base-30 digits. Byte encoding. Each group of 5 code words represents 6 bytes. Numeric encoding. n digits are encoded in n/3+1 code words, up to a maximum of 44 digits in 15 code words. Specifies the Reed Solomon error correction level. The higher the error correction level, the less storage capacity. Automatic level. Then engine will determine automatically the level required according to the AIM recommendations. 2 Codewords will be used to store error correction data. 4 Codewords will be used to store error correction data. 8 Codewords will be used to store error correction data. 16 Codewords will be used to store error correction data. 32 Codewords will be used to store error correction data. 64 Codewords will be used to store error correction data. 128 Codewords will be used to store error correction data. 256 Codewords will be used to store error correction data. 512 Codewords will be used to store error correction data. Defines the version (code size) of the DataMatrix symbol. The engine selects the smallest rectangular symbol to fit the data. Code size is 10x10 modules. Code size is 12x12 modules. Code size is 14x14 modules. Code size is 16x16 modules. Code size is 18x18 modules. Code size is 20x20 modules. Code size is 22x22 modules. Code size is 24x24 modules. Code size is 20x20 modules. Code size is 32x32 modules. Code size is 36x36 modules. Code size is 40x40 modules. Code size is 44x44 modules. Code size is 48x48 modules. Code size is 52x52 modules. Code size is 64x64 modules. Code size is 72x72 modules. Code size is 80x80 modules. Code size is 88x88 modules. Code size is 96x96 modules. Code size is 104x104 modules. Code size is 120x120 modules. Code size is 132x132 modules. Code size is 144x144 modules. Code size is 8x18 modules. Code size is 8x32 modules. Code size is 12x26 modules. Code size is 12x36 modules. Code size is 16x36 modules. Code size is 16x48 modules. Defines the version (code size) of the Aztec Code symbol. The engine selects the smallest symbol to fit the data. The Finder pattern is compact and code size is 15x15 modules. The Finder pattern is full-size and code size is 19x19 modules. The Finder pattern is compact and code size is 19x19 modules. The Finder pattern is full-size and code size is 23x23 modules. The Finder pattern is compact and code size is 23x23 modules. The Finder pattern is full-size and code size is 27x27 modules. The Finder pattern is compact and code size is 27x27 modules. The Finder pattern is full-size and code size is 31x31 modules. The Finder pattern is full-size and code size is 37x37 modules. The Finder pattern is full-size and code size is 41x41 modules. The Finder pattern is full-size and code size is 45x45 modules. The Finder pattern is full-size and code size is 49x49 modules. The Finder pattern is full-size and code size is 53x53 modules. The Finder pattern is full-size and code size is 57x57 modules. The Finder pattern is full-size and code size is 61x61 modules. The Finder pattern is full-size and code size is 67x67 modules. The Finder pattern is full-size and code size is 71x71 modules. The Finder pattern is full-size and code size is 75x75 modules. The Finder pattern is full-size and code size is 79x79 modules. The Finder pattern is full-size and code size is 83x83 modules. The Finder pattern is full-size and code size is 87x87 modules. The Finder pattern is full-size and code size is 91x91 modules. The Finder pattern is full-size and code size is 95x95 modules. The Finder pattern is full-size and code size is 101x101 modules. The Finder pattern is full-size and code size is 105x105 modules. The Finder pattern is full-size and code size is 109x109 modules. The Finder pattern is full-size and code size is 113x113 modules. The Finder pattern is full-size and code size is 117x117 modules. The Finder pattern is full-size and code size is 121x121 modules. The Finder pattern is full-size and code size is 125x125 modules. The Finder pattern is full-size and code size is 131x131 modules. The Finder pattern is full-size and code size is 135x135 modules. The Finder pattern is full-size and code size is 139x139 modules. The Finder pattern is full-size and code size is 143x143 modules. The Finder pattern is full-size and code size is 147x147 modules. The Finder pattern is full-size and code size is 151x151 modules. Defines the best scan mode (speed or quality) when reading PDF417 barcodes. The best speed. The best quality. Defines the encoding mode for MaxiCode. Mode 2. To encode is this mode data should be formated like this: [PostalCode][GS][CountryCode][GS][ServiceClass][GS][RestOfTheMessageToEncode] where: [PostalCode] is numeric data, up to 9 digits [CountryCode] is 3 digits numeric data [ServiceClass] is 3 digits numeric data [GS] is ASCII code 0x1D [RestOfTheMessageToEncode] is any data to supplementary encode Mode 3. To encode is this mode data should be formated like this: [PostalCode][GS][CountryCode][GS][ServiceClass][GS][RestOfTheMessageToEncode] where: [PostalCode] is alphanumeric data, up to 6 characters. It should contains only upper characters and numeric. [CountryCode] is 3 digits numeric data [ServiceClass] is 3 digits numeric data [GS] is ASCII code 0x1D [RestOfTheMessageToEncode] is any data to supplementary encode Mode 4. Encodes data using standard error correction. Mode 4. Encodes data using enhanced error correction, less codewords for data, more for error correction. Defines the OMR mode (speed or quality). Favors quality over speed. Favors speed over quality. Defines the mode (speed or quality) when removing ink blobs. Favors quality over speed. Favors speed over quality. Defines the best scan mode (speed or quality) when reading DataMatrix barcodes. The best speed. The best quality. Defines the best scan mode (speed or quality) when reading Aztec barcodes. The best speed. The best quality. Defines the best scan mode (speed or quality) when reading MaxiCodes. The best speed. The best quality. The size of a resulting icon when saving images in the ICO format. The size of an icon is 16x16. The size of an icon is 32x32. Defines the WIA source for capture. The source type is unknown. The source is a scanner. The source is a camera. The source provides streaming video. Specifies a file format, when acquiring an image to a file using WIA. Unknown or undefined format. The output file is in BMP format. The output file is in PNG format. The output file is in GIF format. The output file is in JPEG format. The output file is in TIFF format. Identifies the status of the currently executed operation using WIA. The executed method has been successfully followed, that is without any errors. All right ! An unknown error has occurred with the Windows Image Acquisition (WIA) device. Paper is jammed in the scanner's document feeder. The user requested a scan and there are no documents left in the document feeder. An unspecified problem occurred with the scanner's document feeder. The WIA device is not online. The WIA device is busy. The WIA device is warming up. An unspecified error has occurred with the WIA device that requires user intervention. The user should ensure that the device is turned on, online, and any cables are properly connected. The WIA device was deleted. It can no longer be accessed. An unspecified error occurred during an attempted communication with the WIA device. The device does not support this command. There is an incorrect setting on the WIA device. The scanner head is locked. The device driver threw an exception. The response from the driver is invalid. One or more of the device’s cover is open. The scanner's lamp is off. A scan job was interrupted because an Imprinter/Endorser item reached the maximum valid value for WIA_IPS_PRINTER_ENDORSER_COUNTER, and was reset to 0. This feature is available with Windows 8 and later versions of Windows A scan error occurred because of a multiple page feed condition. This feature is available with Windows 8 and later versions of Windows. No WIA device of the selected type is available. No WIA device is open. Operation canceled. Output file already exists. Cannot set the specified value. Cannot get the specified value. The feature is not supported by the selected device. An unknown error has occurred out of the Windows Image Acquisition (WIA) device. Specifies the image intent setting for the WIA device. Default value. No intent is specified. The application intends to prepare the device for a color scan. The application intends to prepare the device for a grayscale scan. The application intends to prepare the device for scanning text. Mask for all of the image-type flags. The application intends to prepare the device for scanning an image that result's in a small scan. The application intends to prepare the device for scanning a high-quality image. This flag is a mask for all of the size/quality flags. The application intends to prepare the device for scanning a preview. Specifies WIA page sizes. 8267 x 11692 (Dimensions in thousandths of an inch). 8267 x 11692 (Dimensions in thousandths of an inch). 8500 x 11000 (Dimensions in thousandths of an inch). Current extent settings. 8500 x 14000 (Dimensions in thousandths of an inch). 8500 x 11000 (Dimensions in thousandths of an inch). 11000 x 17000 (Dimensions in thousandths of an inch). 5500 x 8500 (Dimensions in thousandths of an inch). 3543 x 2165 (Dimensions in thousandths of an inch). 33110 x 46811 (Dimensions in thousandths of an inch). 23385 x 33110 (Dimensions in thousandths of an inch). 16535 x 23385 (Dimensions in thousandths of an inch). 11692 x 16535 (Dimensions in thousandths of an inch). 8267 x 11692 (Dimensions in thousandths of an inch). 5826 x 8267 (Dimensions in thousandths of an inch). 4133 x 5826 (Dimensions in thousandths of an inch). 2913 x 4133 (Dimensions in thousandths of an inch). 2047 x 2913 (Dimensions in thousandths of an inch). 1456 x 2047 (Dimensions in thousandths of an inch). 1023 x 1456 (Dimensions in thousandths of an inch). 39370 x 55669 (Dimensions in thousandths of an inch). 27834 x 39370 (Dimensions in thousandths of an inch). 19685 x 27834 (Dimensions in thousandths of an inch). 13897 x 19685 (Dimensions in thousandths of an inch). 9842 x 13897 (Dimensions in thousandths of an inch). 6929 x 9842 (Dimensions in thousandths of an inch). 4921 x 6929 (Dimensions in thousandths of an inch). 3464 x 4921 (Dimensions in thousandths of an inch). 2440 x 3464 (Dimensions in thousandths of an inch). 1732 x 2440 (Dimensions in thousandths of an inch). 1220 x 1732 (Dimensions in thousandths of an inch). 36102 x 51062 (Dimensions in thousandths of an inch). 25511 x 36102 (Dimensions in thousandths of an inch). 18031 x 25511 (Dimensions in thousandths of an inch). 12755 x 18031 (Dimensions in thousandths of an inch). 9015 x 12755 unfolded 6377 x 9015 folded once (Dimensions in thousandths of an inch). 4488 x 6377 folded twice (Dimensions in thousandths of an inch). 3188 x 4488 (Dimensions in thousandths of an inch). 2244 x 3188 (Dimensions in thousandths of an inch). 1574 x 2244 1102 x 1574 (Dimensions in thousandths of an inch). 40551 x 57322 (Dimensions in thousandths of an inch). 28661 x 40551 (Dimensions in thousandths of an inch). 20275 x 28661 14330 x 20275 (Dimensions in thousandths of an inch). 10118 x 14330 (Dimensions in thousandths of an inch). 7165 x 10118 (Dimensions in thousandths of an inch). 5039 x 7165 (Dimensions in thousandths of an inch). 3582 x 5039 (Dimensions in thousandths of an inch). 2519 x 3582 (Dimensions in thousandths of an inch). 1771 x 2519 (Dimensions in thousandths of an inch). 1259 x 1771 (Dimensions in thousandths of an inch). 46811 x 66220 (Dimensions in thousandths of an inch). 66220 x 93622 (Dimensions in thousandths of an inch). 55669 x 78740 (Dimensions in thousandths of an inch). 78740 x 111338 (Dimensions in thousandths of an inch). Driver automatically detects page size Page size already known to driver and application. Specifies the image context, i.e. the layout type of the data, you want to process using GdPicture image. Unknown context. A document is processed. A digital photo is processed. Specifies the two major MICR fonts in use. 15 character set, the 10 numeric characters along with control characters. The CMC-7 font is widely used in Europe, Brazil and Mexico. 14 character set. The MICR E-13B font has been adopted as the international standard in ISO 1004:1995 (used in Australia, Canada, UK, US and others). Specifies the MICR context, i.e. the layout type of the data, you want to recognize using the MICR. The whole document. The line. Defines the intent (color detection) of the GdPicture image. Unknown or undefined intent. Black and white. Grayscale. Colored. The default value. Palletized image. White image. For internal purpose. Do not use. Character sets used by fonts. ANSI characters. Font is chosen based solely on its name and its size. If the described font is not available on the system, Windows will substitute another font. Standard symbol set. Macintosh characters. Japanese shift-JIS characters. Korean characters (Wansung). Korean characters (Wansung). Simplified Chinese characters (mainland china). Traditional Chinese characters (Taiwanese). Korean characters (Johab). Hebrew characters. Arabic characters. Greek characters. Turkish characters. Vietnamese characters. Baltic characters. Cyrillic characters. Thai characters. Includes diacritical marks for eastern european countries. Depends on the codepage of the operating system. Specifies advanced despeckle types. The four connected despeckle removes all the groups of connected black pixels with a number of black pixels below a threshold computed based on the requested despeckle strength. The group of connected pixels is computed by taking into consideration the following directions: above, below, right and left. As a result, diagonals are not taken into consideration, which may cause some thin slanted lines to be removed. The four connected despeckle neighborhood removes all the groups of connected black pixels with a number of black pixels below a threshold computed based on the despeckle strength and not close to larger component. The distance is also computed based on the strength. The group of connected pixels is computed by taking into consideration the following directions: above, below, right and left. As a result, diagonals are not taken into consideration, which may cause some thin slanted lines to be removed. The four connected white despeckle removes all the groups of connected white pixels with a number of white pixels below a threshold computed based on the requested despeckle strength. The group of connected pixels is computed by taking into consideration the following directions: above, below, right and left. As a result, diagonals are not taken into consideration, which may cause some thin slanted lines to be removed. The four connected white despeckle neighborhood removes all the groups of connected white pixels with a number of white pixels below a threshold computed based on the despeckle strength and not close to larger component. The distance is also computed based on the strength. The group of connected pixels is computed by taking into consideration the following directions: above, below, right and left. As a result, diagonals are not taken into consideration, which may cause some thin slanted lines to be removed. The connected despeckle removes all the groups of connected black pixels with a number of black pixels below a threshold computed based on the requested despeckle strength. The group of connected pixels is computed by taking into consideration all directions. The connected despeckle neighborhood removes all the groups of connected black pixels with a number of black pixels below a threshold computed based on the despeckle strength and not close to larger component. The distance is also computed based on the strength. The group of connected pixels is computed by taking into consideration all directions. The connected white despeckle removes all the groups of connected white pixels with a number of white pixels below a threshold computed based on the requested despeckle strength. The group of connected pixels is computed by taking into consideration all directions. The connected white despeckle neighborhood removes all the groups of connected white pixels with a number of white pixels below a threshold computed based on the despeckle strength and not close to larger component. The distance is also computed based on the strength. The group of connected pixels is computed by taking into consideration all directions. Specifies the OCR context, i.e. the layout type of the data, you want to process using the OCR. For internal purpose only. Do not use. For document with variable layout with lines, text or/and images. Recommended and used as the default value. For single column of text of variable sizes. For document with single uniform block of text. For document with single uniform block of vertically aligned text. For single text line image. For single word image. For single word in a circle image. For single character image. Find as much text as possible in no particular order. Treat the image as a single text line, bypassing hacks that are Tesseract-specific. Do only the segmentation. Do not recognize any character. A special context allows triggering a specific layout analysis and OCR engines in order to maximize accuracy and speed on the detection of specific items. Special context can be added on demand to our team of researchers, feel free to contact us! Specifies no special context. Specifies that the image or region of interest contains one or two numeric symbols which must be decoded. To be used this context requires the sp1.traineddata file available into the specified resource folder (see GdPicture OCR.ResourcesFolder property). Specifies that the image or region of interest contains a line having only numeric symbols. To be used this context requires the sp1.traineddata file available into the specified resource folder (see GdPicture OCR.ResourcesFolder property). Specifies that the image or region of interest contains a special machine-readable zone (MRZ). To be used this context requires the ocrb.traineddata file available into the specified resource folder (see GdPicture OCR.ResourcesFolder property). Specifies that the image or region of interest contains a special magnetic ink character recognition code zone (MICR), using E13B font. Specifies that the image or region of interest contains a special magnetic ink character recognition code zone (MICR), using MICR font. Specifies that the image or region of interest contains a line having only numeric symbols. This context is based on the GdPicture machine learning framework. To be used this context requires the digits.gdpictureml file available into the specified resource folder (see GdPicture OCR.ResourcesFolder property). Specifies that the image or region of interest contains adjacent cells where each cell contains a single handwritten digit. This context is based on the GdPicture machine learning framework. To be used this context requires the hw_digits_boxes.gdpictureml file available into the specified resource folder (see GdPicture OCR.ResourcesFolder property). Specifies that the image or region of interest contains only numeric symbols and capital letters in the range [A - Z]. This context is based on the GdPicture machine learning framework. To be used this context requires the alphanum_allcaps.gdpictureml file available into the specified resource folder (see GdPicture OCR.ResourcesFolder property). Specifies the writing direction of the block within a result when using the OCR. Unknown or undefined writing direction. Left-to-right writing direction. Right-to-left writing direction. Top-to-bottom writing direction. Specifies the orientation of the block within a result when using the OCR. Unknown or undefined orientation. No orientation. 90 degres orientation (clockwise). 180 degres orientation (clockwise). 270 degres orientation (clockwise). Specifies the type of the block within the OCR result. Unknown. Text that lives inside a column. Text that spans more than one column. Text that is in a cross-column pull-out region. Partition belonging to an equation region. Partition has inline equation. Partition belonging to a table region. Text-line runs vertically. Text that belongs to an image Image that lives inside a column. Image that spans more than one column. Image that is in a cross-column pull-out region. Horizontal Line. Vertical Line. Lies outside of any column. Specifies whether to favor speed or recognition accuracy using the OCR. Favors speed over accuracy. Favors accuracy over speed. Specifies OCR strategy Specifies automatic mode. Specifies that OCR is disallowed. Specifies that OCR in forced. Specifies the format of the output text file when saving the OCR results. UTF-16 encoding UTF-8 encoding Specifies the known languages to be used during OCR processes. Unknown or undefined language. Afrikaans - the code is afr. Amharic - the code is amh. Arabic - the code is ara. Assamese - the code is asm. Azerbaijani - the code is aze. Azerbaijani - Cyrillic - the code is aze_cyrl. Belarusian - the code is bel. Bengali - the code is ben. Tibetan -the code is bod. Bosnian - the code is bos. Bulgarian - the code is bul. Catalan, Valencian - the code is cat. Cebuano - the code is ceb. Czech - the code is ces. Chinese - Simplified - the code is chi_sim. Chinese - Traditional - the code is chi_tra. Cherokee - the code is chr. Welsh - the code is cym. Danish - the code is dan. German - the code is deu. Dzongkha - the code is dzo. Greek (Modern (1453-)) - the code is ell. English - the code is eng. Esperanto - the code is epo. Estonian - the code is est. Basque - the code is eus. Persian - the code is fas. Finnish - the code is fin. French - the code is fra. Frankish - the code is frk. Irish - the code is gle. Galician - the code is glg. Gujarati - the code is guj. Haitian, Haitian Creole - the code is hat. Hebrew - the code is heb. Hindi - the code is hin. Croatian - the code is hrv. Hungarian - the code is hun. Inuktitut - the code is iku. Indonesian - the code is ind. Icelandic - the code is isl. Italian - the code is ita. Italian Old- the code is ita_old. Javanese - the code is jav. Japanese - the code is jpn. Kannada - the code is kan. Georgian - the code is kat. Georgian Old- the code is kat_old. Kazakh - the code is kaz. Central Khmer - the code is khm. Kirghiz, Kyrgyz - the code is kir. Korean - the code is kor. Kurdish - the code is kur. Lao - the code is lao. Latin - the code is lat. Latvian - the code is lav. Lithuanian - the code is lit. Malayalam - the code is mal. Marathi - the code is mar. Macedonian - the code is mkd. Maltese - the code is mlt. Malay - the code is msa. Burmese - the code is mya. Nepali - the code is nep. Dutch, Flemish - the code is nld. Norwegian - the code is nor. Oriya - the code is ori. Panjabi - the code is pan. Polish - the code is pol. Portuguese - the code is por. Pushto, Pashto - the code is pus. Romanian, Moldavian, Moldovan - the code is ron. Russian - the code is rus. Sanskrit - the code is san. Sinhala, Sinhalese - the code is sin. Slovak - the code is slk. Slovenian - the code is slv. Spanish, Castilian - the code is spa. Spanish, Castilian - the code is spa_old. Albanian - the code is sqi. Serbian - the code is srp. Serbian - Latin - the code is srp-latn. Swahili - the code is swa. Swedish - the code is swe. Syriac - the code is syr. Tamil - the code is tam. Telugu - the code is tel. Tajik - the code is tgk. Tagalog - the code is tgl. Thai - the code is tha. Tigrinya - the code is tir. Turkish - the code is tur. Uighur, Uyghur - the code is uig. Ukrainian - the code is ukr. Urdu - the code is urd. Uzbek - the code is uzb. Uzbek - Cyrillic - the code is uzb-cyrl. Vietnamese - the code is vie. Yiddish - the code is yid. Greek (Ancient (-1453)) - the code is grc. Latin script dictionary. Orientation and script detection. Specifies a paragraph justification. The alignment is not quite clear. This can happen, if there are only one or two lines of text or the text looks like source code or poetry. Each line, except possibly the first, is flush with the same left tab stop. The text lines of the paragraph are centered about a line going down through the middle of the text lines. Each line, except possibly the first, is flush with the same right tab stop. Specifies various options for the text search/extraction engine customization. The default option means the default behavior, when no flags are defined. Setting this flag forces the engine to ignore whitespace characters that intersect bounding box of a recognized word. Otherwise, the whitespace character is included as a regular word component based on its position relative to the word bounding box. Setting this flag forces the engine to only place words on the same line if the vertical coordinates of their bounding boxes are matching exactly. Otherwise, the text extraction will apply threshold value when matching the vertical coordinates of words bounding boxes. Setting this flag forces the engine to ignore the format of ToUnicode table in Simple Fonts in cases where multibyte notation is used. Otherwise, the text extraction will only use the ToUnicode table with Simple Fonts if the single-byte notation is used according to PDF specification. Setting this flag forces the engine to try and preserve the text layout as presented on page. Setting this flag disables text orientation detection in the text extraction engine. Setting this flag forces engine to ignore text that is rotated in reference general text orientation. Specifies various output information available as output of text extraction engine. The default option means the default behavior, when no flags are defined. Setting this flag will include in the output the coordinates of the word bounding box. Setting this flag will include in the output the string representing the extracted word. Setting this flag will include in the output the font name used to render the word. Setting this flag will include in the output the font box height based on the used font information. Setting this flag will include in the output the text mode used for rendering the word, equivalent to the PdfTextMode enumeration. Setting this flag will include the text size used for rendering the word. Setting this flag will include the array of widths for each single glyph of the extracted word. Setting this flag will include the array of character representations for each single glyph. Specifies the orientation mode for a given content type. Specifies an orientation based on the page's rotation attribute of the document. Specifies an orientation based on the view rotation of the viewer. Specifies an orientation based on a combination of the the page's rotation attribute of the document and view rotation of the viewer. Emulates the given media type or media feature for CSS media queries. Use default rendering Emulate print media type for CSS media query Emulate screen media type for CSS media query Browser's events fired at page loading time accordingly to the Chrome DevTools Protocol. Specifies the type of a form field. Specifies the event handler that occurs after a font substitution at the toolkit scope. Specifies the event handler occurring before a font substitution request at the toolkit scope. Specifies the event handler that occurs during an external font file request. Provides data for the AfterSubstitutedFont event. Specifies the family name of the substituted font. Specifies the family name of font being used as replacement. Provides data for the BeforeAlternativeFontLookup event. Specifies the family name of the font to be substituted. Specifies the family names of the alternative fonts to be used prior to the standard substitution mechanism. A flag specifying if the substitution process must be aborted. Provides data for the OnExternalFontFileRequest event. Specifies the uri of the request font file. Specifies the font file binary content.