{{sidenavigation.sidenavigationExpandLabel}}
{{getMsg('Help_YouAreHere')}}: /  {{page.title}} {{page.title}}
{{$root.getMsg("downLoadHelpAsPdf")}} {{helpModel.downloadHelpPdfDataStatus}}

Comparison Profile

A comparison profile for i-net PDFC contains parameters and settings for the comparison of documents. Different comparison profiles can lead to very different results. Therefore, it may be necessary to adjust or optimize a profile for a specific comparison scenario.

Profiles supplied with i-net PDFC or an installed extension, and profiles provided centrally by an administrator, remain centrally controlled. Users can duplicate these profiles into their own profiles and customize the copies. The configuration permission is required for server-wide profile administration. The web interface also treats access to the Users and Groups application as administrative access when that application is installed.

Manage Compare Profiles

The Configuration application controls whether provided profiles are active under Comparison → Profiles. Activated profiles are available in the profile selector of the comparison application. The selector groups visible profiles into Provided profiles, Shared profiles and Own profiles and displays each profile's name and description. The statuses Customized and Centrally provided indicate a personal derivative and a centrally managed profile.

Create profile and Actions are located in the header of the profile sidebar. The action menu is context-dependent. It can provide editing, duplication, deletion, publishing, default loading, restoration of deleted provided profiles, import and export. Availability depends on the profile origin, editability, permissions, server restrictions and Drive availability. The comparison interface documents the user-oriented profile handling.

Note: The technical profile properties described below are independent of whether a profile is provided, shared or owned. A profile can be available in the selector while individual management actions remain unavailable.

The following settings are optional and only used for managing comparison profiles. The properties have no effect on the comparison itself.

Property Name Description
PROFIL_NAME A unique name to differentiate profiles.
PROFIL_DESCRIPTION A descriptive text for the profile.

Import/Export of profiles

Each profile can be stored in an external file using Actions → Export → Download. When Drive is available, Actions → Export → Save to Drive is also offered. Export files are portable and can be used with any type of i-net PDFC installation, including the GUI, API and server.

To import a profile, select an editable own profile or duplicate a provided profile. Then use Actions → Import → Upload file to select an XML profile. When Drive is available, From Drive can be used as an alternative. The selected imported profile replaces all settings of the current profile.

Exported profiles can be edited outside the application to set properties that are not exposed by the configuration interface. The possible settings are described in the respective tables.

Profile settings

The behavior and precision of i-net PDFC can be specified using configuration properties. These configuration properties are included in the file config.xml.

After installation, the installation folder contains config.xml with default values. You can change these default values by editing this file. If the file does not exist, i-net PDFC uses the default values.

Note: The graphical user interface uses the file .pdfc in the current user's home directory instead of the config.xml file in the installation directory. You can edit this file in the same way for special fine-tuning, but this is not necessary in most cases.

A profile basically contains the settings for the comparison mode, element comparison types and filters to be used. Each filter or comparison type may have additional options to fine-tune the feature.

Comparison mode

Property Name Description
CONTINUOUS_COMPARE This value defines which comparison engine is used. The available raw values are CONTINUOUS and STRICT. The default value is CONTINUOUS.

In the web interface, CONTINUOUS_COMPARE=CONTINUOUS is displayed as Continuous documents. The raw value STRICT is displayed as Page by Page. The user-oriented labels do not change the technical property values.

Continuous mode

The following property only works in comparison mode CONTINUOUS.

Property Name Description Default Range
CONTINUOUS_DETECT_PAGES Specifies whether continuous comparison can be split instead of comparing all content at once. If set to a value greater than zero, this specifies how many pages may be added or inserted before the comparison fails to match the content. The larger this value, the more precise the comparison can be. A large value increases memory consumption. If this value is zero, all content is compared at once, which provides the optimum result at the cost of maximum memory usage. 5 0 - 2147483647

Strict mode

The following properties only work in comparison mode STRICT.

Property Name Description Default Range
TOLERANCE_PAGE_LEFTCORNER Specifies the maximum number of pixels that the left or top margin of a page can differ, measured at the upper-left corner of all elements, before it is viewed as a difference. 3 0 - 100
TOLERANCE_PAGE_RATIO Specifies the tolerance for the aspect ratio of the PDF page. 0.01 0 - 1
TOLERANCE_PAGE_SIZE Specifies the maximum number of pixels that the width or height of a page can differ before it is viewed as a difference. 2 0 - 100

Logging and Results

Deprecated, these properties will be removed in a future version.

With the following properties it is possible to configure the output of i-net PDFC and the logging. This profile setting are deprecated and will be removed soon. Use the Settings or the CommandLine arguments instead.

Property Name Description
CREATE_DIFFIMAGES Specifies if a PNG image with the marked difference will be created for each pair
of pages that contains differences. Possible values are: false, first, second
and true - this creates the difference image for none, the first, the second or
both files.
The default value is: false.
CREATE_ORIGIMAGES Specifies if a PNG image with the original content will be created for
each compared page.
The default value is: false.
CREATE_XORIMAGES Creates an (negated) XOR image for any pair of pages with differences.
The image will be stored as a PNG in the differences directory of the
current comparison. If CREATE_DIFFIMAGES is enabled as well,
the XOR image will be drawn onto the image created by
CREATE_DIFFIMAGES between the two actual page images.
The default value is: false.
IMAGE_SCALE_FACTOR Defines a scale factor for the generated images (original and
difference images). The default is 1, i.e., no scaling.
The default value is: 1.
LOG_FILE Specifies the file where logged information is to be stored.
If a file is specified, the logging is written to the file, otherwise the logging is
written to the console.
Default is empty, logging to the console.
LOG_LEVEL Specifies the Logging Level. Available values:
''OFF'' // switches the output completely off.
''ERROR'' // logs error messages.
''WARN'' // contains all the messages from ERROR-Level and 
            additionally informs about the irregularities 
            during the execution.
''INFO'' // (Default) contains all the messages from 
            WARN-Level and additionally describes settings 
            and environment attributes.
''ALL'' // is used to display the maximal information during 
           the PDFC execution including any debug info.
MAX_ERRORS_PER_FILE Sets the maximum number of differences for the console or log output.
All further differences will be counted but not shown in detail.
The default value is: 100. [ Value "-1" for unlimited]
EXPORT_PDF_ALWAYS Specifies whether the PDF export function should create a file for
any comparison(value true) or only in case of differences(value false).
The default value is: false

Filters and optimizations

Filters are an optional feature for the continuous mode. They help to remove redundant elements from the comparison and to overcome the issue that PDFs may not contain any information about the original text layout. Please note these filters may not be exactly correct in every case. Finding the original layout of a document depends heavily on the content of the documents. The chance of correctly detecting a header rises with the number of pages available. It is therefore recommended to use the desktop or web application of i-net PDFC when activating filters, since they allow you to review the result of each filter.

Filters can be activated by adding them to the FILTERS property:

Property Name Description
FILTERS Specifies a comma-separated list of filters that will be executed before the actual comparison.

If all available filter plugins are installed and activated in the server configuration, the following filter keys are available:

Exclude area from comparison

The Area filter GUI page describes the current editor. This Programming page documents the stored profile values, legacy raw syntax, and technical mapping separately from editor operation.

Raw profile values

Name Value and meaning
FILTERS Contains the AREA filter identifier to activate the area filter. Values are stored as a comma-separated list.
AREAFILTER Contains multiple area entries separated by semicolons. Each entry starts with x,y,width,height in page coordinates at 72 DPI.
AREA_INCLUDE Boolean value, default false. With false, elements inside matching areas are removed from the comparison. With true, all elements are removed first and only content inside matching areas is retained.

The four legacy coordinates x,y,width,height are pixels in a 72-DPI page-coordinate system, not CSS or screen coordinates. Empty coordinates are parsed as 0. The sidebar validates drawn areas with non-negative x and y values and positive width and height.

Legacy raw syntax

The current codec accepts the following syntax for each entry:

x,y,width,height[,ODD|EVEN|PAGE,n|FIRST,n|LAST,n][,F|S]

Join entries with ;. The optional page selector can be ODD, EVEN, PAGE,n, FIRST,n, or LAST,n. A bare positive number in this position remains valid as the legacy form of PAGE,n. F limits the area to the first document and S to the second document. Without a page selector, the area applies to all pages; without a document identifier, it applies to both documents. The canonical serializer writes PAGE,n for a single page.

Examples of valid raw values:

10,20,100,40
10,20,100,40,PAGE,2,F
10,20,100,40,LAST,3,S;0,0,612,72,ODD

FIRST,n and LAST,n refer to the visible comparison pages of the respective document side. LAST,n can be resolved only after the total page count is known. An area matches a page element only when the element bounds are completely inside the rectangle. Image render regions are additionally clipped to included or excluded areas.

Parser fallback and validation

When the sidebar loads a profile, it attempts to convert AREAFILTER into structured area entries with the current codec. If an existing value cannot be parsed, the original raw value remains in the composite sidebar model. The sidebar switches to raw mode and displays the error instead of silently discarding the value. Saving in raw mode writes the unchanged raw value again.

Structured sidebar entries are checked as follows:

  • x and y must not be negative.
  • width and height must be greater than 0.
  • The page mode must be all, odd, even, single, first, or last.
  • single, first, and last require a positive page or count value; the other modes must not contain a page value.
  • The document scope must be both, first, or second.
  • The area mode must be exclude or include.

Profile XML

<entry key="FILTERS">AREA</entry>
<entry key="AREAFILTER">10,20,100,40,PAGE,2,F;0,0,612,72,ODD</entry>
<entry key="AREA_INCLUDE">false</entry>

Structure and API keys

Key Mapping
pdfc.filter.AREA Adds or removes AREA in FILTERS.
pdfc.filter.AREAFILTER Accesses AREAFILTER.
pdfc.filter.AREA_INCLUDE Accesses AREA_INCLUDE.

Mapping to the current sidebar

  • Area filter controls activation and writes the AREA filter identifier to FILTERS.
  • Under Comparison scope, Ignore content inside areas corresponds to AREA_INCLUDE=false; Compare only content inside areas corresponds to AREA_INCLUDE=true.
  • Areas edits the four coordinates and the dynamic page selectors All pages, Odd pages, Even pages, Single page, First pages, and Last pages. The document selector Both documents, First document, or Second document is serialized as the optional F or S identifier.
  • Edit areas is a viewer function available after the comparison and changes the raw values through the composite sidebar model.

Pages to compare

The Pages to compare GUI page describes the current profile sidebar. The following sections document the stored profile values and their mapping separately from the user interface.

Raw profile values

Name Value and meaning
FILTERS Contains the PAGERANGE filter identifier to activate the page-range filter. Values are stored as a comma-separated list.
PAGERANGE_DOCUMENT1 One-based page numbers and inclusive page ranges for document 1, separated by commas, for example 1-5,8,11-13.
PAGERANGE_DOCUMENT2 One-based page numbers and inclusive page ranges for document 2, separated by commas.
PAGERANGE_END_DOCUMENT1 Non-negative number of pages removed from the end of document 1 after the page-range selection. 0 means that no additional pages are removed.
PAGERANGE_END_DOCUMENT2 Non-negative number of pages removed from the end of document 2 after the page-range selection. 0 means that no additional pages are removed.

Page-range values use one-based page numbers. The end filters are applied after the page-range selection. The current plugin definition uses the full names PAGERANGE_END_DOCUMENT1 and PAGERANGE_END_DOCUMENT2 for the two end filters. The shortened identifiers PAGERANGEEND1 and PAGERANGEEND2 are not current profile names.

Profile XML

The following example shows the raw values in a profile configuration:

<entry key="FILTERS">PAGERANGE</entry>
<entry key="PAGERANGE_DOCUMENT1">1-5,8,11-13</entry>
<entry key="PAGERANGE_DOCUMENT2">1-5,8,11-13</entry>
<entry key="PAGERANGE_END_DOCUMENT1">2</entry>
<entry key="PAGERANGE_END_DOCUMENT2">0</entry>

Structure and API keys

The server structure and API keys are derived from the raw profile values:

Key Mapping
pdfc.filter.PAGERANGE Adds or removes PAGERANGE in FILTERS.
pdfc.filter.PAGERANGE_DOCUMENT1 Accesses PAGERANGE_DOCUMENT1.
pdfc.filter.PAGERANGE_DOCUMENT2 Accesses PAGERANGE_DOCUMENT2.
pdfc.filter.PAGERANGE_END_DOCUMENT1 Accesses PAGERANGE_END_DOCUMENT1.
pdfc.filter.PAGERANGE_END_DOCUMENT2 Accesses PAGERANGE_END_DOCUMENT2.

Mapping to the current sidebar

  • Compare selected pages adds PAGERANGE to FILTERS or removes the identifier.
  • In Document 1 and Document 2, Page range writes PAGERANGE_DOCUMENT1 and PAGERANGE_DOCUMENT2. The list contains exactly one row for each document.
  • Last pages writes PAGERANGE_END_DOCUMENT1 and PAGERANGE_END_DOCUMENT2. An empty value is treated by the sidebar as no additional pages.
  • The page-list fields are enabled only when the filter is active. Validation expects valid page ranges for both documents and a value from 0 to 99999 for the last-pages fields.

Basic Table Optimization

This filter can be used to optimize the comparison of tables with visual borders. The filter will detect the original structure of the table and rearrange the content so that the content will be compared by cell.

Requirement: This filter will only detect a table, if

  • The table has a visible border
  • Each cell has a visible border
  • There is no cell spacing
  • The table has at least two rows and two columns

The GUI documentation for //Optimize Basic Tables// describes the current profile sidebar of i-net PDFC. The options under this filter are enabled only when Optimize Basic Tables is selected.

Filter repeating headers

In case a table does not fit onto a single page it is common to repeat the table header after the page break. Usually i-net PDFC tends to mark such repeated headers as differences since it's content that does not belong to the table data. With this option enabled, the filter will exclude any table header from the comparison that is identical to the header of the last table on the previous page.

Compare tables by

By default, the complete content of each row is used to establish a match for comparison. With the option “First column as key”, only the value in the first column is used as the key for matching rows. When “Auto-detect” is selected, the first 1 to 3 columns are automatically used as the key – provided there are no duplicates within each individual table in those columns.

Raw profile values

The filter is enabled by adding the identifier BASELINETABLE to the comma-separated FILTERS list. The related profile properties are:

Raw key Value or range Meaning and default
FILTERS contains BASELINETABLE Enables BaselineTable processing. If the identifier is absent, the filter is disabled.
IGNORE_REPEATING_HEADER true or false Filters repeated table headers from the comparison data. The default value is true.
TABLE_HEADER_DIFF_RATIO Floating-point value from 0.0 to 1.0 Defines the relative tolerance for detecting repeated table headers. The default value is 0.0. The property is evaluated only when IGNORE_REPEATING_HEADER is enabled. It is not exposed as a separate choice in the current profile sidebar.
TABLE_ID_COLUMN false, true, auto, 1 through 10 Controls table-row matching. The default value is false. The current profile sidebar exposes only false, true, and auto; the numeric raw values are not offered there.
TABLE_USE_TATR true or false Enables optional TATR table detection. The default value is false.

Mapping to the current profile sidebar

The current choice labels and their raw values are:

Raw value in TABLE_ID_COLUMN Sidebar choice Mapping
false Whole table row The complete table row is used as the comparison key.
true First column as key The first column is used as the key for matching table rows.
auto Auto-detect The suitable key type is detected automatically for each table.

The Filter repeating headers checkbox maps to IGNORE_REPEATING_HEADER. The Optimize Basic Tables entry maps to the BASELINETABLE identifier in FILTERS. The Compare tables by select maps to TABLE_ID_COLUMN.

The related structure or UI keys are:

Sidebar option Structure or UI key Raw profile value
Optimize Basic Tables pdfc.filter.BASELINETABLE FILTERS contains BASELINETABLE
Filter repeating headers pdfc.filter.IGNORE_REPEATING_HEADER IGNORE_REPEATING_HEADER
Compare tables by pdfc.filter.TABLE_ID_COLUMN TABLE_ID_COLUMN
Enable AI table detection (slow) pdfc.filter.USE_TATR TABLE_USE_TATR

Optional TATR usage

i-net PDFC registers a TATR model builder for BaselineTable. The Enable AI table detection (slow) checkbox is visible only when this model builder is active in the configuration. If no TATR model status is present, the option is shown as available. If a model status is present, the option is unavailable; administrators see it disabled together with the status, while it remains hidden for other users. If the model builder is missing or inactive in the configuration, the option is not shown.

The TATR option can be enabled only when Optimize Basic Tables is active. TATR is optional and can help detect tables without visible borders; using it can slow down processing. TABLE_USE_TATR remains false by default.

Profile fragment

A possible XML profile fragment is:

<entry key="FILTERS">BASELINETABLE</entry>
<entry key="IGNORE_REPEATING_HEADER">true</entry>
<entry key="TABLE_HEADER_DIFF_RATIO">0.0</entry>
<entry key="TABLE_ID_COLUMN">auto</entry>
<entry key="TABLE_USE_TATR">false</entry>

Multi-column layout

This filter should be used if the content is arranged in several columns. A typical example is the layout of daily newspapers.

Note: The filter is not suitable for tables!

Headers and Footers

This filter can be used to exclude headings and footers from the comparison that leads to the reduction of repeating differences. Automatic detection is only possible in non-strict mode. Three options are available.

  • Do not recognize Headers and footers are not recognized
  • Automatically Detect Headers and footers are automatically recognized and treated by PDFC
  • Manually set Headers and footers allow you to precisely adjust pixels if the areas can not be detected automatically.

The Headers and Footers GUI page describes the current three-state sidebar field. This Programming page documents the technical raw values and their mapping separately from the user interface.

Raw profile values

Name Value and meaning
FILTERS Contains the HEADERFOOTER filter identifier to activate the filter. Values are stored as a comma-separated list.
FIXED_HEADER_SIZE Integer size in pixels. A non-negative value is the manually defined header size. A negative value encodes automatic detection as -(size + 1). -1 therefore represents automatic detection with an exposed size of 0 pixels.
FIXED_FOOTER_SIZE The footer equivalent of the header-size value. Non-negative values are manual pixel sizes; negative values use the same automatic-detection encoding.

The filter implementation treats every value below 0 as automatic detection. The current sidebar derives its mode from the filter identifier and both size values: if HEADERFOOTER is absent, the mode is Don't detect; if both size values are negative, it is Auto detect; once at least one value is non-negative, it is Set manually. The current profile sidebar provides Header Size and Footer Size sliders from 0 to 200 pixels.

Profile XML

The following example enables automatic detection:

<entry key="FILTERS">HEADERFOOTER</entry>
<entry key="FIXED_HEADER_SIZE">-1</entry>
<entry key="FIXED_FOOTER_SIZE">-1</entry>

A manual configuration stores non-negative size values:

<entry key="FILTERS">HEADERFOOTER</entry>
<entry key="FIXED_HEADER_SIZE">36</entry>
<entry key="FIXED_FOOTER_SIZE">42</entry>

Structure and API keys

Key Mapping
pdfc.filter.header_footer_filter Exposes GUI mode off, automatic, or manual and controls the HEADERFOOTER filter identifier in FILTERS.
pdfc.filter.header_footer_filter.fixed_header_size Accesses FIXED_HEADER_SIZE.
pdfc.filter.header_footer_filter.fixed_footer_size Accesses FIXED_FOOTER_SIZE.

The structure and API keys are separate from the profile names. The profile configuration stores FILTERS, FIXED_HEADER_SIZE, and FIXED_FOOTER_SIZE; the structure interface uses keys with the pdfc.filter.header_footer_filter prefix.

Mapping to the current sidebar

  • Don't detect removes HEADERFOOTER from FILTERS and sets both size values to -1.
  • Auto detect adds HEADERFOOTER to FILTERS and stores both size values as negative. Detection analyzes recurring header and footer areas.
  • Set manually adds HEADERFOOTER to FILTERS, displays Header Size and Footer Size, and stores non-negative pixel values.
  • The manual size fields are displayed only for Set manually. When switching to Auto detect, the current sizes are stored with the negative encoding.

Filter content

The Filter content GUI page describes the current profile sidebar. This Programming page documents raw values and Java regex execution separately from the user interface.

Raw profile values

Name Value and meaning
FILTERS Contains the REGEXP filter identifier to activate the content filter. Values are stored as a comma-separated list.
FILTER_PATTERNS Contains multiple pattern lines separated by literal line breaks. The canonical format of each line is pattern|type|status, with type as text or regexp and status as active or inactive.
REGEX_MATCH_WORDS Boolean value, default true. With true, every word touched by a match is removed completely. With false, only the matching character ranges are removed.

Inactive patterns remain stored but are not applied. Active patterns must contain content. An active regex pattern must compile as a Java pattern; an invalid inactive pattern can remain as a draft.

Line breaks and profile XML

When a pattern is saved, literal line breaks inside the pattern are encoded as CR. The decoder also understands the legacy token BR. If a pattern itself contains one of these tokens or starts with the reserved prefix, the codec uses the versioned envelope <base64> so that the pattern text remains unambiguous.

<entry key="FILTERS">REGEXP</entry>
<entry key="REGEX_MATCH_WORDS">true</entry>
<entry key="FILTER_PATTERNS">Version [[CR]][[CR]]|text|active
(?s)Start.*?End|regexp|active</entry>

The lines in FILTER_PATTERNS are processed in their stored order. Type text is matched literally; type regexp is compiled as a Java regex.

Structure and API keys

Key Mapping
pdfc.filter.regex_filter Adds or removes REGEXP in FILTERS.
pdfc.filter.regex_filter.filter_patterns Accesses FILTER_PATTERNS as a list of pattern lines.
pdfc.filter.regex_filter.match_words Accesses REGEX_MATCH_WORDS. true corresponds to Whole words; false corresponds to Partial matches.

Java regex semantics

Regex patterns are compiled with Java Pattern.compile without a fixed flag mask. Plain-text patterns are quoted with Java Pattern.quote before compilation. Java regular-expression rules therefore apply, including embedded flags.

  • (?s) enables DOTALL for the following expression and lets the dot match across line breaks.
  • (?m) enables MULTILINE and changes the meaning of ^ and $ for individual lines.
  • Other Java flags can be embedded, for example (?i) for a case-insensitive search.
(?s)Start.*?End
(?m)^Article:.*$

Each active pattern is applied with Java Matcher.find() to the complete extracted page text. Matching is not performed separately for individual PDF text elements. An invalid active Java regex is rejected during sidebar validation.

Capture-group semantics

If a match contains no capture groups, the complete match, group 0, is removed. If the pattern contains at least one capture group, only participating groups 1 through n are removed. Group 0 is not removed in addition. An optional group that does not participate in a particular match is skipped.

Invoice (number: [0-9]+)

With Whole words, every word touched by a match is removed completely. With Partial matches, only the character ranges described by the match or participating capture groups are removed. Overlapping ranges are merged before page elements are adjusted.

Mapping to the current sidebar

  • Filter content controls the REGEXP filter identifier in FILTERS.
  • Filter Patterns is an editable list. Add filter ... creates an active pattern as Plain text or Regular Expression.
  • Enable filter controls the active or inactive status of each pattern row.
  • Type with Plain text uses text and matches the content literally. Regular Expression uses regexp and Java regex semantics.
  • Pattern writes the pattern portion. Exclude whole words with Whole words or Partial matches writes REGEX_MATCH_WORDS.
  • When an empty pattern is activated or an invalid regular expression is entered, the sidebar displays a validation message for the affected row.

OCR and text recognition

Technical properties

The technical configuration of the i-net PDFC OCR plugin uses a filter identifier and a separate normalization value. OCRProfileUIBuilderExtension creates the normalization selector only when the OCR factory is available. If the plugin reports an availability status, administrators see a warning; for other users, the plugin UI is not created in that situation.

Name Description
FILTERS Add OCR to the comma separated filter list to enable text recognition in images. In the combined profile sidebar, independent font-mapping repair is represented by the additional filter value CMAPPATCH. The same list can contain other filter values.
NORMALIZATION_LEVEL Defines the tolerance for normalizing recognized characters. The default value is 1. The value is effective only when OCR is present in FILTERS.
0 - No tolerance: Compares characters exactly as they were recognized, without normalization.
1 - Similar characters only: Tolerates errors in characters with a similar appearance, for example a Latin a and a visually similar Cyrillic character. A complete list of such characters is available in the Unicode confusables list.
2 - Typical OCR recognition errors: Tolerates errors in visually similar characters, especially on noisy backgrounds. This level is based on experience and testing because there is no public recommendation. An example is the sharp s and an upper-case B, which can look similar in some fonts.
3 - Recognition errors in distorted text: Includes the preceding tolerance and additional cases for slightly rotated or distorted images. Such distortions often occur when pages are scanned.

The UI key pdfc.filter.NORMALIZATION_LEVEL.WEBGUI is the technical interface of the sidebar selector. The stored raw value is NORMALIZATION_LEVEL. The value -1 used by OCRProfileUIBuilderExtension is not a profile normalization value; it marks the inactive sidebar selection. When the value is applied, the extension removes OCR from FILTERS and does not apply -1 as a new NORMALIZATION_LEVEL value.

Compared Types

The continuous compare mode distinguishes between four types of content: text words, lines and shapes, images and annotations. Each of these types can be excluded from the comparison.

Compared types can be included or excluded using the COMPARE_TYPES property:

Property Name Description
COMPARE_TYPES Specifies a comma-separated list of types that will be included in the comparison. The default is TEXT, LINE, IMAGE, ANNOTATION.

Text comparison

Property

This includes all text elements such as words, numbers, punctuation and list items. Text comparison can be modified using the following properties:

Property Name Description
DOCUMENT_LANGUAGE This value defines the language for all text recognition plugins. If the configured language does not match the actual language of the document, recognition errors increase significantly. If the required language is not available, see the OCR help page for information about installing further languages. The default value is auto-detect, in which case i-net PDFC tries to detect the language from native text elements in the document, if any. If the language cannot be detected, the client language or English is used.
TEXT_ALIGN_RATIO The text tolerance value sets the allowed vertical deviation for text line identification. It is relative to the text height of the respective line. This value can compensate for rounding errors from different PDF generators. If documents have a very accurate layout, a lower value leads to a more precise comparison. The default value is 0.15.
COMPARE_TEXT_STYLES A comma-separated list defining which text properties of matched words to compare. Available values are SIZE, COLOR, FONT, STYLES and ROTATION. The default value compares all properties.
TOLERANCE_TEXT_SIZE Defines the tolerated difference in text size as a ratio. It is relevant when COMPARE_TEXT_STYLES includes the size property. The default value is 0.05.
TOLERANCE_COLOR Defines the maximum color difference per RGB or HSB channel for all paints. The value is the absolute difference for HSB and absolute * 255 for RGB. This value is also used by line comparison. The default value is 0.01, which is 1%.
COMPARE_TEXT_CASE_SENSITIVE Toggles case sensitivity of the text comparison. If set to false, all text elements are compared as lowercase. This makes the comparison slightly slower and uses more memory. Lowercase conversion uses the default localization of the runtime. The default value is true.
TOLERANCE_UNDERLINE_LENGTH Specifies the maximum difference in percent by which underline lengths may differ before they are viewed as a difference. The default value is 0.1. The range is 0.0 - 10.0. This value is only used for a STRICT comparison mode.

Line and shapes comparison

Deviation tolerance for lines

This value includes all graphical elements except images. Line and shape comparison can be modified using the following properties:

Property Name Description Default Range
COMPARE_LINE_STYLES If set to true, the styles of all matched lines and shapes are checked as well. This compares the color, stroke and thickness of all lines. true
TOLERANCE_LINE_POSITION Specifies the maximum number of pixels by which the position of a line or curve can differ per axis before it is viewed as a difference. 3 0 - 100
TOLERANCE_LINE_SIZE Specifies the maximum number of pixels by which the length of a line can differ in total before it is viewed as a difference. 2 0 - 100
TOLERANCE_LINE_THICKNESS Specifies the maximum difference in stroke thickness of two lines or curves, measured in pt, before it is viewed as a difference. 1 0 - 100
TOLERANCE_COLOR Defines the maximum color difference per RGB or HSB channel for all paints. The value is the absolute difference for HSB and absolute * 255 for RGB. This value is also used by text comparison. 0.01 0.0 - 1.0
TOLERANCE_BOX_ROUND_EDGES Specifies the maximum number of pixels by which a control point of a quadratic Bezier curve may differ in total before it is viewed as a difference. 3 0 - 10

Image comparison

Deviation tolerance for images

This value includes all images. Comparing images may have a notable impact on performance. Image comparison can be modified using the following properties:

Property Name Description Default Range
TOLERANCE_IMAGE_DISTANCE Specifies the maximum number of pixels by which the position of an image can differ before it is viewed as a difference. 3 0 - 10
TOLERANCE_IMAGE_PIXEL_VALUE Specifies the maximal allowed discrepancy of pixel values, as a Double, before it is viewed as a difference. 0.05 0.0 - 1.0
TOLERANCE_IMAGE_SIZE Specifies the maximum difference in percent by which the area spanned by an image may differ before it is viewed as a difference. 0.1 0.0 - 1.0
USE_PIXEL_MEDIUM_VALUE Specifies whether image comparison compares medium values instead of single-pixel values. true

Annotation Comparison

Property Name Description
COMPARE_ANNOTATIONS_DETAILED Specifies whether differences per annotation are summarized, using false, or fully detailed like any other difference in the document, using true. The default value is false.

Paging and sections

Area filter

The Area filter in i-net PDFC defines rectangular page areas that are removed from the comparison basis or used as the only comparison areas. The interface edits these areas visually in the document once the required page views are available.

Comparison scope

Use Comparison scope to choose how the configured areas are used:

  • Ignore content inside areas removes content inside the areas from the comparison basis. The remaining page content is compared.
  • Compare only content inside areas ignores everything outside the areas. Only content inside the areas is compared.

Edit areas

Edit areas becomes available only when page views for the comparison are available. Select Add area and then drag the desired rectangle onto a document page. You can move existing areas and change their size.

Use Document to assign each area to the required documents: Both documents, First document, or Second document. Use Pages to define its scope: All pages, Odd pages, Even pages, Single page, First pages, or Last pages. For a single page or a first or last page group, you can specify the page or the Count.

The Show, Highlight, and Delete actions help you inspect and manage the defined areas. Select Finish editing to leave the visual editing mode.

Visual area editor in active editing mode.

Important: Incorrect or oversized areas can remove real differences completely from the comparison basis.

Compare selected pages

The following options are available for each document:

Document 1

  • Page range: Enter one-based page numbers or inclusive ranges separated by commas, for example 1-5,8,11-13. A range includes both its first and last page.
  • Last pages: Enter how many pages should additionally be excluded from the end of the selected page range.

Document 2

  • Page range: Enter one-based page numbers or inclusive ranges separated by commas, for example 1-5,8,11-13. A range includes both its first and last page.
  • Last pages: Enter how many pages should additionally be excluded from the end of the selected page range.

The page range is determined first. The number entered for Last pages is then excluded from the end of that result. An empty field or the value 0 excludes no pages from the end.

The inputs are validated. For Last pages, enter an integer from 0 to 99999; negative values and values outside this range are invalid. A valid page range consists of one-based page numbers and inclusive ranges separated by commas. A validation error is shown at the affected field and prevents the value from being saved.

Comparison types

Text comparison

Ignore rotated text

The GUI documentation for //Ignore rotated text// describes the current profile sidebar of i-net PDFC. In the sidebar, the checkbox is shown in the Text group under Advanced text options. It is available only when text comparison is active.

Raw profile values

The current i-net PDFC implementation controls this option through the filter list:

Raw key Value Meaning
FILTERS contains HIDEROTATEDTEXT Enables the filter for rotated text. The filter list can contain additional identifiers. If the identifier is absent, the filter is disabled.
INVISIBLEELEMENTS_HIDE_ROTATION do not use This key is not a current raw profile value of the HideRotation implementation. It must not be documented or added to a profile alongside the filter identifier.

The filter is registered with the identifier HIDEROTATEDTEXT. A profile fragment for enabling it is:

<entry key="FILTERS">HIDEROTATEDTEXT</entry>

The structure or UI key pdfc.filter.hide_rotation maps the checkbox to the FILTERS list. When enabled, HIDEROTATEDTEXT is added; when disabled, the identifier is removed from the list. At runtime, the implementation processes this filter after OCR processing and before basic table detection.

Enhancements

Standardize text

The GUI documentation for //Standardize text// describes the current three-stage select field in the i-net PDFC profile sidebar. The selection is located in the Enhancements group.

Three transformation modes

Sidebar choice Raw values Effect
Off FILTERS does not contain TEXTTRANSFORM The TextTransform filter is not executed. An existing TRANSFORM_OPERATIONS value has no effect while the filter is disabled.
Simplify complex characters FILTERS contains TEXTTRANSFORM; TRANSFORM_OPERATIONS contains REPLACE_IDENTICAL Performs the basic normalization of complex characters.
Equalize common OCR mistakes FILTERS contains TEXTTRANSFORM; TRANSFORM_OPERATIONS contains REPLACE_IDENTICAL,REPLACE_CONFUSABLES Performs the basic normalization and additionally equalizes typical OCR mistakes. This is the strongest sidebar mode.

For the strongest mode, the sidebar writes both operations in this order. REPLACE_CONFUSABLES alone is a valid raw value, but it does not represent the complete strongest sidebar choice.

Raw profile values

The filter name is TEXTTRANSFORM. It is enabled through the comma-separated FILTERS list. The current implementation uses TRANSFORM_OPERATIONS for a comma-separated list of enum values:

Raw key Value or range Meaning and default
FILTERS contains TEXTTRANSFORM Enables TextTransform processing. The default value of the property list contains INVISIBLEELEMENTS,TEXTTRANSFORM,SOLVEFALSEREPLACE.
TRANSFORM_OPERATIONS REPLACE_IDENTICAL and/or REPLACE_CONFUSABLES Defines the transformations to execute. The default value is REPLACE_IDENTICAL. Operations are executed in implementation order.

Both properties take effect only when the plugin is installed. The sidebar implementation validates the selection against off, REPLACE_IDENTICAL, and REPLACE_CONFUSABLES. The value off is not stored in TRANSFORM_OPERATIONS; it removes TEXTTRANSFORM from FILTERS.

Mapping to the current profile sidebar

The Standardize text select field is provided by PDFCFilterTextTransformStructureProvider with the UI key pdfc.filter.texttransform. The mapping is:

UI value Sidebar choice Stored raw values
off Off FILTERS without TEXTTRANSFORM
REPLACE_IDENTICAL Simplify complex characters FILTERS with TEXTTRANSFORM and TRANSFORM_OPERATIONS=REPLACE_IDENTICAL
REPLACE_CONFUSABLES Equalize common OCR mistakes FILTERS with TEXTTRANSFORM and TRANSFORM_OPERATIONS=REPLACE_IDENTICAL,REPLACE_CONFUSABLES

When a non-off choice is saved, TEXTTRANSFORM is added to FILTERS. Other existing filter identifiers remain in the list.

Simplify complex characters

REPLACE_IDENTICAL removes Unicode format characters, performs Unicode NFKD normalization, and removes simple spaces from the comparison text. This can convert compatibility characters and ligatures into a comparable base representation, for example fi to fi or ‼ to !!.

Decompose complex characters

Activate to decompose complex or special characters in into basic characters. Complex characters are for instance ligatures like 'fi' which will be decomposed into 'fi'. Furthermore special character like long or short hyphens will be normalized to their base character.

Equalize common OCR mistakes

REPLACE_CONFUSABLES also removes Unicode format characters, first normalizes to NFD, and then uses the Unicode TR39 confusables replacement table for visually similar characters. This can equalize typical OCR confusions such as m and rn.

In the strongest sidebar mode, REPLACE_IDENTICAL is applied first and REPLACE_CONFUSABLES second:

Equalize character recognition mistakes

Activate to correct typical text recognition mistakes. An example for a common ambiguousness in text recognition is the character 'm' and the syllable 'rn' which appear very similar depending on print quality and font.

Profile fragment

A possible XML profile fragment for the strongest mode is:

<entry key="FILTERS">TEXTTRANSFORM</entry>
<entry key="TRANSFORM_OPERATIONS">REPLACE_IDENTICAL,REPLACE_CONFUSABLES</entry>

Comparison effect

The transformation is applied to extracted words and recursively to structure elements. The normalized representation is used only for comparison and does not replace the text presented to users. The option equalizes different text representations and common OCR artifacts; it is not general content correction.

Handle multi-column layouts

The GUI documentation for //Handle multi-column layouts// describes the current profile sidebar of i-net PDFC. The option belongs to the Enhancements group. It is intended for flowing text in multiple columns and not for table layouts.

Raw profile values

The current implementation has no separate profile property for the number of columns. The filter is enabled by adding the identifier MULTICOLUMN to the comma-separated FILTERS list. The default value of FILTERS does not contain this identifier, so the filter is disabled by default.

Raw key Value Meaning and default
FILTERS contains MULTICOLUMN Enables MultiColumn processing. The list can contain additional filter identifiers.
MULTICOLUMN no separate profile property The identifier is the filter name and is managed as an entry in FILTERS.

Mapping to the current profile sidebar

The Handle multi-column layouts checkbox maps the UI key pdfc.filter.multicolumn to the MULTICOLUMN entry in FILTERS. Enabling adds the identifier; disabling removes it. There is no additional raw profile property for this choice.

Filter behavior

MultiColumnFilter analyzes the extracted text elements of a page and detects a column structure from their geometry. When more than one column is detected, i-net PDFC orders the content column by column for comparison instead of processing it only line by line across the full page. Other document elements are assigned to the nearest detected column. If no multi-column structure is detected or the layout contains at most one column, the original element list is retained.

Column detection is a layout heuristic. It uses geometric and text-based criteria and is designed for at most three columns in a row. The detected structure is page-dependent; the option changes comparison order, not the PDF content.

Recommendation

The Multi-column text was detected. recommendation is generated by profile analysis when multiple valid columns with sufficient text are detected. The check uses leading pages within the profile-analysis limit and applies stricter text-density and column-height requirements; as a guide, each column must contain at least four fully occupied text-line equivalents. The recommendation is document-dependent guidance, not unconditional activation for every document or page.

Distinction from tables

Handle multi-column layouts optimizes the reading order of multi-column flowing text. It is not a table comparison and does not replace table or row matching. Tables should be processed with the dedicated BaselineTable option, because table structures can otherwise be interpreted as reading columns.

Profile fragment

A possible XML profile fragment for enabling the filter is:

<entry key="FILTERS">MULTICOLUMN</entry>

Ignore invisible elements

The GUI documentation for //Ignore invisible elements// describes the current profile sidebar of i-net PDFC. The option belongs to the Enhancements group. The Compute actual visibility sub-option is shown and enabled only when Ignore invisible elements is active.

Raw profile values

The filter is enabled by adding the identifier INVISIBLEELEMENTS to the comma-separated FILTERS list. The default value of the FILTERS property contains INVISIBLEELEMENTS,TEXTTRANSFORM,SOLVEFALSEREPLACE. The related profile property is:

Raw key Value or range Meaning and default
FILTERS contains INVISIBLEELEMENTS Enables the heuristic for elements that do not contribute to the visible result. The list can contain additional filter identifiers.
COMPUTE_CLIPPING true or false Enables structural computation of actual visibility. The default value is false.

Current heuristic

With COMPUTE_CLIPPING=false, InvisibleObjectsFilter uses element-based heuristics on extracted PDF elements instead of rendering the page as pixels. Among other cases, it removes the following from the comparison basis:

  • elements outside the page bounds or their clipping area
  • text and shapes without visible fill or stroke
  • zero-size images and very small line or curve differences
  • duplicate comparable elements
  • transparent or white content on a blank background

Structural elements and annotations are retained. Images are not removed as duplicates. White elements over colored content are retained; white text may be restricted to the actually colored area. The exact effect depends on the structure of the PDF document.

Compute actual visibility

With COMPUTE_CLIPPING=true, i-net PDFC uses ClippingProcessor.computeClipping. The calculation considers page bounds, PDF clipping paths, occlusion, and the drawing order of extracted elements. Hidden portions of shapes and text are cropped, fully covered elements are removed, compatible shapes are merged, and white content is removed only on a blank background. Images are cropped only when the visible area is rectangular.

This option replaces the standard heuristic with a more precise structural visibility calculation, while still operating on extracted PDF elements rather than rendered pixels.

Mapping to the current profile sidebar

The current UI keys and their raw profile values are:

Sidebar option Structure or UI key Raw profile value
Ignore invisible elements pdfc.filter.invisible_elements_filter FILTERS contains INVISIBLEELEMENTS
Compute actual visibility pdfc.filter.invisible_elements_filter.clipping COMPUTE_CLIPPING

Both options are provided by the current ProfileUIBuilder extension. The second option is visible and enabled only when the first option is active.

Profile fragment

A possible XML profile fragment is:

<entry key="FILTERS">INVISIBLEELEMENTS</entry>
<entry key="COMPUTE_CLIPPING">false</entry>

Set the second value to true for structural visibility calculation.

Limits and performance

The element-based heuristic can suppress intentional white, transparent, duplicate, or very small content. Clipping calculation can considerably increase comparison time and memory use, especially on pages with many overlapping shapes. Complex transparency and irregular image clipping are handled conservatively. Neither variant is a complete rendering or accessibility check.

Group content

The Group content selection determines how PDF content is grouped into structures, paragraphs, and tables for comparison. The GUI documentation for comparison profiles describes the visible selection. The selection key PDF_STRUCTURE_KEY used there is a UI key and is not stored as an independent profile value.

The following values are available:

GUI selection Technical mapping
PDFC Default ORIGINALORDER is not present in FILTERS and USE_PDF_STRUCTURE is false.
Compare original PDF text order ORIGINALORDER is present in FILTERS and USE_PDF_STRUCTURE is false.
Use PDF structure tree USE_PDF_STRUCTURE is true; ORIGINALORDER is not set for this selection.

PDFC Default uses the regular detection of the visual document structure. Compare original PDF text order uses the text order stored in the PDF and can therefore differ from the visible reading order. Use PDF structure tree uses the optional logical structure of the PDF when it is present; without such structure data, the selection has no effect. The detailed explanation and examples are provided in the PDF Parser help.

Stored profile values

Name Description
FILTERS Comma separated list of enabled filters. The value ORIGINALORDER enables the original PDF text order. Other existing filter entries remain unchanged when this selection is saved.
USE_PDF_STRUCTURE Boolean value. true enables the use of the logical PDF structure when the parser supports it and the document contains structure data. The default value is false.

OCR and text recognition

Deactivate CMAP

The GUI option Deactivate CMAP belongs to the combined OCR selection. In the combined sidebar it is shown when OCR text recognition is active with a selected normalization level because the remaining UI condition follows the OCR normalization control after the Recover text with OCR checkbox is removed.

The GUI uses the key pdfc.filter.noCMAP for this option. The technical filter value NOCMAP is stored in FILTERS. The default value is disabled. The CMap programming documentation describes the related technical extension CMAPPATCH and its mapping to the combined OCR selection.

Repair incorrect font mappings

The technical extension CMAPPATCH reconstructs damaged or unusable mappings between PDF character codes and readable text. It processes existing PDF text and uses OCR to determine a new character mapping for affected fonts. This is different from Recognize text in images, which extracts text from image content.

In the web interface, CMAPPATCH is not a separate visible selection. The GUI documentation for OCR-assisted processing describes the combined selection. Depending on the available extensions, the sidebar maps the following modes to technical filter values:

GUI mode Entries in FILTERS
Inactive - faster comparison neither OCR nor CMAPPATCH
Recognize text in images OCR
Repair incorrect font mappings CMAPPATCH
Recognize text and repair font mappings OCR and CMAPPATCH

The Repair incorrect font mappings selection therefore activates the technical filter value CMAPPATCH. The combined selection additionally activates OCR. The modes are offered only when the required OCR and font-mapping extensions are available.

Technical profile property

Name Description
FILTERS Add CMAPPATCH to the comma separated list to enable it. The default value is disabled.

The Deactivate CMAP option adds the technical filter value NOCMAP when needed. It ignores existing CMap mappings for font-mapping repair and is active only with modes that include font-mapping repair.

OCR / Text recognition

OCR-assisted processing

The OCR-assisted processing selection combines the OCR and font-mapping functions of i-net PDFC. Its available modes are determined dynamically from the installed extensions and currently available resources. If a required extension or resource is unavailable, the corresponding mode is not offered; an administrative error can indicate that an extension is unavailable.

The selection provides these modes:

  • Inactive - faster comparison performs no additional OCR or font-mapping processing.
  • Recognize text in images performs text recognition on image content. It does not replace existing PDF text through font-mapping repair.
  • Repair incorrect font mappings reconstructs the mapping between PDF character codes and readable text. This mode processes existing PDF text and does not itself recognize text in images.
  • Recognize text and repair font mappings combines text recognition in images with repair of faulty font mappings.

The Document language option is shown only when OCR-assisted processing is active and more than one matching language resource is available. Tolerance for similar characters is active only in modes that recognize text. It offers No tolerance, Similar characters only, Typical OCR recognition errors, and Recognition errors in distorted text. Deactivate CMAP becomes available when OCR text recognition is active, that is when a normalization level from No tolerance to Recognition errors in distorted text is selected. The combined sidebar removes the separate Recover text with OCR checkbox that previously also revealed this option.

The additional processing can increase runtime. The visible and enabled fields depend on the selected mode and on the available extensions and language resources.

For related information, see Repair incorrect font mappings and Document language.

Repair incorrect font mappings

The Repair incorrect font mappings mode reconstructs damaged or unusable mappings between PDF character codes and readable text. It processes existing PDF text and therefore differs from Recognize text in images, which extracts text from image content. The combined Recognize text and repair font mappings mode performs both processing steps.

The Deactivate CMAP option is available only for a mode that includes font-mapping repair: Repair incorrect font mappings or the combined mode. It ignores existing CMap mappings so that text reconstruction can determine a new mapping. This can help when PDF text looks correct but copies incorrectly. In the combined sidebar, Deactivate CMAP is shown when OCR text recognition is active with a selected normalization level.

Ignoring existing mappings can increase processing time and is not required for clean PDF files. Its actual visibility depends on the available OCR and font-mapping extensions.

For the combined control, see OCR-assisted processing. The technical profile property and its GUI mapping are described on the programming page.

Mapping to the profile sidebar

The profile sidebar combines OCR and font-mapping repair in the OCR-assisted processing selection. The available entries depend on whether the OCR and CMap extensions and their required resources are available. The selection does not create a new combined filter value; it writes the independent values to FILTERS.

Sidebar selection Values in FILTERS NORMALIZATION_LEVEL
Inactive - faster comparison neither OCR nor CMAPPATCH not effective
Recognize text in images OCR, without CMAPPATCH active, values 0 to 3
Repair incorrect font mappings CMAPPATCH, without OCR not effective
Recognize text and repair font mappings OCR and CMAPPATCH active, values 0 to 3

The OCR-assisted processing selection is removed when neither text recognition nor font-mapping repair is available to the sidebar. The independent technical CMap configuration is documented on the CMap plugin programming page.

When OCR-assisted processing is active, the sidebar can offer Document language if more than one matching language resource is available. The available choices depend on the installed analysis and OCR resources; automatic language detection and language-dependent processing are described on the Document language page.

i-net PDFC
Diese Anwendung verwendet Cookies um das Einloggen zu ermöglichen. Durch die weitere Nutzung dieser Anwendung stimmen Sie der Verwendung von Cookies zu.


Hilfe