Configuration

MyScript iink SDK is a flexible toolkit, and its default configuration can be adjusted to meet different needs. This page lists available options, their default values and usage.

On native platforms, you can access the Configuration via your Engine object. Refer to the Interactive Ink runtime page of the guide for more instructions.

Further options are available to customize your styling with css properties. They are inventoried in the styling page.

In the tables below, note how the ${KEY_NAME} syntax allows retrieving the value of another key.

General

KeyTypeDefault valueDescription
configuration-manager.search-pathstring array<empty>List of directories where the configuration files (*.conf) used by the Editor and OffScreenEditor are stored.
langstringen_USDefines the language used in the Editor and OffScreenEditor.
content-package.temp-folderstring<empty>Location for the temporary folder where content packages shall be extracted1. If empty, the folder will be placed alongside the corresponding content package.
convert.convert-on-double-tapbooleantrueIf true, double tap on a block will convert it.
debug.log-filestring<empty>Path to the file where debug logs shall be stored.
export.graphml.flavorstringyedDefines the flavor you want for GraphML export: possible values are standard and yed. The latter is recommended if you want to edit exported GraphML into yEd. The yEd flavor is also more expressive and thus truthful.
export.image-max-sizenumber4096Maximum width and height of exported images.
export.image-resolutionnumber300Resolution of the images that are exported, in dpi.
export.image.guidesbooleanfalseIf true, guides are visible in the exported images.
export.image.viewport.xnumbernoneThe x-coordinate, in pixels, of the viewport origin to be used for the image export.
export.image.viewport.ynumbernoneThe y-coordinate, in pixels, of the viewport origin to be used for the image export.
export.image.viewport.widthnumbernoneThe width, in pixels, of the viewport to be used for the image export.
export.image.viewport.heightnumbernoneThe height, in pixels, of the viewport to be used for the image export.
export.jiix.bounding-boxbooleantrueIf true, JIIX export will contain the bounding boxes of exported items.
export.jiix.strokesbooleantrueIf true, JIIX export will include the detailed ink information.
export.jiix.glyphsbooleantrueIf true, JIIX export will include the converted glyphs.
export.jiix.primitivesbooleantrueIf true, JIIX export will include the converted shape primitives.
export.jiix.stylebooleanfalseIf true, JIIX export will include the style information. Note only dynamic style will be exported, not the editor-level stylesheet.
export.jiix.idsbooleanfalseIf true, JIIX export will include item ids: is useful to get items id, without having all item information: for instance having strokes ids without their full coordinates to avoid an heavy .jiix file.
export.jiix.rangesbooleanfalseIf true, JIIX export will include ink ranges of every object 2: is useful for having strokes ranges without their full coordinates to avoid an heavy .jiix file.
export.jiix.text.charsbooleanfalseIf true, JIIX export will include the detailed characters information.
export.jiix.text.wordsbooleantrueIf true, JIIX export will include the detailed words information.
export.jiix.text.linesbooleanfalseIf true, JIIX export will include the detailed geometric information per line in the text interpretation.
export.jiix.text.spansbooleanfalseIf true, JIIX export will include detailed recognition information per line in the text interpretation 3.
export.jiix.deprecated.text.linebreaksbooleanfalseIf true, JIIX export will include detailed information about the line breaks within a text. Deprecated, you should rather use the export.jiix.text.structure option.
export.jiix.text.structurebooleanfalseIf true, JIIX export will include detailed information about the text layout structure for Text blocks.
export.jiix.shape.candidatesbooleantrueIf true, JIIX export will include shape candidates when using a Shape Recognizer or a Raw Content Recognizer with shape recognition.
export.mathml.flavorstringstandardDefines the flavor you want for MathML export: possible values are standard and ms-office. The latter is recommended if you want to use exported MathML into Microsoft Office suite.
export.temporary-filestring<empty>Path to temporary export file. If not set, temporary file will be created alongside the corresponding content package.
gesture.enablebooleantrueIf true, MyScript iink SDK will attempt to detect gestures while writing.
renderer.debug.draw-image-boxesbooleanfalseIf true, the bounding of the images are visible.
renderer.debug.draw-text-boxesbooleanfalseIf true, the bounding of the words (for text) or characters (for math) are visible.
renderer.prediction.enablebooleanfalseIf true, enables the ink prediction. See rendering. mechanism.
renderer.prediction.durationnumber16When ink prediction is enabled, defines the targeted prediction duration in milliseconds. Default value is 16, max is 200. See rendering.
renderer.sqrt.bar-scalenumber1Adjusts the thickness of the square root bar.
selector.shapestringpolygonDefines the shape of the lasso selector: possible value are polygon and rectangle.
max-recognition-thread-countnumber1A number between 1 and 64. Maximum number of threads used by the Engine for recognition. This tuning might be relevant when processing at one time with an Editor, an OffscreenEditor or a Recognizer a large set of strokes of text, or with a Math Recognizer a large set of strokes. It is advised however, to leave this configuration to 1 if you are doing incremental recognition, as it may have a negative impact on performances and accuracy.

Text

KeyTypeDefault valueDescription
text.configuration.bundlestring${lang}Configuration bundle to be used (name of the *.conf file).
text.configuration.namestringtextConfiguration name, within the bundle (configuration within the *.conf file).
text.eraser.radiusnumber3Radius of the eraser tool in mm.
text.eraser.showbooleanfalseIf true, a halo shows up at eraser position.
text.eraser.erase-preciselybooleanfalseIf false, the eraser removes any character it touches, else it only erases ink portions within its trajectory.
text.eraser.dynamic-radiusbooleanfalseIf false, the eraser is fixed, its value is the radius. If true, the eraser size is dynamic and grows with the speed.
text.margin.leftnumber15Margin from the left of the part to the left of the text bounding box (used for reflow).
text.margin.rightnumber15Margin from the right of the part to the right of the text bounding box (used for reflow).
text.margin.topnumber10Margin from the top of the part to the top of the text bounding box (used for reflow).
text.guides.enablebooleantrueIf true, guides are visible and used for convert and reflow operations. The default line spacing is 10 mm and can be tuned by choosing the .text class font-size and line-height values.
All these text.* parameters only affect the "Text" content type, not "Text Document".

Math

KeyTypeDefault valueDescription
math.configuration.bundlestringmathConfiguration bundle to be used (name of the *.conf file).
math.configuration.namestringstandardConfiguration name, within the bundle (configuration within the *.conf file).
math.convert.animatebooleanfalseIf true, math animation (morphing) is performed when converting math strokes to typeset. The math animation requires the renderer to support offscreen buffers
math.eraser.radiusnumber3Radius of the eraser tool in mm.
math.eraser.showbooleanfalseIf true, a halo shows up at eraser position.
math.eraser.erase-preciselybooleanfalseIf false, the eraser removes any symbol it touches, else it only erases ink portions within its trajectory.
math.eraser.dynamic-radiusbooleanfalseIf false, the eraser is fixed, its value is the radius. If true, the eraser size is dynamic and grows with the speed.
math.margin.bottomnumber10Margin from the bottom of the part to the bottom of the math expression bounding box (used for conversion operations).
math.margin.leftnumber15Margin from the left of the part to the left of the math expression bounding box (used for conversion operations).
math.margin.rightnumber15Margin from the right of the part to the right of the math expression bounding box (used for conversion operations).
math.margin.topnumber10Margin from the top of the part to the top of the math expression bounding box (used for conversion operations).
math.solver.angle-unitstringdegUnit of the angle computation in the solver: It must be either deg (degrees) or rad (radians).
math.solver.decimal-separatorstring.The decimal separator symbol (usually . or ,).
math.solver.enablebooleantrueIf true, solver result is visible upon conversion.
math.solver.fractional-part-digitsnumber3The number of decimals in the solver computation result.
math.solver.number-formatstringdecimalThe way the solver displays the results: decimal (e.g. "2.4"), rational (e.g. "3/2") or mixed (e.g. "1½").
math.solver.optionsstringalgebraicnumeric choice lets the solver modify the structure of the expression to obtain something computable. algebraic one preserves the structure of the input in any case.
math.solver.rounding-modestringhalf-upRounding method used to display solver results: It must be either half-up or truncate.

Diagram

KeyTypeDefault valueDescription
diagram.configuration.analyzer.bundlestringdiagramConfiguration bundle to be used (name of the *.conf file).
diagram.configuration.analyzer.namestringanalyzerConfiguration name, within the bundle (configuration within the *.conf file).
diagram.configuration.shape.bundlestringdiagramConfiguration bundle to be used (name of the *.conf file).
diagram.configuration.shape.namestringshapeConfiguration name, within the bundle (configuration within the *.conf file).
diagram.configuration.text.bundlestring${lang}Configuration bundle to be used (name of the *.conf file).
diagram.configuration.text.namestringtextConfiguration name, within the bundle (configuration within the *.conf file).
diagram.convert.typesstring array[ "text", "shape" ]Defines which types of blocks respond to convert operations. Blocks whose types are not listed here remain unaffected by convert operations. Possible values are text and shape.
diagram.convert.snapbooleantrueIf true, allows to align to nearby items when converting.
diagram.convert.match-text-sizebooleanfalseIf true, enable scaling font so that on convert typeset text size fits handwritten text one.
diagram.convert.text-size-scalenumber1.25When diagram.convert.match-text-size is activated, sets the text scale value. Relevant values are within range 1 to 2. The larger the scale, the less font sizes are used. The closer to 1, the most linear the scale is, thus using more font sizes. If you set a value less than or equal to 1, the default value 1.25 is used.
diagram.enable-sub-blocksbooleantrueIf true, Diagram parts contain accessible sub-blocks that describe the diagram content.
diagram.eraser.radiusnumber3Radius of the eraser tool in mm.
diagram.eraser.showbooleantrueIf true, a halo shows up at eraser position.
diagram.eraser.erase-preciselybooleanfalseIf false, the eraser removes any object (character, shape, line...) it touches, else it only erases ink portions within its trajectory.
diagram.eraser.dynamic-radiusbooleanfalseIf false, the eraser is fixed, its value is the radius. If true, the eraser size is dynamic and grows with the speed.
diagram.import.jiix.actionstringupdatePossible values are update, add and replace. See import for details.
diagram.session-timenumber1000Time interval (in milliseconds) between the last pen up event and subsequent contentChanged() notifications.
diagram.pen.gesturesstring array{ scratch-out, strike-through, insert, join }A string array containing any of the enabled gestures: {scratch-out, underline, insert, join, long-press, strike-through, surround}.
diagram.recognition.feedbackstring array"animation-fill"When shape recognition is enabled, this sets whether shapes should be highlighted temporarily. By default, there is an animation. To disable the animation, set to an empty value.
diagram.selection.lasso-outlinestringas-drawnPossible values are {"as-drawn", "fitted"}. It sets the appearance of the lasso: "as-drawn" keeps the lasso strokes as drawn by users, while "fitted" redraws the lasso outline to fit the lasso content.
diagram.z-order.highlightstringdefaultPossible values are {"default", "main"}. Indicates whether highlighter strokes are set at the back of the ink (default behavior) or remain in the main layer of writing (main behavior) .
diagram.rotationstring array"shape","image"String value among: "shape", "image" listing the items that can be rotated with a handle.

You can also configure interactivity, as described below.

Raw Content

KeyTypeDefault valueDescription
raw-content.configuration.analyzer.bundlestringraw-contentConfiguration bundle to be used for ink analysis (name of the *.conf file). By default, the bundle is the legacy one, working on all platforms. Other possible value is raw-content2 to use to our latest analyzer (not yet available on all platforms, check platforms for more details).
raw-content.configuration.analyzer.namestringtext-blockConfiguration name for ink analysis, within the bundle (configuration within the *.conf file).
raw-content.configuration.shape.bundlestringdiagramConfiguration bundle to be used for shape recognition (name of the *.conf file).
raw-content.configuration.shape.namestringshapeConfiguration name for shape recognition, within the bundle (configuration within the *.conf file).
raw-content.configuration.text.bundlestring${lang}Configuration bundle to be used for text recognition (name of the *.conf file).
raw-content.configuration.text.namestringtextConfiguration name for text recognition, within the bundle (configuration within the *.conf file).
raw-content.configuration.math.bundlestringmathConfiguration bundle to be used for math recognition (name of the *.conf file). By default, the bundle is the legacy one, working on all platforms. Other possible value is math2 to use to our latest math recognition (not yet available on all platforms, check platforms for more details).
raw-content.configuration.math.namestringstandardConfiguration name for math recognition, within the bundle (configuration within the *.conf file).
raw-content.classification.typesstring array["text", "drawing"]Controls the list of content types that can be output by the ink strokes classifier. If content types are removed from this list, the corresponding strokes are output as part of the most likely alternative choice among the remaining content types. Possible values are text, shape, math and drawing. Note that math requires the use of the latest technology with math2 for math bundle, and raw-content2 for analyzer bundle. (see above)
raw-content.recognition.typesstring array<empty>Defines the type of recognition that will be performed on this content and the result that will be available in the JIIX export. Possible values are text, math and shape.
raw-content.convert.typesstring array[ "text", "math", "shape" ]Defines which types of blocks respond to convert operations. Blocks whose types are not listed here remain unaffected by convert operations. Possible values are text, math and shape.
raw-content.convert.shape-on-holdbooleanfalseIf true, Raw content shape conversion will be automatically triggered by holding the pen in position after drawing the shape.
raw-content.convert.snapbooleanfalseIf true, allows to align to nearby items when converting.
raw-content.eraser.radiusnumber3Radius of the eraser tool in mm.
raw-content.eraser.erase-preciselybooleantrueIf false, the eraser removes any object it touches, else it only erases ink portions within its trajectory.
raw-content.eraser.dynamic-radiusbooleanfalseIf false, the eraser is fixed, its value is the radius. If true, the eraser size is dynamic and grows with the speed.
raw-content.eraser.showbooleantrueIf true, a halo shows up at eraser position.
raw-content.guides.showstring array<empty>Describes which alignment guides should be shown. Possible values are alignment, text, square, square-inside, image-aspect-ratio, rotation.
raw-content.guides.snapstring array<empty>Describes which alignment guides should be used for snapping, i.e. there is an attraction to these guides when the shapes are moved. Possible values are alignment, text, square, square-inside, image-aspect-ratio, rotation.
raw-content.highlight-textbooleantrueIf true, allows semantic highlighter on recognized text.
raw-content.import.jiix.actionstringaddPossible values are add and replace. See import for details.
raw-content.line-patternstringnoneSets the line pattern that shall be used for Raw Content parts backgrounds. Possible values are none and grid. By default there is no pattern. Set grid to display a background grid.
raw-content.pen.gesturesstring array<empty>A string array containing any of the enabled gestures: {scratch-out, underline, insert, join, long-press, strike-through, surround}. By default, it is empty, so no gesture is enabled.
raw-content.auto-connectionbooleanfalseIf true, allows auto connection of shapes and connectors
raw-content.edge.policystring array"default-with-drag" for Editor, for OffscreenEditorString value among: "default" or "default-with-drag" defining shape enhancement policy in a Raw Content with Editor. By default it is "default-with-drag" which enables shape enhancement. Setting it is "default", corresponding to a Diagram like behavior. To benefit from this feature, auto connection must be enabled (see raw-content.auto-connection configuration).
raw-content.shape.snap-axisstring array<empty>String value among: "triangle", "rectangle", "rhombus", "parallelogram", "polygon", "ellipse". Indicates the kind of shapes which will snap to X/Y axis when drawn or rotated. To benefit from this feature, auto connection must be enabled (see raw-content.auto-connection configuration)
raw-content.recognition.feedbackstring array<empty>When shape recognition is enabled, this sets whether shapes should be highlighted temporarily. By default, there is no animation. To enable the animation, set to "animation-fill".
raw-content.selection.lasso-outlinestringas-drawnPossible values are {"as-drawn", "fitted"}. It sets the appearance of the lasso: "as-drawn" keeps the lasso strokes as drawn by users, while "fitted" redraws the lasso outline to fit the lasso content.
raw-content.z-order.highlightstringdefaultPossible values are {"default", "main"}. Indicates whether highlighter strokes are set at the back of the ink (default behavior) or remain in the main layer of writing (main behavior) .
raw-content.rotationstring array"shape","image"String value among: "shape", "image" listing the items that can be rotated with a handle. To benefit from this feature on handwritten shapes, shape recognition must be activated (see raw-content.recognition.types) and interactions must be allowed on handwritten content (see raw-content.interactive-items configuration). Note that raw-content.rotation is enabled by default on shape for OffscreenEditor.

You can also configure interactivity, as described below.

Interactivity customization for Raw Content and Diagram

The following keys allow you to choose the interactive blocks, define the interactions upon tap and double tap on these interactive blocks and their visual feedbacks. The keys names are similar for Raw Content and Diagram, with respective raw-content. and diagram. prefixes. Example: raw-content.interactive-blocks.converted and diagram.interactive-blocks.converted.

KeysTypeDefault valueDescription
interactive-blocks.auto-classifiedstring array<empty>Defines which kind of blocks becomes interactive immediately after being classified by the automatic classifier (usually immediately after their creation). Possible values are text, shape, drawing and all.
interactive-blocks.manually-classifiedstring array"all"Defines which kind of blocks becomes interactive immediately after being programmatically classified using the setSelectionType API. Possible values are text, math, shape, drawing and all.
interactive-blocks.convertedstring array"all"Defines which kind of blocks becomes interactive after being converted. Possible values are text, math, shape, drawing and all.
interactive-blocks.select-on-tapbooleanfalseIf true, allows interactive blocks to be selected on tap.
interactive-blocks.unselect-on-tapbooleantrueIf true, allows selected interactive blocks to be unselected when tapped again.
interactive-blocks.convert-on-double-tapbooleantrueIf true, allows interactive blocks to be converted on double-tap.
interactive-blocks.feedbackstring array<empty>Defines for which kind of blocks a dedicated visual feedback is displayed to identify specific interactive blocks, depending on their type. When enabled, the feedback is a distinct border on math and text blocks, and a background-fill on shape blocks. Possible values are text, math and shape.
interactive-blocks.feedback-hintsstring array<empty>Defines for which kind of blocks a dedicated visual feedback hint is displayed. Possible values are text and math. When enabled, the feedback is a "Σ" symbol for math blocks and a "T" letter for text blocks.

Text Document

The configurations described above also apply respectively to “Math”, “Drawing”, “Diagram” and “Raw Content” blocks within a Text Document, with the exception of the following configurations which apply to the entire Text Document:

KeyTypeDefault valueDescription
text-document.convert.statesstring array"digital-edit,"digital-publish"Sets the target states that are available on double tap: Possible values are "digital-edit", "digital-publish" and "handwriting". To allow conversion only to DigitalEdit, set "digital-edit". To allow conversion first to DigitalEdit then to DigitalPublish, set "digital-edit","digital-publish". To prevent conversion on double tap, set "handwriting".
text-document.enable-sub-blocksbooleantrueIf true, Raw Content and Diagram blocks contain accessible sub-blocks that describe the blocks contents.
text-document.eraser.radiusnumber3Radius of the eraser tool in mm.
text-document.eraser.showbooleantrueIf true, a halo shows up at eraser position.
text-document.eraser.erase-preciselybooleanfalseIf false, the eraser removes any object it touches in Text Document blocks, else it only erases ink portions within its trajectory.
text-document.eraser.dynamic-radiusbooleanfalseIf false, the eraser is fixed, its value is the radius. If true, the eraser size is dynamic and grows with the speed.
text-document.slice-gesture.enablebooleantrueSet to false, to disable the slice gesture that allows adding a freeform section as a Raw Content block into a Text Document part.

Offscreen Editor

The following options apply to the Offscreen Editor object.

KeyTypeDefault valueDescription
offscreen-editor.history-manager.enablebooleanfalseIf true, associate a HistoryManager to an OffscreenEditor on creation.

Recognizers

The following options apply to the Recognizer objects.

Common

KeyTypeDefault valueDescription
recognizer.configuration-manager.search-pathstring array<empty>List of directories where the configuration files (*.conf) are stored.
recognizer.result.default-formatstring"application/vnd.myscript.jiix"Defines the format of the result received on IRecognizerListener resultChanged notification. It is one of the Recognizer result supported Mime types.
recognizer.langstringen_USDefines the language for text recognition.

Text Recognizer

KeyTypeDefault valueDescription
recognizer.text.configuration.bundlestring${recognizer.lang}Configuration bundle to be used (name of the *.conf file).
recognizer.text.configuration.namestringtextConfiguration name, within the bundle (configuration within the *.conf file). Possible ready-to-use text configurations are text and text-superimposed. For more details, see resources section.
recognizer.text.guides.enablebooleanfalseIf true, guides are used for recognition operation.
recognizer.text.guides.line-gap-mmnumber0Defines guides spacing in mm in the Text recognizer (ignored if recognizer.text.guides.enable is false).
recognizer.text.guides.origin-y-mmnumber0Defines the y position of the first guide in the Text recognizer (ignored if recognizer.text.guides.enable is false).

Gesture Recognizer

KeyTypeDefault valueDescription
recognizer.gesture.tap.spacing-mmnumber3Defines the distance in mm between two taps to determine double tap.
recognizer.gesture.disabled-gesturesstring array<empty>Defines the gestures to be disabled (all enabled by default). String value among: "tap", "double-tap", "long-press", "top-bottom", "bottom-top", "left-right", "right-left", "scratch", "surround"

Math Recognizer

KeyTypeDefault valueDescription
recognizer.math.configuration.bundlestringmath2Configuration bundle to be used (name of the *.conf file).
recognizer.math.configuration.namestringstandardConfiguration name, within the bundle (configuration within the *.conf file).

Shape Recognizer

KeyTypeDefault valueDescription
recognizer.shape.beautification.enablebooleantrueIf true, enable the beautification of the shape recognition result (selected candidate only)
recognizer.shape.configuration.shape.bundlestringshapeConfiguration bundle to be used for shape recognition (name of the *.conf file).
recognizer.shape.configuration.shape.namestringshapeConfiguration name for shape recognition, within the bundle (configuration within the *.conf file).

Raw Content Recognizer

KeyTypeDefault valueDescription
recognizer.raw-content.classification.typesstring array[ "text", "math", "shape", "decoration", "drawing"]Controls the list of content types that can be output by the ink strokes classifier. If content types are removed from this list, the corresponding strokes are output as part of the most likely alternative choice among the remaining content types.
recognizer.raw-content.recognition.typesstring array[ "text", "math", "shape", "decoration"]Controls the list of content types that are recognized after classification.
recognizer.raw-content.configuration.analyzer.bundlestringraw-content2Configuration bundle to be used for ink analysis (name of the *.conf file).
recognizer.raw-content.configuration.analyzer.namestringstandardConfiguration name for ink analysis, within the bundle (configuration within the *.conf file).
recognizer.raw-content.configuration.shape.bundlestringshapeConfiguration bundle to be used for shape recognition (name of the *.conf file).
recognizer.raw-content.configuration.shape.namestringshapeConfiguration name for shape recognition, within the bundle (configuration within the *.conf file).
recognizer.raw-content.configuration.math.bundlestringmath2Configuration bundle to be used for shape recognition (name of the *.conf file).
recognizer.raw-content.configuration.math.namestringstandardConfiguration name for shape recognition, within the bundle (configuration within the *.conf file).
recognizer.raw-content.configuration.text.bundlestring${recognizer.lang}Configuration bundle to be used for text recognition (name of the *.conf file).
recognizer.raw-content.configuration.text.namestringtextConfiguration name for text recognition, within the bundle (configuration within the *.conf file).
recognizer.raw-content.shape.beautification.enablebooleantrueIf true, enable the beautification of the shape recognition result (selected candidate only)

Footnotes

  1. This setting only affects packages created or opened after the modification. ↩
  2. This setting only affects Recognizer JIIX export: It is ignored by the Editor and the OffscreenEditor objects. ↩
  3. this setting is ignored by Raw Content Recognizer JIIX export, as spans are always present in that case. ↩