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.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.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.
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.fraction-modestringdecimalThe 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 valueDescriptionApplies in Text Document?
diagram.configuration.analyzer.bundlestringdiagramConfiguration bundle to be used (name of the *.conf file).No
diagram.configuration.analyzer.namestringanalyzerConfiguration name, within the bundle (configuration within the *.conf file).No
diagram.configuration.shape.bundlestringdiagramConfiguration bundle to be used (name of the *.conf file).No
diagram.configuration.shape.namestringshapeConfiguration name, within the bundle (configuration within the *.conf file).No
diagram.configuration.text.bundlestring${lang}Configuration bundle to be used (name of the *.conf file).No
diagram.configuration.text.namestringtextConfiguration name, within the bundle (configuration within the *.conf file).No
diagram.convert.edgebooleantrueIf true, Diagram edges will be turned into neat primitives when converting.Yes
diagram.convert.nodebooleantrueIf true, Diagram nodes will be turned into neat shapes when converting.Yes
diagram.convert.textbooleantrueIf true, Diagram text will be turned into typeset when converting.Yes
diagram.convert.snapbooleantrueIf true, allows to align to nearby items when converting.Yes
diagram.convert.match-text-sizebooleanfalseIf true, enable scaling font so that on convert typeset text size fits handwritten text one.Yes
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.Yes
diagram.enable-sub-blocksbooleantrueIf true, Diagram parts contain accessible sub-blocks that describe the diagram content.No
diagram.eraser.radiusnumber3Radius of the eraser tool in mm.No
diagram.eraser.showbooleantrueIf true, a halo shows up at eraser position.No
diagram.eraser.erase-preciselybooleanfalseIf false, the eraser removes any object (character, shape, line...) it touches, else it only erases ink portions within its trajectory.No
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.No
diagram.import.jiix.actionstringupdatePossible values are update, add and replace. See import for details.No
diagram.session-timenumber1000Time interval (in milliseconds) between the last pen up event and subsequent contentChanged() notifications.No
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}.Yes
diagram.tap-item-to-unselectbooleantrueIf true, tapping a selected diagram item will unselect it. If false, the only way to unselect a diagram item is to tap outside of it.No
diagram.recognition.feedbackstringbackground-fillSets how shapes should be filled within a Diagram part or Diagram Block of a Text Document part. By default, background-fill indicates to color the shapes background with the .diagram-fill styling class pen fill color. Other possible values are an empty value for no feedback, and animation-fill to highlight transiently the shapes with the .diagram-anim-fill styling class pen fill color.Yes
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.Yes
diagram.z-order.highlightstringdefaultPossible values are {"defaut", "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) .No
diagram.rotationstring array<empty>Possible string value: "shape" listing the items that can be rotated with a handle in a Diagram. By default, it is empty, so no rotation is enabled.Yes

Drawing

KeyTypeDefault valueDescription
drawing.eraser.radiusnumber3Radius of the eraser tool in mm.
drawing.eraser.showbooleantrueIf true, a halo shows up at eraser position.
drawing.eraser.erase-preciselybooleantrueIf false, the eraser removes any stroke it touches, else it only erases ink portions within its trajectory.
drawing.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

KeyTypeDefault valueDescriptionApplies in Text Document?
raw-content.configuration.analyzer.bundlestringraw-contentConfiguration bundle to be used for ink analysis (name of the *.conf file).No
raw-content.configuration.analyzer.namestringtext-blockConfiguration name for ink analysis, within the bundle (configuration within the *.conf file).No
raw-content.configuration.shape.bundlestringdiagramConfiguration bundle to be used for shape recognition (name of the *.conf file).No
raw-content.configuration.shape.namestringshapeConfiguration name for shape recognition, within the bundle (configuration within the *.conf file).No
raw-content.configuration.text.bundlestring${lang}Configuration bundle to be used for text recognition (name of the *.conf file).No
raw-content.configuration.text.namestringtextConfiguration name for text recognition, within the bundle (configuration within the *.conf file).No
raw-content.recognition.shapebooleanfalseIf true, non-text will be recognized as shapes and the result will be available in the JIIX export.No
raw-content.recognition.textbooleanfalseIf true, text blocks will be recognized and the result will be available in the JIIX export.No
raw-content.convert.edgebooleanfalseIf true, Raw content edges will be turned into neat primitives when converting.Yes
raw-content.convert.nodebooleanfalseIf true, Raw content shapes will be turned into neat shapes when converting.Yes
raw-content.convert.textbooleanfalseIf true, Raw content text will be turned into typeset when converting.Yes
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.Yes
raw-content.convert.snapbooleanfalseIf true, allows to align to nearby items when converting.Yes
raw-content.eraser.radiusnumber3Radius of the eraser tool in mm.No
raw-content.eraser.erase-preciselybooleantrueIf false, the eraser removes any object it touches, else it only erases ink portions within its trajectory.No
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.No
raw-content.eraser.showbooleantrueIf true, a halo shows up at eraser position.No
raw-content.guides.enablebooleanfalseIf true, displays the dynamic alignment guides.Yes
raw-content.guides.snapbooleanfalseIf true, allows to snap to nearby alignment guides.Yes
raw-content.highlight-textbooleantrueIf true, allows semantic highlighter on recognized text.Yes
raw-content.import.jiix.actionstringaddPossible values are add and replace. See import for details.Yes
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.No
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.Yes
raw-content.raw-content.interactive-itemsstringallPossible values are all and converted-or-mixed. If converted-or-mixed allows interactivity only on converted or mixed items (mixed items are items containing both typeset and ink), if all allows interactivity on all items.Yes
raw-content.tap-interactionsbooleanfalseIf true, enables tap to select and move blocks with the HAND tool.Yes
raw-content.auto-connectionbooleanfalseIf true, allows auto connection of shapes and connectorsYes
raw-content.edge.policystring array"default"String value among: "default" or "default-with-drag" defining shape enhancement policy in a Raw Content. By default, it is "default", corresponding to a Diagram like behavior. Setting "default-with-drag" enables shape enhancement. To benefit from this feature, auto connection must be enabled (see raw-content.auto-connection configuration)Yes
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)Yes
raw-content.feedback.typebooleanfalseIf set to true, activates the recognition feebdack via styling. See styling for details. This feedback should be used for debug purpose only.No
raw-content.recognition.feedbackstring<empty>When raw-content.recognition.shape is enabled, sets how shapes should be filled within a Raw Content part. By default, there is no feedback. Other possible values are background-fill to color the shapes background with the .raw-content-fill styling class pen fill color or animation-fill to highlight transiently with the .raw-content-anim-fill styling class pen fill color.No
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.Yes
raw-content.z-order.highlightstringdefaultPossible values are {"defaut", "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) .No
raw-content.rotationstring array<empty>String value among: "shape", "image" listing the items that can be rotated with a handle in a Raw Content. By default, it is empty, so no rotation is enabled. To benefit from this feature on handwritten shapes, shape recognition must be activated (see raw-content.recognition.shape) and interactions must be allowed on handwritten content (see raw-content.interactive-items configuration)Yes

Text Document

The following options apply to "Math", "Drawing", "Diagram" and "Raw Content" blocks within a 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.raw-content.line-patternstringgridSets the line pattern that shall be used for Raw Content blocks backgrounds. Possible values are grid and none. By default there is a background grid. Set a none value if you don't want any pattern.
text-document.raw-content.recognition.shapebooleanfalseIf true, non-text will be recognized as shapes and the result will be available in the JIIX export.
text-document.raw-content.recognition.textbooleantrueIf true, text blocks will be recognized and the result will be available in the JIIX export.
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.

No other configuration options directly apply to a Text Document, except for Diagram and Raw Content blocks. The pre-set values are as follows:

  • The text bundle is ${lang},
  • The text configuration name is text,
  • The diagram shape and analyzer bundle is diagram,
  • The diagram shape configuration name is shape,
  • The diagram analyzer configuration name is analyzer,
  • The math bundle is math,
  • The math configuration bundle is standard.

As these cannot be changed, please make sure that these configuration bundles and items are available if you want to work with this type of 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.

Recognizer

The following options apply to the Recognizer objects.

KeyTypeDefault valueDescription
recognizer.configuration-manager.search-pathstring array<empty>List of directories where the configuration files (*.conf) are stored.
recognizer.langstringen_USDefines the language used by the Text Recognizer.
recognizer.text.configuration.bundlestring${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.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.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).
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"
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).
recognizer.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. ↩