[{"data":1,"prerenderedAt":2532},["ShallowReactive",2],{"navigation":3,"nav-sdk30":498,"docs-sdk-3.0-specific-off-screen-usage":692,"support-index":2463},[4],{"title":5,"path":6,"stem":7,"children":8,"page":40},"Docs","\u002Fdocs","docs",[9,242,320],{"title":10,"path":11,"stem":12,"children":13,"page":40},"Cloud","\u002Fdocs\u002Fcloud","docs\u002Fcloud",[14],{"title":15,"path":16,"stem":17,"children":18,"page":40},"4.5","\u002Fdocs\u002Fcloud\u002F4.5","docs\u002Fcloud\u002F4.5",[19,41,54,79,100,147,172,196,209,234],{"title":20,"path":21,"stem":22,"children":23,"page":40},"Overview","\u002Fdocs\u002Fcloud\u002F4.5\u002Foverview","docs\u002Fcloud\u002F4.5\u002F01.overview",[24,28,32,36],{"title":25,"path":26,"stem":27},"MyScript iink SDK for web-based platform","\u002Fdocs\u002Fcloud\u002F4.5\u002Foverview\u002Fintroduction","docs\u002Fcloud\u002F4.5\u002F01.overview\u002F01.introduction",{"title":29,"path":30,"stem":31},"Choosing between REST or WebSockets","\u002Fdocs\u002Fcloud\u002F4.5\u002Foverview\u002Fhttp-rest-or-websocket","docs\u002Fcloud\u002F4.5\u002F01.overview\u002F02.http-rest-or-websocket",{"title":33,"path":34,"stem":35},"What's new","\u002Fdocs\u002Fcloud\u002F4.5\u002Foverview\u002Fchangelog","docs\u002Fcloud\u002F4.5\u002F01.overview\u002F03.changelog",{"title":37,"path":38,"stem":39},"Migration guide","\u002Fdocs\u002Fcloud\u002F4.5\u002Foverview\u002Fmigration-guide","docs\u002Fcloud\u002F4.5\u002F01.overview\u002F04.migration-guide",false,{"title":42,"path":43,"stem":44,"children":45,"page":40},"Integration","\u002Fdocs\u002Fcloud\u002F4.5\u002Fintegration","docs\u002Fcloud\u002F4.5\u002F02.integration",[46,50],{"title":47,"path":48,"stem":49},"Supported platforms","\u002Fdocs\u002Fcloud\u002F4.5\u002Fintegration\u002Fplatforms","docs\u002Fcloud\u002F4.5\u002F02.integration\u002F01.platforms",{"title":51,"path":52,"stem":53},"Integration levels","\u002Fdocs\u002Fcloud\u002F4.5\u002Fintegration\u002Fintegration-levels","docs\u002Fcloud\u002F4.5\u002F02.integration\u002F02.integration-levels",{"title":55,"path":56,"stem":57,"children":58,"page":40},"Recognition capabilities","\u002Fdocs\u002Fcloud\u002F4.5\u002Frecognition-capabilities","docs\u002Fcloud\u002F4.5\u002F03.recognition-capabilities",[59,63,67,71,75],{"title":60,"path":61,"stem":62},"Recognizers","\u002Fdocs\u002Fcloud\u002F4.5\u002Frecognition-capabilities\u002Frecognizers","docs\u002Fcloud\u002F4.5\u002F03.recognition-capabilities\u002F01.recognizers",{"title":64,"path":65,"stem":66},"Text languages and features","\u002Fdocs\u002Fcloud\u002F4.5\u002Frecognition-capabilities\u002Ftext-languages","docs\u002Fcloud\u002F4.5\u002F03.recognition-capabilities\u002F02.text-languages",{"title":68,"path":69,"stem":70},"Math elements and rules","\u002Fdocs\u002Fcloud\u002F4.5\u002Frecognition-capabilities\u002Fmath-elements-and-rules","docs\u002Fcloud\u002F4.5\u002F03.recognition-capabilities\u002F03.math-elements-and-rules",{"title":72,"path":73,"stem":74},"Shapes and connectors","\u002Fdocs\u002Fcloud\u002F4.5\u002Frecognition-capabilities\u002Fdiagram-features","docs\u002Fcloud\u002F4.5\u002F03.recognition-capabilities\u002F04.diagram-features",{"title":76,"path":77,"stem":78},"Gestures","\u002Fdocs\u002Fcloud\u002F4.5\u002Frecognition-capabilities\u002Fgestures","docs\u002Fcloud\u002F4.5\u002F03.recognition-capabilities\u002F05.gestures",{"title":80,"path":81,"stem":82,"children":83,"page":40},"Interactivity integration","\u002Fdocs\u002Fcloud\u002F4.5\u002Finteractivity-integration","docs\u002Fcloud\u002F4.5\u002F04.interactivity-integration",[84,88,92,96],{"title":85,"path":86,"stem":87},"Content types","\u002Fdocs\u002Fcloud\u002F4.5\u002Finteractivity-integration\u002Fcontent-types","docs\u002Fcloud\u002F4.5\u002F04.interactivity-integration\u002F01.content-types",{"title":89,"path":90,"stem":91},"Interactive features","\u002Fdocs\u002Fcloud\u002F4.5\u002Finteractivity-integration\u002Finteractive-features","docs\u002Fcloud\u002F4.5\u002F04.interactivity-integration\u002F02.interactive-features",{"title":93,"path":94,"stem":95},"Import and export formats","\u002Fdocs\u002Fcloud\u002F4.5\u002Finteractivity-integration\u002Fimport-and-export-formats","docs\u002Fcloud\u002F4.5\u002F04.interactivity-integration\u002F03.import-and-export-formats",{"title":97,"path":98,"stem":99},"Math interactive features","\u002Fdocs\u002Fcloud\u002F4.5\u002Finteractivity-integration\u002Fmath-features","docs\u002Fcloud\u002F4.5\u002F04.interactivity-integration\u002F04.math-features",{"title":101,"path":102,"stem":103,"children":104,"page":40},"iinkTS","\u002Fdocs\u002Fcloud\u002F4.5\u002Fiinkts","docs\u002Fcloud\u002F4.5\u002F05.iinkts",[105,109,113,121,138],{"title":106,"path":107,"stem":108},"Getting started","\u002Fdocs\u002Fcloud\u002F4.5\u002Fiinkts\u002Fget-started","docs\u002Fcloud\u002F4.5\u002F05.iinkts\u002F01.get-started",{"title":110,"path":111,"stem":112},"Canvas","\u002Fdocs\u002Fcloud\u002F4.5\u002Fiinkts\u002Fcanvas","docs\u002Fcloud\u002F4.5\u002F05.iinkts\u002F02.canvas",{"title":114,"path":115,"stem":116,"children":117,"page":40},"Ink Canvas","\u002Fdocs\u002Fcloud\u002F4.5\u002Fiinkts\u002Fink-canvas","docs\u002Fcloud\u002F4.5\u002F05.iinkts\u002F03.ink-canvas",[118],{"title":114,"path":119,"stem":120},"\u002Fdocs\u002Fcloud\u002F4.5\u002Fiinkts\u002Fink-canvas\u002Fink-canvas","docs\u002Fcloud\u002F4.5\u002F05.iinkts\u002F03.ink-canvas\u002F01.ink-canvas",{"title":122,"path":123,"stem":124,"children":125,"page":40},"Interactive Ink Canvas","\u002Fdocs\u002Fcloud\u002F4.5\u002Fiinkts\u002Finteractive-ink-canvas","docs\u002Fcloud\u002F4.5\u002F05.iinkts\u002F04.interactive-ink-canvas",[126,130,134],{"title":127,"path":128,"stem":129},"Interactive ink canvas","\u002Fdocs\u002Fcloud\u002F4.5\u002Fiinkts\u002Finteractive-ink-canvas\u002Finteractive-ink-canvas","docs\u002Fcloud\u002F4.5\u002F05.iinkts\u002F04.interactive-ink-canvas\u002F01.interactive-ink-canvas",{"title":131,"path":132,"stem":133},"Interactive Math","\u002Fdocs\u002Fcloud\u002F4.5\u002Fiinkts\u002Finteractive-ink-canvas\u002Fiicanvas-math","docs\u002Fcloud\u002F4.5\u002F05.iinkts\u002F04.interactive-ink-canvas\u002F02.iicanvas-math",{"title":135,"path":136,"stem":137},"Using a custom rendering","\u002Fdocs\u002Fcloud\u002F4.5\u002Fiinkts\u002Finteractive-ink-canvas\u002Fiicanvas-other-rendering","docs\u002Fcloud\u002F4.5\u002F05.iinkts\u002F04.interactive-ink-canvas\u002F03.iicanvas-other-rendering",{"title":139,"path":140,"stem":141,"children":142,"page":40},"Reference","\u002Fdocs\u002Fcloud\u002F4.5\u002Fiinkts\u002Freference","docs\u002Fcloud\u002F4.5\u002F05.iinkts\u002F05.reference",[143],{"title":144,"path":145,"stem":146},"Configuration","\u002Fdocs\u002Fcloud\u002F4.5\u002Fiinkts\u002Freference\u002Fconfiguration-iinkts","docs\u002Fcloud\u002F4.5\u002F05.iinkts\u002F05.reference\u002F01.configuration-iinkts",{"title":148,"path":149,"stem":150,"children":151,"page":40},"REST","\u002Fdocs\u002Fcloud\u002F4.5\u002Frest","docs\u002Fcloud\u002F4.5\u002F06.rest",[152,156,160,164,168],{"title":153,"path":154,"stem":155},"MyScript iink SDK Web REST Overview","\u002Fdocs\u002Fcloud\u002F4.5\u002Frest\u002Farchitecture","docs\u002Fcloud\u002F4.5\u002F06.rest\u002F01.architecture",{"title":157,"path":158,"stem":159},"MyScript iink SDK Web REST Recognizer API","\u002Fdocs\u002Fcloud\u002F4.5\u002Frest\u002Fnew-api","docs\u002Fcloud\u002F4.5\u002F06.rest\u002F02.new-api",{"title":161,"path":162,"stem":163},"Recognizer configuration","\u002Fdocs\u002Fcloud\u002F4.5\u002Frest\u002Fconfiguration-recognizer-rest","docs\u002Fcloud\u002F4.5\u002F06.rest\u002F03.configuration-recognizer-rest",{"title":165,"path":166,"stem":167},"MyScript iink SDK Web REST Batch API","\u002Fdocs\u002Fcloud\u002F4.5\u002Frest\u002Flegacy-api","docs\u002Fcloud\u002F4.5\u002F06.rest\u002F04.legacy-api",{"title":169,"path":170,"stem":171},"Batch configuration","\u002Fdocs\u002Fcloud\u002F4.5\u002Frest\u002Fconfiguration-rest","docs\u002Fcloud\u002F4.5\u002F06.rest\u002F05.configuration-rest",{"title":173,"path":174,"stem":175,"children":176,"page":40},"WebSockets","\u002Fdocs\u002Fcloud\u002F4.5\u002Fwebsockets","docs\u002Fcloud\u002F4.5\u002F07.websockets",[177,181,185,189,193],{"title":178,"path":179,"stem":180},"MyScript iink SDK WebSockets API architecture","\u002Fdocs\u002Fcloud\u002F4.5\u002Fwebsockets\u002Farchitecture","docs\u002Fcloud\u002F4.5\u002F07.websockets\u002F01.architecture",{"title":182,"path":183,"stem":184},"Offscreen interactivity mode messages","\u002Fdocs\u002Fcloud\u002F4.5\u002Fwebsockets\u002Fmessages-offscreen","docs\u002Fcloud\u002F4.5\u002F07.websockets\u002F02.messages-offscreen",{"title":186,"path":187,"stem":188},"Offscreen interactivity math messages","\u002Fdocs\u002Fcloud\u002F4.5\u002Fwebsockets\u002Fmath-offscreen","docs\u002Fcloud\u002F4.5\u002F07.websockets\u002F03.math-offscreen",{"title":190,"path":191,"stem":192},"Onscreen interactivity mode messages","\u002Fdocs\u002Fcloud\u002F4.5\u002Fwebsockets\u002Fmessages-onscreen","docs\u002Fcloud\u002F4.5\u002F07.websockets\u002F04.messages-onscreen",{"title":144,"path":194,"stem":195},"\u002Fdocs\u002Fcloud\u002F4.5\u002Fwebsockets\u002Fconfiguration-ws","docs\u002Fcloud\u002F4.5\u002F07.websockets\u002F05.configuration-ws",{"title":197,"path":198,"stem":199,"children":200,"page":40},"Specific","\u002Fdocs\u002Fcloud\u002F4.5\u002Fspecific","docs\u002Fcloud\u002F4.5\u002F08.specific",[201,205],{"title":202,"path":203,"stem":204},"Text recognition candidates","\u002Fdocs\u002Fcloud\u002F4.5\u002Fspecific\u002Ftext-recognition-candidates","docs\u002Fcloud\u002F4.5\u002F08.specific\u002F01.text-recognition-candidates",{"title":206,"path":207,"stem":208},"Recognition resources","\u002Fdocs\u002Fcloud\u002F4.5\u002Fspecific\u002Fcustom-recognition","docs\u002Fcloud\u002F4.5\u002F08.specific\u002F02.custom-recognition",{"title":210,"path":211,"stem":212,"children":213,"page":40},"Server","\u002Fdocs\u002Fcloud\u002F4.5\u002Fserver","docs\u002Fcloud\u002F4.5\u002F09.server",[214,218,222,226,230],{"title":215,"path":216,"stem":217},"MyScript Server Installation Preamble and Prerequisites","\u002Fdocs\u002Fcloud\u002F4.5\u002Fserver\u002Fpreamble-prerequisites","docs\u002Fcloud\u002F4.5\u002F09.server\u002F01.preamble-prerequisites",{"title":219,"path":220,"stem":221},"MyScript Server Monoserver Installation Documentation","\u002Fdocs\u002Fcloud\u002F4.5\u002Fserver\u002Fmonoserver-installation","docs\u002Fcloud\u002F4.5\u002F09.server\u002F02.monoserver-installation",{"title":223,"path":224,"stem":225},"MyScript Server Production Installation Documentation","\u002Fdocs\u002Fcloud\u002F4.5\u002Fserver\u002Fproduction-installation","docs\u002Fcloud\u002F4.5\u002F09.server\u002F03.production-installation",{"title":227,"path":228,"stem":229},"MyScript Server Migration Guide","\u002Fdocs\u002Fcloud\u002F4.5\u002Fserver\u002Fserver-migration-guide","docs\u002Fcloud\u002F4.5\u002F09.server\u002F04.server-migration-guide",{"title":231,"path":232,"stem":233},"MyScript Server Administration Guide","\u002Fdocs\u002Fcloud\u002F4.5\u002Fserver\u002Fadministration-guide","docs\u002Fcloud\u002F4.5\u002F09.server\u002F05.administration-guide",{"title":139,"path":235,"stem":236,"children":237,"page":40},"\u002Fdocs\u002Fcloud\u002F4.5\u002Freference","docs\u002Fcloud\u002F4.5\u002F10.reference",[238],{"title":239,"path":240,"stem":241},"JIIX format reference","\u002Fdocs\u002Fcloud\u002F4.5\u002Freference\u002Fjiix","docs\u002Fcloud\u002F4.5\u002F10.reference\u002F01.jiix",{"title":243,"path":244,"stem":245,"children":246,"page":40},"Concepts","\u002Fdocs\u002Fconcepts","docs\u002Fconcepts",[247,250,254],{"title":20,"path":248,"stem":249},"\u002Fdocs\u002Fconcepts\u002Foverview","docs\u002Fconcepts\u002F01.overview",{"title":251,"path":252,"stem":253},"Glossary","\u002Fdocs\u002Fconcepts\u002Fglossary","docs\u002Fconcepts\u002F02.glossary",{"title":255,"path":256,"stem":257,"children":258,"page":40},"Fundamentals","\u002Fdocs\u002Fconcepts\u002Ffundamentals","docs\u002Fconcepts\u002F03.fundamentals",[259,263,292,312],{"title":260,"path":261,"stem":262},"OCR vs digital ink recognition","\u002Fdocs\u002Fconcepts\u002Ffundamentals\u002Fdigital-ink-vs-ocr","docs\u002Fconcepts\u002F03.fundamentals\u002F01.digital-ink-vs-ocr",{"title":264,"path":265,"stem":266,"children":267,"page":40},"Ink interpretation","\u002Fdocs\u002Fconcepts\u002Ffundamentals\u002Fink-interpretation","docs\u002Fconcepts\u002F03.fundamentals\u002F02.ink-interpretation",[268,272,276,280,284,288],{"title":269,"path":270,"stem":271},"Ink processing","\u002Fdocs\u002Fconcepts\u002Ffundamentals\u002Fink-interpretation\u002Fink-interpretation","docs\u002Fconcepts\u002F03.fundamentals\u002F02.ink-interpretation\u002F01.ink-interpretation",{"title":273,"path":274,"stem":275},"Recognition features","\u002Fdocs\u002Fconcepts\u002Ffundamentals\u002Fink-interpretation\u002Fcontent-types","docs\u002Fconcepts\u002F03.fundamentals\u002F02.ink-interpretation\u002F02.content-types",{"title":277,"path":278,"stem":279},"Ink classification","\u002Fdocs\u002Fconcepts\u002Ffundamentals\u002Fink-interpretation\u002Fink-classification","docs\u002Fconcepts\u002F03.fundamentals\u002F02.ink-interpretation\u002F03.ink-classification",{"title":281,"path":282,"stem":283},"What are batch mode and incremental mode?","\u002Fdocs\u002Fconcepts\u002Ffundamentals\u002Fink-interpretation\u002Fbatch-mode","docs\u002Fconcepts\u002F03.fundamentals\u002F02.ink-interpretation\u002F04.batch-mode",{"title":285,"path":286,"stem":287},"Gestures and context","\u002Fdocs\u002Fconcepts\u002Ffundamentals\u002Fink-interpretation\u002Fcontext-gestures","docs\u002Fconcepts\u002F03.fundamentals\u002F02.ink-interpretation\u002F05.context-gestures",{"title":289,"path":290,"stem":291},"What is interactivity","\u002Fdocs\u002Fconcepts\u002Ffundamentals\u002Fink-interpretation\u002Finteractive-ink","docs\u002Fconcepts\u002F03.fundamentals\u002F02.ink-interpretation\u002F06.interactive-ink",{"title":293,"path":294,"stem":295,"children":296,"page":40},"Rendering-driven interactivity","\u002Fdocs\u002Fconcepts\u002Ffundamentals\u002Frendering-driven-interactivity","docs\u002Fconcepts\u002F03.fundamentals\u002F03.rendering-driven-interactivity",[297,301,304,308],{"title":298,"path":299,"stem":300},"Ink capture","\u002Fdocs\u002Fconcepts\u002Ffundamentals\u002Frendering-driven-interactivity\u002Fink-capture","docs\u002Fconcepts\u002F03.fundamentals\u002F03.rendering-driven-interactivity\u002F01.ink-capture",{"title":76,"path":302,"stem":303},"\u002Fdocs\u002Fconcepts\u002Ffundamentals\u002Frendering-driven-interactivity\u002Fediting-gestures","docs\u002Fconcepts\u002F03.fundamentals\u002F03.rendering-driven-interactivity\u002F02.editing-gestures",{"title":305,"path":306,"stem":307},"Smart tools","\u002Fdocs\u002Fconcepts\u002Ffundamentals\u002Frendering-driven-interactivity\u002Fsmart-tools","docs\u002Fconcepts\u002F03.fundamentals\u002F03.rendering-driven-interactivity\u002F03.smart-tools",{"title":309,"path":310,"stem":311},"Responsive and productive","\u002Fdocs\u002Fconcepts\u002Ffundamentals\u002Frendering-driven-interactivity\u002Fresponsive-layout","docs\u002Fconcepts\u002F03.fundamentals\u002F03.rendering-driven-interactivity\u002F04.responsive-layout",{"title":313,"path":314,"stem":315,"children":316,"page":40},"Handwriting generation","\u002Fdocs\u002Fconcepts\u002Ffundamentals\u002Fhandwriting-generation","docs\u002Fconcepts\u002F03.fundamentals\u002F04.handwriting-generation",[317],{"title":313,"path":318,"stem":319},"\u002Fdocs\u002Fconcepts\u002Ffundamentals\u002Fhandwriting-generation\u002Fhandwriting-generation","docs\u002Fconcepts\u002F03.fundamentals\u002F04.handwriting-generation\u002F01.handwriting-generation",{"title":321,"path":322,"stem":323,"children":324,"page":40},"Sdk","\u002Fdocs\u002Fsdk","docs\u002Fsdk",[325],{"title":15,"path":326,"stem":327,"children":328,"page":40},"\u002Fdocs\u002Fsdk\u002F4.5","docs\u002Fsdk\u002F4.5",[329,333,336,339,349,368,381,393,401,417,426,463,467,470,474,477,484],{"title":330,"path":331,"stem":332},"About MyScript iink SDK","\u002Fdocs\u002Fsdk\u002F4.5\u002Fabout","docs\u002Fsdk\u002F4.5\u002F01.about",{"title":33,"path":334,"stem":335},"\u002Fdocs\u002Fsdk\u002F4.5\u002Fchangelog","docs\u002Fsdk\u002F4.5\u002F02.changelog",{"title":37,"path":337,"stem":338},"\u002Fdocs\u002Fsdk\u002F4.5\u002Fmigration-guide","docs\u002Fsdk\u002F4.5\u002F03.migration-guide",{"title":42,"path":340,"stem":341,"children":342,"page":40},"\u002Fdocs\u002Fsdk\u002F4.5\u002Fintegration","docs\u002Fsdk\u002F4.5\u002F04.integration",[343,346],{"title":47,"path":344,"stem":345},"\u002Fdocs\u002Fsdk\u002F4.5\u002Fintegration\u002Fplatforms","docs\u002Fsdk\u002F4.5\u002F04.integration\u002F01.platforms",{"title":51,"path":347,"stem":348},"\u002Fdocs\u002Fsdk\u002F4.5\u002Fintegration\u002Fintegration-levels","docs\u002Fsdk\u002F4.5\u002F04.integration\u002F02.integration-levels",{"title":55,"path":350,"stem":351,"children":352,"page":40},"\u002Fdocs\u002Fsdk\u002F4.5\u002Frecognition-capabilities","docs\u002Fsdk\u002F4.5\u002F05.recognition-capabilities",[353,356,359,362,365],{"title":60,"path":354,"stem":355},"\u002Fdocs\u002Fsdk\u002F4.5\u002Frecognition-capabilities\u002Frecognizers","docs\u002Fsdk\u002F4.5\u002F05.recognition-capabilities\u002F01.recognizers",{"title":64,"path":357,"stem":358},"\u002Fdocs\u002Fsdk\u002F4.5\u002Frecognition-capabilities\u002Ftext-languages","docs\u002Fsdk\u002F4.5\u002F05.recognition-capabilities\u002F02.text-languages",{"title":68,"path":360,"stem":361},"\u002Fdocs\u002Fsdk\u002F4.5\u002Frecognition-capabilities\u002Fmath-elements-and-rules","docs\u002Fsdk\u002F4.5\u002F05.recognition-capabilities\u002F03.math-elements-and-rules",{"title":72,"path":363,"stem":364},"\u002Fdocs\u002Fsdk\u002F4.5\u002Frecognition-capabilities\u002Fdiagram-features","docs\u002Fsdk\u002F4.5\u002F05.recognition-capabilities\u002F04.diagram-features",{"title":76,"path":366,"stem":367},"\u002Fdocs\u002Fsdk\u002F4.5\u002Frecognition-capabilities\u002Fgestures","docs\u002Fsdk\u002F4.5\u002F05.recognition-capabilities\u002F05.gestures",{"title":80,"path":369,"stem":370,"children":371,"page":40},"\u002Fdocs\u002Fsdk\u002F4.5\u002Finteractivity-integration","docs\u002Fsdk\u002F4.5\u002F06.interactivity-integration",[372,375,378],{"title":85,"path":373,"stem":374},"\u002Fdocs\u002Fsdk\u002F4.5\u002Finteractivity-integration\u002Fcontent-types","docs\u002Fsdk\u002F4.5\u002F06.interactivity-integration\u002F01.content-types",{"title":89,"path":376,"stem":377},"\u002Fdocs\u002Fsdk\u002F4.5\u002Finteractivity-integration\u002Finteractive-features","docs\u002Fsdk\u002F4.5\u002F06.interactivity-integration\u002F02.interactive-features",{"title":93,"path":379,"stem":380},"\u002Fdocs\u002Fsdk\u002F4.5\u002Finteractivity-integration\u002Fimport-and-export-formats","docs\u002Fsdk\u002F4.5\u002F06.interactivity-integration\u002F03.import-and-export-formats",{"title":106,"path":382,"stem":383,"children":384,"page":40},"\u002Fdocs\u002Fsdk\u002F4.5\u002Fgetting-started","docs\u002Fsdk\u002F4.5\u002F07.getting-started",[385,389],{"title":386,"path":387,"stem":388},"Setup","\u002Fdocs\u002Fsdk\u002F4.5\u002Fgetting-started\u002Fsetup","docs\u002Fsdk\u002F4.5\u002F07.getting-started\u002F01.setup",{"title":390,"path":391,"stem":392},"Instantiate Engine","\u002Fdocs\u002Fsdk\u002F4.5\u002Fgetting-started\u002Finteractive-ink-runtime","docs\u002Fsdk\u002F4.5\u002F07.getting-started\u002F02.interactive-ink-runtime",{"title":394,"path":395,"stem":396,"children":397,"page":40},"Recognizer","\u002Fdocs\u002Fsdk\u002F4.5\u002Frecognizer","docs\u002Fsdk\u002F4.5\u002F08.recognizer",[398],{"title":60,"path":399,"stem":400},"\u002Fdocs\u002Fsdk\u002F4.5\u002Frecognizer\u002Frecognizers","docs\u002Fsdk\u002F4.5\u002F08.recognizer\u002F01.recognizers",{"title":402,"path":403,"stem":404,"children":405,"page":40},"Interactivity specific","\u002Fdocs\u002Fsdk\u002F4.5\u002Finteractivity","docs\u002Fsdk\u002F4.5\u002F09.interactivity",[406,410,413],{"title":407,"path":408,"stem":409},"Storage","\u002Fdocs\u002Fsdk\u002F4.5\u002Finteractivity\u002Fstorage","docs\u002Fsdk\u002F4.5\u002F09.interactivity\u002F01.storage",{"title":97,"path":411,"stem":412},"\u002Fdocs\u002Fsdk\u002F4.5\u002Finteractivity\u002Fmath-features","docs\u002Fsdk\u002F4.5\u002F09.interactivity\u002F02.math-features",{"title":414,"path":415,"stem":416},"Integrate with the undo\u002Fredo stack of your application","\u002Fdocs\u002Fsdk\u002F4.5\u002Finteractivity\u002Fcombined-undo-redo-stacks","docs\u002Fsdk\u002F4.5\u002F09.interactivity\u002F03.combined-undo-redo-stacks",{"title":418,"path":419,"stem":420,"children":421,"page":40},"OffScreenEditor specific","\u002Fdocs\u002Fsdk\u002F4.5\u002Foffscreen-editor","docs\u002Fsdk\u002F4.5\u002F10.offscreen-editor",[422],{"title":423,"path":424,"stem":425},"OffscreenEditor","\u002Fdocs\u002Fsdk\u002F4.5\u002Foffscreen-editor\u002Foff-screen-usage","docs\u002Fsdk\u002F4.5\u002F10.offscreen-editor\u002F01.off-screen-usage",{"title":427,"path":428,"stem":429,"children":430,"page":40},"Editor specific","\u002Fdocs\u002Fsdk\u002F4.5\u002Feditor","docs\u002Fsdk\u002F4.5\u002F11.editor",[431,435,439,443,447,451,455,459],{"title":432,"path":433,"stem":434},"Rendering","\u002Fdocs\u002Fsdk\u002F4.5\u002Feditor\u002Frendering","docs\u002Fsdk\u002F4.5\u002F11.editor\u002F01.rendering",{"title":436,"path":437,"stem":438},"Editing","\u002Fdocs\u002Fsdk\u002F4.5\u002Feditor\u002Fediting","docs\u002Fsdk\u002F4.5\u002F11.editor\u002F02.editing",{"title":440,"path":441,"stem":442},"Tool controller","\u002Fdocs\u002Fsdk\u002F4.5\u002Feditor\u002Ftool-controller","docs\u002Fsdk\u002F4.5\u002F11.editor\u002F03.tool-controller",{"title":444,"path":445,"stem":446},"Selection and block","\u002Fdocs\u002Fsdk\u002F4.5\u002Feditor\u002Fblock-selection-management","docs\u002Fsdk\u002F4.5\u002F11.editor\u002F04.block-selection-management",{"title":448,"path":449,"stem":450},"Conversion","\u002Fdocs\u002Fsdk\u002F4.5\u002Feditor\u002Fconversion","docs\u002Fsdk\u002F4.5\u002F11.editor\u002F05.conversion",{"title":452,"path":453,"stem":454},"Zooming and scrolling","\u002Fdocs\u002Fsdk\u002F4.5\u002Feditor\u002Fzooming-and-scrolling","docs\u002Fsdk\u002F4.5\u002F11.editor\u002F06.zooming-and-scrolling",{"title":456,"path":457,"stem":458},"Styling","\u002Fdocs\u002Fsdk\u002F4.5\u002Feditor\u002Fstyling","docs\u002Fsdk\u002F4.5\u002F11.editor\u002F07.styling",{"title":460,"path":461,"stem":462},"Custom inking","\u002Fdocs\u002Fsdk\u002F4.5\u002Feditor\u002Fcustom-inking","docs\u002Fsdk\u002F4.5\u002F11.editor\u002F08.custom-inking",{"title":464,"path":465,"stem":466},"Result, import and export","\u002Fdocs\u002Fsdk\u002F4.5\u002Fimport-and-export","docs\u002Fsdk\u002F4.5\u002F12.import-and-export",{"title":202,"path":468,"stem":469},"\u002Fdocs\u002Fsdk\u002F4.5\u002Ftext-recognition-candidates","docs\u002Fsdk\u002F4.5\u002F13.text-recognition-candidates",{"title":471,"path":472,"stem":473},"Error management","\u002Fdocs\u002Fsdk\u002F4.5\u002Ferror-management","docs\u002Fsdk\u002F4.5\u002F14.error-management",{"title":206,"path":475,"stem":476},"\u002Fdocs\u002Fsdk\u002F4.5\u002Fcustom-recognition","docs\u002Fsdk\u002F4.5\u002F15.custom-recognition",{"title":313,"path":478,"stem":479,"children":480,"page":40},"\u002Fdocs\u002Fsdk\u002F4.5\u002Fhandwriting-generation","docs\u002Fsdk\u002F4.5\u002F16.handwriting-generation",[481],{"title":313,"path":482,"stem":483},"\u002Fdocs\u002Fsdk\u002F4.5\u002Fhandwriting-generation\u002Fhandwriting-generation","docs\u002Fsdk\u002F4.5\u002F16.handwriting-generation\u002F01.handwriting-generation",{"title":139,"path":485,"stem":486,"children":487,"page":40},"\u002Fdocs\u002Fsdk\u002F4.5\u002Freference","docs\u002Fsdk\u002F4.5\u002F17.reference",[488,491,494],{"title":144,"path":489,"stem":490},"\u002Fdocs\u002Fsdk\u002F4.5\u002Freference\u002Fconfiguration","docs\u002Fsdk\u002F4.5\u002F17.reference\u002F01.configuration",{"title":239,"path":492,"stem":493},"\u002Fdocs\u002Fsdk\u002F4.5\u002Freference\u002Fjiix","docs\u002Fsdk\u002F4.5\u002F17.reference\u002F02.jiix",{"title":495,"path":496,"stem":497},"Styling reference","\u002Fdocs\u002Fsdk\u002F4.5\u002Freference\u002Fstyling","docs\u002Fsdk\u002F4.5\u002F17.reference\u002F03.styling",[499],{"title":5,"path":6,"stem":7,"children":500,"page":40},[501],{"title":321,"path":322,"stem":323,"children":502,"page":40},[503],{"title":504,"navTitle":505,"icon":505,"path":506,"stem":507,"children":508,"page":40},"3",null,"\u002Fdocs\u002Fsdk\u002F3.0","docs\u002Fsdk\u002F3.0",[509,514,519,523,536,560,581,638,676],{"title":330,"path":510,"stem":511,"navTitle":512,"icon":513},"\u002Fdocs\u002Fsdk\u002F3.0\u002Fabout","docs\u002Fsdk\u002F3.0\u002F01.about","About","i-tabler-info-circle",{"title":515,"path":516,"stem":517,"navTitle":33,"icon":518},"New in 3.0","\u002Fdocs\u002Fsdk\u002F3.0\u002Fchangelog","docs\u002Fsdk\u002F3.0\u002F02.changelog","i-tabler-bell-ringing",{"title":37,"path":520,"stem":521,"navTitle":37,"icon":522},"\u002Fdocs\u002Fsdk\u002F3.0\u002Fmigration-guide","docs\u002Fsdk\u002F3.0\u002F03.migration-guide","i-tabler-gps",{"title":42,"navTitle":505,"icon":505,"path":524,"stem":525,"children":526,"page":40},"\u002Fdocs\u002Fsdk\u002F3.0\u002Fintegration","docs\u002Fsdk\u002F3.0\u002F04.integration",[527,532],{"title":47,"path":528,"stem":529,"navTitle":530,"icon":531},"\u002Fdocs\u002Fsdk\u002F3.0\u002Fintegration\u002Fplatforms","docs\u002Fsdk\u002F3.0\u002F04.integration\u002F01.platforms","Platforms","i-tabler-device-laptop",{"title":51,"path":533,"stem":534,"navTitle":51,"icon":535},"\u002Fdocs\u002Fsdk\u002F3.0\u002Fintegration\u002Fintegration-levels","docs\u002Fsdk\u002F3.0\u002F04.integration\u002F02.integration-levels","i-tabler-stack-2",{"title":55,"navTitle":505,"icon":505,"path":537,"stem":538,"children":539,"page":40},"\u002Fdocs\u002Fsdk\u002F3.0\u002Frecognition-capabilities","docs\u002Fsdk\u002F3.0\u002F05.recognition-capabilities",[540,544,548,552,556],{"title":60,"path":541,"stem":542,"navTitle":505,"icon":543},"\u002Fdocs\u002Fsdk\u002F3.0\u002Frecognition-capabilities\u002Frecognizers","docs\u002Fsdk\u002F3.0\u002F05.recognition-capabilities\u002F01.recognizers","i-tabler-text-scan-2",{"title":64,"path":545,"stem":546,"navTitle":64,"icon":547},"\u002Fdocs\u002Fsdk\u002F3.0\u002Frecognition-capabilities\u002Ftext-languages","docs\u002Fsdk\u002F3.0\u002F05.recognition-capabilities\u002F02.text-languages","i-tabler-language",{"title":68,"path":549,"stem":550,"navTitle":68,"icon":551},"\u002Fdocs\u002Fsdk\u002F3.0\u002Frecognition-capabilities\u002Fmath-elements-and-rules","docs\u002Fsdk\u002F3.0\u002F05.recognition-capabilities\u002F03.math-elements-and-rules","i-tabler-math",{"title":72,"path":553,"stem":554,"navTitle":72,"icon":555},"\u002Fdocs\u002Fsdk\u002F3.0\u002Frecognition-capabilities\u002Fdiagram-features","docs\u002Fsdk\u002F3.0\u002F05.recognition-capabilities\u002F04.diagram-features","i-tabler-circle-square",{"title":76,"path":557,"stem":558,"navTitle":505,"icon":559},"\u002Fdocs\u002Fsdk\u002F3.0\u002Frecognition-capabilities\u002Fgestures","docs\u002Fsdk\u002F3.0\u002F05.recognition-capabilities\u002F05.gestures","i-tabler-hand-finger",{"title":80,"navTitle":505,"icon":505,"path":561,"stem":562,"children":563,"page":40},"\u002Fdocs\u002Fsdk\u002F3.0\u002Finteractivity-integration","docs\u002Fsdk\u002F3.0\u002F06.interactivity-integration",[564,568,572,577],{"title":85,"path":565,"stem":566,"navTitle":85,"icon":567},"\u002Fdocs\u002Fsdk\u002F3.0\u002Finteractivity-integration\u002Fcontent-types","docs\u002Fsdk\u002F3.0\u002F06.interactivity-integration\u002F01.content-types","i-tabler-eye",{"title":89,"path":569,"stem":570,"navTitle":89,"icon":571},"\u002Fdocs\u002Fsdk\u002F3.0\u002Finteractivity-integration\u002Finteractive-features","docs\u002Fsdk\u002F3.0\u002F06.interactivity-integration\u002F02.interactive-features","i-tabler-bolt",{"title":93,"path":573,"stem":574,"navTitle":575,"icon":576},"\u002Fdocs\u002Fsdk\u002F3.0\u002Finteractivity-integration\u002Fimport-and-export-formats","docs\u002Fsdk\u002F3.0\u002F06.interactivity-integration\u002F03.import-and-export-formats","Import and export","i-tabler-arrows-left-right",{"title":97,"path":578,"stem":579,"navTitle":97,"icon":580},"\u002Fdocs\u002Fsdk\u002F3.0\u002Finteractivity-integration\u002Fmath-features","docs\u002Fsdk\u002F3.0\u002F06.interactivity-integration\u002F04.math-features","i-tabler-calculator",{"title":255,"navTitle":505,"icon":505,"path":582,"stem":583,"children":584,"page":40},"\u002Fdocs\u002Fsdk\u002F3.0\u002Ffundamentals","docs\u002Fsdk\u002F3.0\u002F07.fundamentals",[585,598,602,606,610,614,619,623,626,630,634],{"title":586,"navTitle":505,"icon":505,"path":587,"stem":588,"children":589,"page":40},"Getting Started","\u002Fdocs\u002Fsdk\u002F3.0\u002Ffundamentals\u002Fgetting-started","docs\u002Fsdk\u002F3.0\u002F07.fundamentals\u002F01.getting-started",[590,594],{"title":386,"path":591,"stem":592,"navTitle":505,"icon":593},"\u002Fdocs\u002Fsdk\u002F3.0\u002Ffundamentals\u002Fgetting-started\u002Fsetup","docs\u002Fsdk\u002F3.0\u002F07.fundamentals\u002F01.getting-started\u002F01.setup","i-tabler-direction-sign",{"title":595,"path":596,"stem":597,"navTitle":505,"icon":593},"Interactive Ink runtime","\u002Fdocs\u002Fsdk\u002F3.0\u002Ffundamentals\u002Fgetting-started\u002Finteractive-ink-runtime","docs\u002Fsdk\u002F3.0\u002F07.fundamentals\u002F01.getting-started\u002F02.interactive-ink-runtime",{"title":407,"path":599,"stem":600,"navTitle":505,"icon":601},"\u002Fdocs\u002Fsdk\u002F3.0\u002Ffundamentals\u002Fstorage","docs\u002Fsdk\u002F3.0\u002F07.fundamentals\u002F02.storage","i-tabler-file-database",{"title":432,"path":603,"stem":604,"navTitle":505,"icon":605},"\u002Fdocs\u002Fsdk\u002F3.0\u002Ffundamentals\u002Frendering","docs\u002Fsdk\u002F3.0\u002F07.fundamentals\u002F03.rendering","i-tabler-app-window",{"title":440,"path":607,"stem":608,"navTitle":505,"icon":609},"\u002Fdocs\u002Fsdk\u002F3.0\u002Ffundamentals\u002Ftool-controller","docs\u002Fsdk\u002F3.0\u002F07.fundamentals\u002F04.tool-controller","i-tabler-adjustments",{"title":436,"path":611,"stem":612,"navTitle":505,"icon":613},"\u002Fdocs\u002Fsdk\u002F3.0\u002Ffundamentals\u002Fediting","docs\u002Fsdk\u002F3.0\u002F07.fundamentals\u002F05.editing","i-tabler-edit",{"title":615,"path":616,"stem":617,"navTitle":505,"icon":618},"Selection and block management","\u002Fdocs\u002Fsdk\u002F3.0\u002Ffundamentals\u002Fblock-selection-management","docs\u002Fsdk\u002F3.0\u002F07.fundamentals\u002F06.block-selection-management","i-tabler-pointer",{"title":448,"path":620,"stem":621,"navTitle":505,"icon":622},"\u002Fdocs\u002Fsdk\u002F3.0\u002Ffundamentals\u002Fconversion","docs\u002Fsdk\u002F3.0\u002F07.fundamentals\u002F07.conversion","i-tabler-sparkles",{"title":575,"path":624,"stem":625,"navTitle":505,"icon":576},"\u002Fdocs\u002Fsdk\u002F3.0\u002Ffundamentals\u002Fimport-and-export","docs\u002Fsdk\u002F3.0\u002F07.fundamentals\u002F08.import-and-export",{"title":452,"path":627,"stem":628,"navTitle":505,"icon":629},"\u002Fdocs\u002Fsdk\u002F3.0\u002Ffundamentals\u002Fzooming-and-scrolling","docs\u002Fsdk\u002F3.0\u002F07.fundamentals\u002F09.zooming-and-scrolling","i-tabler-zoom-pan",{"title":456,"path":631,"stem":632,"navTitle":505,"icon":633},"\u002Fdocs\u002Fsdk\u002F3.0\u002Ffundamentals\u002Fstyling","docs\u002Fsdk\u002F3.0\u002F07.fundamentals\u002F10.styling","i-tabler-palette",{"title":471,"path":635,"stem":636,"navTitle":505,"icon":637},"\u002Fdocs\u002Fsdk\u002F3.0\u002Ffundamentals\u002Ferror-management","docs\u002Fsdk\u002F3.0\u002F07.fundamentals\u002F11.error-management","i-tabler-bug",{"title":197,"navTitle":505,"icon":505,"path":639,"stem":640,"children":641,"page":40},"\u002Fdocs\u002Fsdk\u002F3.0\u002Fspecific","docs\u002Fsdk\u002F3.0\u002F08.specific",[642,646,651,655,659,663,668,673],{"title":202,"path":643,"stem":644,"navTitle":505,"icon":645},"\u002Fdocs\u002Fsdk\u002F3.0\u002Fspecific\u002Ftext-recognition-candidates","docs\u002Fsdk\u002F3.0\u002F08.specific\u002F01.text-recognition-candidates","i-tabler-tags",{"title":647,"path":648,"stem":649,"navTitle":505,"icon":650},"Off-screen usage","\u002Fdocs\u002Fsdk\u002F3.0\u002Fspecific\u002Foff-screen-usage","docs\u002Fsdk\u002F3.0\u002F08.specific\u002F02.off-screen-usage","i-tabler-stack-backward",{"title":652,"path":653,"stem":654,"navTitle":505,"icon":547},"Languages restricted to non-interactive mode","\u002Fdocs\u002Fsdk\u002F3.0\u002Fspecific\u002Fnon-interactive-languages","docs\u002Fsdk\u002F3.0\u002F08.specific\u002F03.non-interactive-languages",{"title":460,"path":656,"stem":657,"navTitle":505,"icon":658},"\u002Fdocs\u002Fsdk\u002F3.0\u002Fspecific\u002Fcustom-inking","docs\u002Fsdk\u002F3.0\u002F08.specific\u002F04.custom-inking","i-tabler-brush",{"title":206,"path":660,"stem":661,"navTitle":505,"icon":662},"\u002Fdocs\u002Fsdk\u002F3.0\u002Fspecific\u002Fcustom-recognition","docs\u002Fsdk\u002F3.0\u002F08.specific\u002F05.custom-recognition","i-tabler-file-code",{"title":414,"path":664,"stem":665,"navTitle":666,"icon":667},"\u002Fdocs\u002Fsdk\u002F3.0\u002Fspecific\u002Fcombined-undo-redo-stacks","docs\u002Fsdk\u002F3.0\u002F08.specific\u002F06.combined-undo-redo-stacks","Combined undo\u002Fredo stacks","i-tabler-arrow-back-up",{"title":669,"path":670,"stem":671,"navTitle":505,"icon":672},"Interactive White Board","\u002Fdocs\u002Fsdk\u002F3.0\u002Fspecific\u002Finteractive-white-board","docs\u002Fsdk\u002F3.0\u002F08.specific\u002F07.interactive-white-board","i-tabler-presentation",{"title":60,"path":674,"stem":675,"navTitle":505,"icon":543},"\u002Fdocs\u002Fsdk\u002F3.0\u002Fspecific\u002Frecognizers","docs\u002Fsdk\u002F3.0\u002F08.specific\u002F08.recognizers",{"title":139,"navTitle":505,"icon":505,"path":677,"stem":678,"children":679,"page":40},"\u002Fdocs\u002Fsdk\u002F3.0\u002Freference","docs\u002Fsdk\u002F3.0\u002F09.reference",[680,684,689],{"title":144,"path":681,"stem":682,"navTitle":505,"icon":683},"\u002Fdocs\u002Fsdk\u002F3.0\u002Freference\u002Fconfiguration","docs\u002Fsdk\u002F3.0\u002F09.reference\u002F01.configuration","i-tabler-settings",{"title":239,"path":685,"stem":686,"navTitle":687,"icon":688},"\u002Fdocs\u002Fsdk\u002F3.0\u002Freference\u002Fjiix","docs\u002Fsdk\u002F3.0\u002F09.reference\u002F02.jiix","JIIX","i-tabler-braces",{"title":495,"path":690,"stem":691,"navTitle":456,"icon":633},"\u002Fdocs\u002Fsdk\u002F3.0\u002Freference\u002Fstyling","docs\u002Fsdk\u002F3.0\u002F09.reference\u002F03.styling",{"path":648,"page":693},{"id":694,"title":647,"body":695,"canonicalPath":2456,"description":2457,"extension":2458,"icon":650,"meta":2459,"navTitle":505,"navigation":1143,"path":648,"resolveKey":2460,"resolveVersion":505,"seo":2461,"stem":649,"__hash__":2462},"sdk30\u002Fdocs\u002Fsdk\u002F3.0\u002F08.specific\u002F02.off-screen-usage.md",{"type":696,"value":697,"toc":2444},"minimark",[698,702,713,721,726,738,747,751,754,806,810,1084,1088,2285,2296,2300,2314,2321,2324,2328,2331,2356,2360,2414,2418,2440],[699,700,701],"p",{},"This page explains how you can use iink SDK without using iink SDK rendering.",[699,703,704,705,712],{},"MyScript iink SDK was primarily designed as a graphical-oriented, interactive solution that lets end users easily input and edit their handwriting.\nWith the ",[706,707,708],"a",{"href":611},[709,710,711],"strong",{},"Editor",", interactivity is rendering driven, relying on iink SDK rendering.",[699,714,715,716,720],{},"Sometimes, however, it makes sense to integrate iink SDK ",[706,717,719],{"href":718},"\u002Fdocs\u002Fconcepts\u002Foff-screen#off-screen","off-screen",", without any user interface or with a user interface based on your own rendering, not on iink SDK one.",[722,723,725],"h2",{"id":724},"non-interactive-use-cases","Non interactive use cases",[699,727,728,729,733,734,737],{},"It may be required to add handwriting recognition capabilities to an existing non-interactive application in ",[706,730,732],{"href":731},"\u002Fdocs\u002Fconcepts\u002Ffundamentals\u002Fink-interpretation\u002Fbatch-mode#batch-mode","batch mode",". It might also be useful to process input in ",[706,735,736],{"href":290},"incremental"," mode without displaying the recognition result, for instance to implement an ink search indexing service.",[699,739,740],{},[741,742],"img",{"alt":743,"height":744,"src":745,"width":746},"",424.23248,"\u002Fdocs\u002Fimages\u002Foff_screen_usage.svg",760.20862,[748,749,386],"h3",{"id":750},"setup",[699,752,753],{},"Off-screen setup is very similar to the graphical use case:",[755,756,757,764,770,783,799],"ol",{},[758,759,760,763],"li",{},[706,761,762],{"href":596},"Create and configure an engine",".",[758,765,766,767,763],{},"Create a renderer from the engine and pass it ",[709,768,769],{},"a null render target",[758,771,772,773,777,778,782],{},"Create a ",[774,775,776],"span",{},"package"," and a ",[706,779,781],{"href":780},"\u002Fdocs\u002Fsdk\u002F3.0\u002Ffundamentals\u002Fstorage#structure-of-the-model","content part"," of the appropriate type to work on.",[758,784,785,786,789,790,793,794,798],{},"Create an editor, ",[709,787,788],{},"set its view size"," and ",[709,791,792],{},"attach a font metrics provider"," (for most platforms, you can reuse the one coming with the ",[706,795,797],{"href":796},"\u002Fdocs\u002Fsdk\u002F3.0\u002Ffundamentals\u002Frendering#reference-implementation","UI Reference Implementation",").",[758,800,801,805],{},[706,802,804],{"href":803},"\u002Fdocs\u002Fsdk\u002F3.0\u002Ffundamentals\u002Fediting#setting-a-part","Attach the part"," to the editor.",[748,807,809],{"id":808},"common-pitfalls","Common pitfalls",[811,812,813,908,967,1026],"partial",{},[814,815,816],"template",{"v-slot:swift":743},[817,818,819,825,846,857,870,876,898],"ul",{},[758,820,821,824],{},[709,822,823],{},"dpi values"," - Although you do not display the strokes, you need to provide proper dpi values to the renderer. These correspond to the \"resolution\" of your input surface, be it a digital screen or a sheet of paper.\nThey will provide the recognizer with a sense of \"writing scale\" and help it favor the right hypotheses.",[758,826,827,830,831,835,836,842,843,763],{},[709,828,829],{},"Text guides"," - As explained in the editing part, ",[706,832,834],{"href":833},"\u002Fdocs\u002Fsdk\u002F3.0\u002Ffundamentals\u002Fediting#guides","text guides"," improve the recognition accuracy, provided that handwriting uses them as ",[706,837,841],{"href":838,"rel":839},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FBaseline_(typography)",[840],"nofollow","baselines",". If handwriting does not match the guides, however, the quality of the recognition can be negatively impacted. ",[709,844,845],{},"In most off-screen scenarios, it is thus recommended to turn them off",[758,847,848,851,852,856],{},[709,849,850],{},"Editor view size"," - The editor requires you to provide a size ",[853,854,855],"em",{},"before"," setting the part. This size shall be consistent with your writing surface and the dpi values you provided to the renderer. It will be used by some export options.",[758,858,859,862,863,866,867,869],{},[709,860,861],{},"Font metrics provider"," - Although you may not want to explicitly ",[774,864,865],{},"convert",", you need to attach a font metrics provider to the editor ",[853,868,855],{}," setting the part.\nThis is because font metrics are useful beyond mere display, like for content layout management or some export options.",[758,871,872,875],{},[709,873,874],{},"Clear the editor between sessions"," - A common mistake in batch mode is to forget cleaning the part between imports, which causes new ink to be stacked on top of the one from the previous session.\nIn most cases, you thus have to clear the part before processing new input. Creating a new part for each new session and removing the previous one will free the memory from a potentially unwanted undo\u002Fredo history.",[758,877,878,881,882,884,885,889,890,893,894,897],{},[709,879,880],{},"Gesture processing"," - For non-interactive application in ",[706,883,732],{"href":731}," when calling ",[886,887,888],"code",{},"pointerEvents:count:doProcessGestures:error:"," on the editor, make sure to set the ",[886,891,892],{},"doProcessGesture"," parameter to ",[886,895,896],{},"NO\u002Ffalse"," to avoid side-effects and lengthy recognition time.",[758,899,900,903,904,907],{},[709,901,902],{},"Export after recognition is complete"," - Make sure to call ",[886,905,906],{},"waitForIdle"," on the editor to wait for the recognition to complete before exporting.",[814,909,910],{"v-slot:java":743},[817,911,912,916,927,933,941,945,960],{},[758,913,914,824],{},[709,915,823],{},[758,917,918,830,920,835,922,842,925,763],{},[709,919,829],{},[706,921,834],{"href":833},[706,923,841],{"href":838,"rel":924},[840],[709,926,845],{},[758,928,929,851,931,856],{},[709,930,850],{},[853,932,855],{},[758,934,935,862,937,866,939,869],{},[709,936,861],{},[774,938,865],{},[853,940,855],{},[758,942,943,875],{},[709,944,874],{},[758,946,947,881,949,884,951,889,954,893,957,897],{},[709,948,880],{},[706,950,732],{"href":731},[886,952,953],{},"pointerEvents()",[886,955,956],{},"processGesture",[886,958,959],{},"false",[758,961,962,903,964,907],{},[709,963,902],{},[886,965,966],{},"waitForIdle()",[814,968,969],{"v-slot:csharp":743},[817,970,971,975,986,992,1000,1004,1018],{},[758,972,973,824],{},[709,974,823],{},[758,976,977,830,979,835,981,842,984,763],{},[709,978,829],{},[706,980,834],{"href":833},[706,982,841],{"href":838,"rel":983},[840],[709,985,845],{},[758,987,988,851,990,856],{},[709,989,850],{},[853,991,855],{},[758,993,994,862,996,866,998,869],{},[709,995,861],{},[774,997,865],{},[853,999,855],{},[758,1001,1002,875],{},[709,1003,874],{},[758,1005,1006,881,1008,884,1010,1013,1014,893,1016,897],{},[709,1007,880],{},[706,1009,732],{"href":731},[886,1011,1012],{},"Editor.PointerEvents()",", make sure to set the ",[886,1015,956],{},[886,1017,959],{},[758,1019,1020,903,1022,1025],{},[709,1021,902],{},[886,1023,1024],{},"Editor.WaitForIdle()"," to wait for the recognition to complete before exporting.",[814,1027,1028],{"v-slot:cpp":743},[817,1029,1030,1034,1045,1051,1059,1063,1077],{},[758,1031,1032,824],{},[709,1033,823],{},[758,1035,1036,830,1038,835,1040,842,1043,763],{},[709,1037,829],{},[706,1039,834],{"href":833},[706,1041,841],{"href":838,"rel":1042},[840],[709,1044,845],{},[758,1046,1047,851,1049,856],{},[709,1048,850],{},[853,1050,855],{},[758,1052,1053,862,1055,866,1057,869],{},[709,1054,861],{},[774,1056,865],{},[853,1058,855],{},[758,1060,1061,875],{},[709,1062,874],{},[758,1064,1065,1067,1068,884,1070,1013,1073,893,1075,897],{},[709,1066,880],{}," -  For non-interactive application in ",[706,1069,732],{"href":731},[886,1071,1072],{},"Editor::pointerEvents()",[886,1074,956],{},[886,1076,959],{},[758,1078,1079,903,1081,1025],{},[709,1080,902],{},[886,1082,1083],{},"Editor::waitForIdle()",[748,1085,1087],{"id":1086},"example","Example",[811,1089,1090,1487,1787,2027],{},[814,1091,1092],{"v-slot:java":743},[1093,1094,1098],"pre",{"className":1095,"code":1096,"language":1097,"meta":743,"style":743},"language-java shiki shiki-themes blue-hacker-light blue-hacker-light blue-hacker-dark","\u002F\u002F Configure the engine to disable guides (recommended)\nengine.getConfiguration().setBoolean(\"text.guides.enable\", false);\n\n\u002F\u002F Create a renderer with a null render target\nfloat dpiX = ...;\nfloat dpiY = ...;\nRenderer renderer = engine.createRenderer(dpiX, dpiY, null);\n\n\u002F\u002F Create the editor with a default tool controller\nEditor editor = engine.createEditor(renderer);\n\n\u002F\u002F The editor requires a font metrics provider and a view size *before* calling setPart()\nDisplayMetrics displayMetrics = getResources().getDisplayMetrics();\nMap\u003CString, Typeface> typefaceMap = new HashMap\u003C>();\neditor.setFontMetricsProvider(new FontMetricsProvider(displayMetrics, typefaceMap));\neditor.setViewSize(640, 480);\n\n\u002F\u002F Create a temporary package and part for the editor to work with\nContentPackage package = null;\ntry\n{\n  package = engine.createPackage(\"text.iink\");\n}\ncatch (IOException e)\n{\n  e.printStackTrace();\n}\n\nContentPart part = package.createPart(\"Text\");\neditor.setPart(part);\n","java",[886,1099,1100,1108,1138,1145,1151,1167,1179,1211,1216,1222,1242,1247,1253,1267,1301,1313,1331,1336,1342,1358,1364,1370,1392,1398,1416,1421,1430,1435,1440,1474],{"__ignoreMap":743},[774,1101,1104],{"class":1102,"line":1103},"line",1,[774,1105,1107],{"class":1106},"sJjcI","\u002F\u002F Configure the engine to disable guides (recommended)\n",[774,1109,1111,1115,1119,1122,1126,1128,1131,1135],{"class":1102,"line":1110},2,[774,1112,1114],{"class":1113},"sEQEB","engine",[774,1116,1118],{"class":1117},"soFc9",".getConfiguration().setBoolean(",[774,1120,1121],{"class":1117},"\"",[774,1123,1125],{"class":1124},"sZBTK","text.guides.enable",[774,1127,1121],{"class":1117},[774,1129,1130],{"class":1117},",",[774,1132,1134],{"class":1133},"sU2JI"," false",[774,1136,1137],{"class":1117},");\n",[774,1139,1141],{"class":1102,"line":1140},3,[774,1142,1144],{"emptyLinePlaceholder":1143},true,"\n",[774,1146,1148],{"class":1102,"line":1147},4,[774,1149,1150],{"class":1106},"\u002F\u002F Create a renderer with a null render target\n",[774,1152,1154,1158,1161,1164],{"class":1102,"line":1153},5,[774,1155,1157],{"class":1156},"sglaT","float",[774,1159,1160],{"class":1113}," dpiX ",[774,1162,1163],{"class":1156},"=",[774,1165,1166],{"class":1117}," ...;\n",[774,1168,1170,1172,1175,1177],{"class":1102,"line":1169},6,[774,1171,1157],{"class":1156},[774,1173,1174],{"class":1113}," dpiY ",[774,1176,1163],{"class":1156},[774,1178,1166],{"class":1117},[774,1180,1182,1185,1188,1190,1193,1196,1199,1201,1204,1206,1209],{"class":1102,"line":1181},7,[774,1183,1184],{"class":1156},"Renderer",[774,1186,1187],{"class":1113}," renderer ",[774,1189,1163],{"class":1156},[774,1191,1192],{"class":1113}," engine",[774,1194,1195],{"class":1117},".createRenderer(",[774,1197,1198],{"class":1113},"dpiX",[774,1200,1130],{"class":1117},[774,1202,1203],{"class":1113}," dpiY",[774,1205,1130],{"class":1117},[774,1207,1208],{"class":1133}," null",[774,1210,1137],{"class":1117},[774,1212,1214],{"class":1102,"line":1213},8,[774,1215,1144],{"emptyLinePlaceholder":1143},[774,1217,1219],{"class":1102,"line":1218},9,[774,1220,1221],{"class":1106},"\u002F\u002F Create the editor with a default tool controller\n",[774,1223,1225,1227,1230,1232,1234,1237,1240],{"class":1102,"line":1224},10,[774,1226,711],{"class":1156},[774,1228,1229],{"class":1113}," editor ",[774,1231,1163],{"class":1156},[774,1233,1192],{"class":1113},[774,1235,1236],{"class":1117},".createEditor(",[774,1238,1239],{"class":1113},"renderer",[774,1241,1137],{"class":1117},[774,1243,1245],{"class":1102,"line":1244},11,[774,1246,1144],{"emptyLinePlaceholder":1143},[774,1248,1250],{"class":1102,"line":1249},12,[774,1251,1252],{"class":1106},"\u002F\u002F The editor requires a font metrics provider and a view size *before* calling setPart()\n",[774,1254,1256,1259,1262,1264],{"class":1102,"line":1255},13,[774,1257,1258],{"class":1156},"DisplayMetrics",[774,1260,1261],{"class":1113}," displayMetrics ",[774,1263,1163],{"class":1156},[774,1265,1266],{"class":1117}," getResources().getDisplayMetrics();\n",[774,1268,1270,1273,1276,1279,1281,1284,1287,1290,1292,1295,1298],{"class":1102,"line":1269},14,[774,1271,1272],{"class":1156},"Map",[774,1274,1275],{"class":1117},"\u003C",[774,1277,1278],{"class":1156},"String",[774,1280,1130],{"class":1117},[774,1282,1283],{"class":1156}," Typeface",[774,1285,1286],{"class":1117},">",[774,1288,1289],{"class":1113}," typefaceMap ",[774,1291,1163],{"class":1156},[774,1293,1294],{"class":1117}," new",[774,1296,1297],{"class":1156}," HashMap",[774,1299,1300],{"class":1117},"\u003C>();\n",[774,1302,1304,1307,1310],{"class":1102,"line":1303},15,[774,1305,1306],{"class":1113},"editor",[774,1308,1309],{"class":1117},".setFontMetricsProvider(new",[774,1311,1312],{"class":1117}," FontMetricsProvider(displayMetrics, typefaceMap));\n",[774,1314,1316,1318,1321,1324,1326,1329],{"class":1102,"line":1315},16,[774,1317,1306],{"class":1113},[774,1319,1320],{"class":1117},".setViewSize(",[774,1322,1323],{"class":1133},"640",[774,1325,1130],{"class":1117},[774,1327,1328],{"class":1133}," 480",[774,1330,1137],{"class":1117},[774,1332,1334],{"class":1102,"line":1333},17,[774,1335,1144],{"emptyLinePlaceholder":1143},[774,1337,1339],{"class":1102,"line":1338},18,[774,1340,1341],{"class":1106},"\u002F\u002F Create a temporary package and part for the editor to work with\n",[774,1343,1345,1348,1351,1353,1355],{"class":1102,"line":1344},19,[774,1346,1347],{"class":1156},"ContentPackage",[774,1349,1350],{"class":1113}," package ",[774,1352,1163],{"class":1156},[774,1354,1208],{"class":1133},[774,1356,1357],{"class":1117},";\n",[774,1359,1361],{"class":1102,"line":1360},20,[774,1362,1363],{"class":1117},"try\n",[774,1365,1367],{"class":1102,"line":1366},21,[774,1368,1369],{"class":1117},"{\n",[774,1371,1373,1376,1378,1380,1383,1385,1388,1390],{"class":1102,"line":1372},22,[774,1374,1375],{"class":1113},"  package ",[774,1377,1163],{"class":1156},[774,1379,1192],{"class":1113},[774,1381,1382],{"class":1117},".createPackage(",[774,1384,1121],{"class":1117},[774,1386,1387],{"class":1124},"text.iink",[774,1389,1121],{"class":1117},[774,1391,1137],{"class":1117},[774,1393,1395],{"class":1102,"line":1394},23,[774,1396,1397],{"class":1117},"}\n",[774,1399,1401,1404,1407,1410,1413],{"class":1102,"line":1400},24,[774,1402,1403],{"class":1117},"catch",[774,1405,1406],{"class":1117}," (",[774,1408,1409],{"class":1156},"IOException",[774,1411,1412],{"class":1133}," e",[774,1414,1415],{"class":1117},")\n",[774,1417,1419],{"class":1102,"line":1418},25,[774,1420,1369],{"class":1117},[774,1422,1424,1427],{"class":1102,"line":1423},26,[774,1425,1426],{"class":1113},"  e",[774,1428,1429],{"class":1117},".printStackTrace();\n",[774,1431,1433],{"class":1102,"line":1432},27,[774,1434,1397],{"class":1117},[774,1436,1438],{"class":1102,"line":1437},28,[774,1439,1144],{"emptyLinePlaceholder":1143},[774,1441,1443,1446,1449,1451,1454,1456,1459,1463,1466,1469,1472],{"class":1102,"line":1442},29,[774,1444,1445],{"class":1156},"ContentPart",[774,1447,1448],{"class":1113}," part ",[774,1450,1163],{"class":1156},[774,1452,1453],{"class":1133}," package",[774,1455,763],{"class":1117},[774,1457,1458],{"class":1156},"create",[774,1460,1462],{"class":1461},"sBCGe","P",[774,1464,1465],{"class":1156},"art(\"",[774,1467,1468],{"class":1461},"T",[774,1470,1471],{"class":1156},"ext\")",[774,1473,1357],{"class":1117},[774,1475,1477,1479,1482,1485],{"class":1102,"line":1476},30,[774,1478,1306],{"class":1113},[774,1480,1481],{"class":1117},".setPart(",[774,1483,1484],{"class":1113},"part",[774,1486,1137],{"class":1117},[814,1488,1489],{"v-slot:swift":743},[1093,1490,1494],{"className":1491,"code":1492,"language":1493,"meta":743,"style":743},"language-swift shiki shiki-themes blue-hacker-light blue-hacker-light blue-hacker-dark","do {\n    \u002F\u002F Configure the engine to disable guides (recommended)\n    try engine?.configuration.set(boolean: false, forKey: \"text.guides.enable\")\n\n    \u002F\u002F Create a renderer with a nil render target\n    let renderer = try engine?.createRenderer(dpiX: 50, dpiY: 50, target: nil)\n\n    \u002F\u002F Create the editor with a default tool controller\n    let editor = engine?.createEditor(renderer: renderer, toolcontroller: nil)\n\n    \u002F\u002F The editor requires a font metrics provider and a view size *before* calling setPart:\n    let fontMetricsProvider = FontMetricsProvider()\n    editor?.set(fontMetricsProvider: fontMetricsProvider)\n    editor?.set(viewSize: CGSize(width: 1536,height: 1952))\n\n    \u002F\u002F Create a temporary package and part for the editor to work with\n    let contentPackage = try engine?.createPackage(\"text.iink\")\n\n    \u002F\u002F Create the content part\n    let contentPart = try contentPackage?.createPart(with: \"Text\")\n\n    \u002F\u002Fset the part to the editor\n    editor?.part=contentPart\n} catch {\n    \u002F\u002F Handle error\n}\n","swift",[886,1495,1496,1501,1506,1535,1539,1544,1581,1585,1590,1611,1615,1620,1632,1645,1668,1672,1677,1705,1709,1714,1744,1748,1753,1767,1778,1783],{"__ignoreMap":743},[774,1497,1498],{"class":1102,"line":1103},[774,1499,1500],{"class":1117},"do {\n",[774,1502,1503],{"class":1102,"line":1110},[774,1504,1505],{"class":1106},"    \u002F\u002F Configure the engine to disable guides (recommended)\n",[774,1507,1508,1511,1513,1516,1519,1522,1524,1527,1529,1531,1533],{"class":1102,"line":1140},[774,1509,1510],{"class":1117},"    try",[774,1512,1192],{"class":1113},[774,1514,1515],{"class":1156},"?",[774,1517,1518],{"class":1113},".configuration.set",[774,1520,1521],{"class":1117},"(boolean: ",[774,1523,959],{"class":1133},[774,1525,1526],{"class":1117},", forKey: ",[774,1528,1121],{"class":1117},[774,1530,1125],{"class":1124},[774,1532,1121],{"class":1117},[774,1534,1415],{"class":1117},[774,1536,1537],{"class":1102,"line":1147},[774,1538,1144],{"emptyLinePlaceholder":1143},[774,1540,1541],{"class":1102,"line":1153},[774,1542,1543],{"class":1106},"    \u002F\u002F Create a renderer with a nil render target\n",[774,1545,1546,1549,1551,1553,1556,1558,1560,1562,1565,1568,1571,1573,1576,1579],{"class":1102,"line":1169},[774,1547,1548],{"class":1133},"    let",[774,1550,1187],{"class":1113},[774,1552,1163],{"class":1156},[774,1554,1555],{"class":1117}," try",[774,1557,1192],{"class":1113},[774,1559,1515],{"class":1156},[774,1561,763],{"class":1113},[774,1563,1564],{"class":1117},"createRenderer(dpiX: ",[774,1566,1567],{"class":1133},"50",[774,1569,1570],{"class":1117},", dpiY: ",[774,1572,1567],{"class":1133},[774,1574,1575],{"class":1117},", target: ",[774,1577,1578],{"class":1133},"nil",[774,1580,1415],{"class":1117},[774,1582,1583],{"class":1102,"line":1181},[774,1584,1144],{"emptyLinePlaceholder":1143},[774,1586,1587],{"class":1102,"line":1213},[774,1588,1589],{"class":1106},"    \u002F\u002F Create the editor with a default tool controller\n",[774,1591,1592,1594,1596,1598,1600,1602,1604,1607,1609],{"class":1102,"line":1218},[774,1593,1548],{"class":1133},[774,1595,1229],{"class":1113},[774,1597,1163],{"class":1156},[774,1599,1192],{"class":1113},[774,1601,1515],{"class":1156},[774,1603,763],{"class":1113},[774,1605,1606],{"class":1117},"createEditor(renderer: renderer, toolcontroller: ",[774,1608,1578],{"class":1133},[774,1610,1415],{"class":1117},[774,1612,1613],{"class":1102,"line":1224},[774,1614,1144],{"emptyLinePlaceholder":1143},[774,1616,1617],{"class":1102,"line":1244},[774,1618,1619],{"class":1106},"    \u002F\u002F The editor requires a font metrics provider and a view size *before* calling setPart:\n",[774,1621,1622,1624,1627,1629],{"class":1102,"line":1249},[774,1623,1548],{"class":1133},[774,1625,1626],{"class":1113}," fontMetricsProvider ",[774,1628,1163],{"class":1156},[774,1630,1631],{"class":1117}," FontMetricsProvider()\n",[774,1633,1634,1637,1639,1642],{"class":1102,"line":1255},[774,1635,1636],{"class":1113},"    editor",[774,1638,1515],{"class":1156},[774,1640,1641],{"class":1113},".set",[774,1643,1644],{"class":1117},"(fontMetricsProvider: fontMetricsProvider)\n",[774,1646,1647,1649,1651,1653,1656,1659,1662,1665],{"class":1102,"line":1269},[774,1648,1636],{"class":1113},[774,1650,1515],{"class":1156},[774,1652,1641],{"class":1113},[774,1654,1655],{"class":1117},"(viewSize: CGSize(width: ",[774,1657,1658],{"class":1133},"1536",[774,1660,1661],{"class":1117},",height: ",[774,1663,1664],{"class":1133},"1952",[774,1666,1667],{"class":1117},"))\n",[774,1669,1670],{"class":1102,"line":1303},[774,1671,1144],{"emptyLinePlaceholder":1143},[774,1673,1674],{"class":1102,"line":1315},[774,1675,1676],{"class":1106},"    \u002F\u002F Create a temporary package and part for the editor to work with\n",[774,1678,1679,1681,1684,1686,1688,1690,1692,1694,1697,1699,1701,1703],{"class":1102,"line":1333},[774,1680,1548],{"class":1133},[774,1682,1683],{"class":1113}," contentPackage ",[774,1685,1163],{"class":1156},[774,1687,1555],{"class":1117},[774,1689,1192],{"class":1113},[774,1691,1515],{"class":1156},[774,1693,763],{"class":1113},[774,1695,1696],{"class":1117},"createPackage(",[774,1698,1121],{"class":1117},[774,1700,1387],{"class":1124},[774,1702,1121],{"class":1117},[774,1704,1415],{"class":1117},[774,1706,1707],{"class":1102,"line":1338},[774,1708,1144],{"emptyLinePlaceholder":1143},[774,1710,1711],{"class":1102,"line":1344},[774,1712,1713],{"class":1106},"    \u002F\u002F Create the content part\n",[774,1715,1716,1718,1721,1723,1725,1728,1730,1732,1735,1737,1740,1742],{"class":1102,"line":1360},[774,1717,1548],{"class":1133},[774,1719,1720],{"class":1113}," contentPart ",[774,1722,1163],{"class":1156},[774,1724,1555],{"class":1117},[774,1726,1727],{"class":1113}," contentPackage",[774,1729,1515],{"class":1156},[774,1731,763],{"class":1113},[774,1733,1734],{"class":1117},"createPart(with: ",[774,1736,1121],{"class":1117},[774,1738,1739],{"class":1124},"Text",[774,1741,1121],{"class":1117},[774,1743,1415],{"class":1117},[774,1745,1746],{"class":1102,"line":1366},[774,1747,1144],{"emptyLinePlaceholder":1143},[774,1749,1750],{"class":1102,"line":1372},[774,1751,1752],{"class":1106},"    \u002F\u002Fset the part to the editor\n",[774,1754,1755,1757,1759,1762,1764],{"class":1102,"line":1394},[774,1756,1636],{"class":1113},[774,1758,1515],{"class":1156},[774,1760,1761],{"class":1113},".part",[774,1763,1163],{"class":1156},[774,1765,1766],{"class":1113},"contentPart\n",[774,1768,1769,1772,1775],{"class":1102,"line":1400},[774,1770,1771],{"class":1117},"}",[774,1773,1774],{"class":1117}," catch",[774,1776,1777],{"class":1117}," {\n",[774,1779,1780],{"class":1102,"line":1418},[774,1781,1782],{"class":1106},"    \u002F\u002F Handle error\n",[774,1784,1785],{"class":1102,"line":1423},[774,1786,1397],{"class":1117},[814,1788,1789],{"v-slot:cpp":743},[1093,1790,1794],{"className":1791,"code":1792,"language":1793,"meta":743,"style":743},"language-cpp shiki shiki-themes blue-hacker-light blue-hacker-light blue-hacker-dark","\u002F\u002F Configure the engine to disable guides (recommended)\nengine->getConfiguration()->setBoolean(\"text.guides.enable\", false);\n\n\u002F\u002F Create a renderer with a null render target\nfloat dpiX = ...;\nfloat dpiY = ...;\nauto renderer = engine->createRenderer(dpiX, dpiY, nullptr);\n\n\u002F\u002F Create the editor with a default tool controller\nauto editor = engine->createEditor(renderer);\n\n\u002F\u002F The editor requires a font metrics provider and a view size *before* calling setPart()\nauto fontMetricsProvider = std::make_shared\u003Cuireferenceimplementation::FontMetricsProvider>();\neditor->setFontMetricsProvider(fontMetricsProvider);\neditor->setViewSize(640, 480);\n\n\u002F\u002F Create a temporary package and part for the editor to work with\nauto package = engine->createPackage(\"text.iink\");\nauto part = package->createPart(\"Text\");\neditor->setPart(part);\n","cpp",[886,1795,1796,1800,1819,1823,1827,1840,1852,1879,1883,1887,1904,1908,1912,1939,1951,1966,1970,1974,1995,2016],{"__ignoreMap":743},[774,1797,1798],{"class":1102,"line":1103},[774,1799,1107],{"class":1106},[774,1801,1802,1804,1807,1809,1811,1813,1815,1817],{"class":1102,"line":1110},[774,1803,1114],{"class":1113},[774,1805,1806],{"class":1117},"->getConfiguration()->setBoolean(",[774,1808,1121],{"class":1117},[774,1810,1125],{"class":1124},[774,1812,1121],{"class":1117},[774,1814,1130],{"class":1117},[774,1816,1134],{"class":1133},[774,1818,1137],{"class":1117},[774,1820,1821],{"class":1102,"line":1140},[774,1822,1144],{"emptyLinePlaceholder":1143},[774,1824,1825],{"class":1102,"line":1147},[774,1826,1150],{"class":1106},[774,1828,1829,1831,1833,1835,1838],{"class":1102,"line":1153},[774,1830,1157],{"class":1156},[774,1832,1160],{"class":1113},[774,1834,1163],{"class":1156},[774,1836,1837],{"class":1113}," ...",[774,1839,1357],{"class":1117},[774,1841,1842,1844,1846,1848,1850],{"class":1102,"line":1169},[774,1843,1157],{"class":1156},[774,1845,1174],{"class":1113},[774,1847,1163],{"class":1156},[774,1849,1837],{"class":1113},[774,1851,1357],{"class":1117},[774,1853,1854,1857,1859,1861,1863,1866,1868,1870,1872,1874,1877],{"class":1102,"line":1181},[774,1855,1856],{"class":1156},"auto",[774,1858,1187],{"class":1113},[774,1860,1163],{"class":1156},[774,1862,1192],{"class":1113},[774,1864,1865],{"class":1117},"->createRenderer(",[774,1867,1198],{"class":1113},[774,1869,1130],{"class":1117},[774,1871,1203],{"class":1113},[774,1873,1130],{"class":1117},[774,1875,1876],{"class":1133}," nullptr",[774,1878,1137],{"class":1117},[774,1880,1881],{"class":1102,"line":1213},[774,1882,1144],{"emptyLinePlaceholder":1143},[774,1884,1885],{"class":1102,"line":1218},[774,1886,1221],{"class":1106},[774,1888,1889,1891,1893,1895,1897,1900,1902],{"class":1102,"line":1224},[774,1890,1856],{"class":1156},[774,1892,1229],{"class":1113},[774,1894,1163],{"class":1156},[774,1896,1192],{"class":1113},[774,1898,1899],{"class":1117},"->createEditor(",[774,1901,1239],{"class":1113},[774,1903,1137],{"class":1117},[774,1905,1906],{"class":1102,"line":1244},[774,1907,1144],{"emptyLinePlaceholder":1143},[774,1909,1910],{"class":1102,"line":1249},[774,1911,1252],{"class":1106},[774,1913,1914,1916,1918,1920,1924,1927,1930,1933,1936],{"class":1102,"line":1255},[774,1915,1856],{"class":1156},[774,1917,1626],{"class":1113},[774,1919,1163],{"class":1156},[774,1921,1923],{"class":1922},"sVYTS"," std",[774,1925,1926],{"class":1117},"::make_shared\u003C",[774,1928,1929],{"class":1922},"uireferenceimplementation",[774,1931,1932],{"class":1117},"::",[774,1934,1935],{"class":1922},"FontMetricsProvider",[774,1937,1938],{"class":1117},">();\n",[774,1940,1941,1943,1946,1949],{"class":1102,"line":1269},[774,1942,1306],{"class":1113},[774,1944,1945],{"class":1117},"->setFontMetricsProvider(",[774,1947,1948],{"class":1113},"fontMetricsProvider",[774,1950,1137],{"class":1117},[774,1952,1953,1955,1958,1960,1962,1964],{"class":1102,"line":1303},[774,1954,1306],{"class":1113},[774,1956,1957],{"class":1117},"->setViewSize(",[774,1959,1323],{"class":1133},[774,1961,1130],{"class":1117},[774,1963,1328],{"class":1133},[774,1965,1137],{"class":1117},[774,1967,1968],{"class":1102,"line":1315},[774,1969,1144],{"emptyLinePlaceholder":1143},[774,1971,1972],{"class":1102,"line":1333},[774,1973,1341],{"class":1106},[774,1975,1976,1978,1980,1982,1984,1987,1989,1991,1993],{"class":1102,"line":1338},[774,1977,1856],{"class":1156},[774,1979,1350],{"class":1113},[774,1981,1163],{"class":1156},[774,1983,1192],{"class":1113},[774,1985,1986],{"class":1117},"->createPackage(",[774,1988,1121],{"class":1117},[774,1990,1387],{"class":1124},[774,1992,1121],{"class":1117},[774,1994,1137],{"class":1117},[774,1996,1997,1999,2001,2003,2005,2008,2010,2012,2014],{"class":1102,"line":1344},[774,1998,1856],{"class":1156},[774,2000,1448],{"class":1113},[774,2002,1163],{"class":1156},[774,2004,1453],{"class":1113},[774,2006,2007],{"class":1117},"->createPart(",[774,2009,1121],{"class":1117},[774,2011,1739],{"class":1124},[774,2013,1121],{"class":1117},[774,2015,1137],{"class":1117},[774,2017,2018,2020,2023,2025],{"class":1102,"line":1360},[774,2019,1306],{"class":1113},[774,2021,2022],{"class":1117},"->setPart(",[774,2024,1484],{"class":1113},[774,2026,1137],{"class":1117},[814,2028,2029],{"v-slot:csharp":743},[1093,2030,2034],{"className":2031,"code":2032,"language":2033,"meta":743,"style":743},"language-csharp shiki shiki-themes blue-hacker-light blue-hacker-light blue-hacker-dark","\u002F\u002F Configure the engine to disable guides (recommended)\nengine.Configuration.SetBoolean(\"text.guides.enable\", false);\n\n\u002F\u002F Create a renderer with a null render target\nfloat dpiX = ...;\nfloat dpiY = ...;\nvar renderer = engine.CreateRenderer(dpiX, dpiY, null);\n\n\u002F\u002F Create the editor with a default tool controller\nvar editor = engine.CreateEditor(renderer);\n\n\u002F\u002F The editor requires a font metrics provider and a view size *before* setting the part\nvar fontMetricsProvider = new UIReferenceImplementation.FontMetricsProvider(dpiX, dpiY);\neditor.SetFontMetricsProvider(fontMetricsProvider);\neditor.SetViewSize(640, 480);\n\n\u002F\u002F Create a temporary package and part for the editor to work with\nvar package = engine.CreatePackage(\"text.iink\");\nvar part = package.CreatePart(\"Text\");\neditor.Part = part;\n","csharp",[886,2035,2036,2040,2063,2067,2071,2088,2102,2129,2133,2137,2155,2159,2164,2193,2204,2219,2223,2227,2248,2270],{"__ignoreMap":743},[774,2037,2038],{"class":1102,"line":1103},[774,2039,1107],{"class":1106},[774,2041,2042,2044,2046,2048,2051,2053,2055,2057,2059,2061],{"class":1102,"line":1110},[774,2043,1114],{"class":1113},[774,2045,763],{"class":1117},[774,2047,144],{"class":1113},[774,2049,2050],{"class":1117},".SetBoolean(",[774,2052,1121],{"class":1117},[774,2054,1125],{"class":1124},[774,2056,1121],{"class":1117},[774,2058,1130],{"class":1117},[774,2060,1134],{"class":1133},[774,2062,1137],{"class":1117},[774,2064,2065],{"class":1102,"line":1140},[774,2066,1144],{"emptyLinePlaceholder":1143},[774,2068,2069],{"class":1102,"line":1147},[774,2070,1150],{"class":1106},[774,2072,2073,2075,2078,2081,2084,2086],{"class":1102,"line":1153},[774,2074,1157],{"class":1156},[774,2076,2077],{"class":1922}," dpiX",[774,2079,2080],{"class":1156}," =",[774,2082,2083],{"class":1156}," ..",[774,2085,763],{"class":1113},[774,2087,1357],{"class":1117},[774,2089,2090,2092,2094,2096,2098,2100],{"class":1102,"line":1169},[774,2091,1157],{"class":1156},[774,2093,1203],{"class":1922},[774,2095,2080],{"class":1156},[774,2097,2083],{"class":1156},[774,2099,763],{"class":1113},[774,2101,1357],{"class":1117},[774,2103,2104,2107,2110,2112,2114,2117,2119,2121,2123,2125,2127],{"class":1102,"line":1181},[774,2105,2106],{"class":1156},"var",[774,2108,2109],{"class":1922}," renderer",[774,2111,2080],{"class":1156},[774,2113,1192],{"class":1113},[774,2115,2116],{"class":1117},".CreateRenderer(",[774,2118,1198],{"class":1113},[774,2120,1130],{"class":1117},[774,2122,1203],{"class":1113},[774,2124,1130],{"class":1117},[774,2126,1208],{"class":1133},[774,2128,1137],{"class":1117},[774,2130,2131],{"class":1102,"line":1213},[774,2132,1144],{"emptyLinePlaceholder":1143},[774,2134,2135],{"class":1102,"line":1218},[774,2136,1221],{"class":1106},[774,2138,2139,2141,2144,2146,2148,2151,2153],{"class":1102,"line":1224},[774,2140,2106],{"class":1156},[774,2142,2143],{"class":1922}," editor",[774,2145,2080],{"class":1156},[774,2147,1192],{"class":1113},[774,2149,2150],{"class":1117},".CreateEditor(",[774,2152,1239],{"class":1113},[774,2154,1137],{"class":1117},[774,2156,2157],{"class":1102,"line":1244},[774,2158,1144],{"emptyLinePlaceholder":1143},[774,2160,2161],{"class":1102,"line":1249},[774,2162,2163],{"class":1106},"\u002F\u002F The editor requires a font metrics provider and a view size *before* setting the part\n",[774,2165,2166,2168,2171,2173,2175,2178,2180,2182,2185,2187,2189,2191],{"class":1102,"line":1255},[774,2167,2106],{"class":1156},[774,2169,2170],{"class":1922}," fontMetricsProvider",[774,2172,2080],{"class":1156},[774,2174,1294],{"class":1156},[774,2176,2177],{"class":1922}," UIReferenceImplementation",[774,2179,763],{"class":1117},[774,2181,1935],{"class":1922},[774,2183,2184],{"class":1117},"(",[774,2186,1198],{"class":1113},[774,2188,1130],{"class":1117},[774,2190,1203],{"class":1113},[774,2192,1137],{"class":1117},[774,2194,2195,2197,2200,2202],{"class":1102,"line":1269},[774,2196,1306],{"class":1113},[774,2198,2199],{"class":1117},".SetFontMetricsProvider(",[774,2201,1948],{"class":1113},[774,2203,1137],{"class":1117},[774,2205,2206,2208,2211,2213,2215,2217],{"class":1102,"line":1303},[774,2207,1306],{"class":1113},[774,2209,2210],{"class":1117},".SetViewSize(",[774,2212,1323],{"class":1133},[774,2214,1130],{"class":1117},[774,2216,1328],{"class":1133},[774,2218,1137],{"class":1117},[774,2220,2221],{"class":1102,"line":1315},[774,2222,1144],{"emptyLinePlaceholder":1143},[774,2224,2225],{"class":1102,"line":1333},[774,2226,1341],{"class":1106},[774,2228,2229,2231,2233,2235,2237,2240,2242,2244,2246],{"class":1102,"line":1338},[774,2230,2106],{"class":1156},[774,2232,1453],{"class":1922},[774,2234,2080],{"class":1156},[774,2236,1192],{"class":1113},[774,2238,2239],{"class":1117},".CreatePackage(",[774,2241,1121],{"class":1117},[774,2243,1387],{"class":1124},[774,2245,1121],{"class":1117},[774,2247,1137],{"class":1117},[774,2249,2250,2252,2255,2257,2259,2262,2264,2266,2268],{"class":1102,"line":1344},[774,2251,2106],{"class":1156},[774,2253,2254],{"class":1922}," part",[774,2256,2080],{"class":1156},[774,2258,1453],{"class":1113},[774,2260,2261],{"class":1117},".CreatePart(",[774,2263,1121],{"class":1117},[774,2265,1739],{"class":1124},[774,2267,1121],{"class":1117},[774,2269,1137],{"class":1117},[774,2271,2272,2274,2276,2279,2281,2283],{"class":1102,"line":1360},[774,2273,1306],{"class":1113},[774,2275,763],{"class":1117},[774,2277,2278],{"class":1113},"Part ",[774,2280,1163],{"class":1156},[774,2282,2254],{"class":1113},[774,2284,1357],{"class":1117},[699,2286,2287,2288,789,2292,2295],{},"The editor can now be used to ",[706,2289,2291],{"href":2290},"\u002Fdocs\u002Fsdk\u002F3.0\u002Ffundamentals\u002Fediting#input-capture","process pointer events",[774,2293,2294],{},"export"," the results.",[722,2297,2299],{"id":2298},"offscreen-interactivity-use-case","Offscreen Interactivity use case",[699,2301,2302,2303,2307,2308,2311,2312,763],{},"Up to iink SDK 2.0, it was necessary to use the iink SDK rendering in order to benefit from iink SDK interactive features.\nIn 2.1, while keeping our classical ",[706,2304,2305],{"href":611},[709,2306,711],{}," and its related objects and interfaces,\nwe introduced the ",[709,2309,2310],{},"Offscreen Interactivity"," feature based on an ",[709,2313,423],{},[699,2315,2316],{},[741,2317],{"alt":743,"height":2318,"src":2319,"width":2320},433.14276,"\u002Fdocs\u002Fimages\u002Foffscreeninteractivity.svg",420.19638,[699,2322,2323],{},"This new feature lets the integrator programmatically drive the content model update by keeping the incremental recognition principle and using gesture notifications.\nThe application can rely on its own rendering to manage the captured strokes and display its model.\nRecognition results are available on demand with dedicated APIs.",[748,2325,2327],{"id":2326},"offscreen-interactivity-main-objects","Offscreen Interactivity main objects",[699,2329,2330],{},"For the moment, this feature is only available for “Raw Content” parts.\nIt relies on these new objects and interfaces:",[817,2332,2333,2338,2344,2350],{},[758,2334,2335,2337],{},[709,2336,423],{}," is a service allowing offscreen interactivity. It is the entry point to edit an associated part and receive change notifications.",[758,2339,2340,2343],{},[709,2341,2342],{},"ItemIdHelper"," allows working with item IDs (i.e. strokes). It is associated with an OffscreenEditor.",[758,2345,2346,2349],{},[709,2347,2348],{},"IOffscreenEditorListener"," the listener interface for receiving OffscreenEditor events.",[758,2351,2352,2355],{},[709,2353,2354],{},"IOffscreenGestureHandler"," The listener interface for handling gesture events.",[748,2357,2359],{"id":2358},"offscreen-interactivity-undoredo","Offscreen Interactivity undo\u002Fredo",[817,2361,2362,2377,2384],{},[758,2363,2364,2367,2368,2373,2374,2376],{},[709,2365,2366],{},"HistoryManager"," gives you access to undo\u002Fredo stack manipulation, just ",[706,2369,2370,2371],{"href":664},"like the legacy ",[886,2372,711],{}," and content of changesets. The goal of the ",[886,2375,2366],{}," is to allow you to use undo\u002Fredo to preserve text recognition, rather than redoing strokes, which can change stroke order and recognition output.",[758,2378,2379,2380,2383],{},"To help you synchronize your undo stack with ours, we also give you access to changesets, so you can know what our next undo\u002Fredo will do. A changeset contains N ",[709,2381,2382],{},"ChangesetOperation"," which each corresponds to an operation (ADD, ERASE or TRANSFORM) on a list of item IDs.",[758,2385,2386,2387,2389,2390,2392,2393,2399,2400,2403,2404,2406,2407,2409,2410,2413],{},"For performance reasons, a ",[886,2388,2366],{}," is associated with an ",[886,2391,423],{}," on creation, only if ",[706,2394,2396],{"href":2395},"\u002Fdocs\u002Fsdk\u002F3.0\u002Freference\u002Fconfiguration#offscreen-editor",[886,2397,2398],{},"offscreen-editor.history-manager.enable"," is set to ",[886,2401,2402],{},"true"," (by default this parameter is ",[886,2405,959],{},").\nIt can then be accessed with ",[886,2408,423],{}," ",[886,2411,2412],{},"getHistoryManager()"," method.",[722,2415,2417],{"id":2416},"offscreen-interactivity-api-and-samples","Offscreen Interactivity API and samples",[811,2419,2420,2430,2437],{},[814,2421,2422],{"v-slot:java":743},[699,2423,2424,2425,2429],{},"➤ For more details, refer to the ",[706,2426,2428],{"href":2427},"\u002Fdocs\u002Freference\u002Fsdk\u002F3.0\u002Fjava\u002Fcom\u002Fmyscript\u002Fiink\u002FOffscreenEditor.html","API documentation"," and\u002For contact our support team.",[814,2431,2432],{"v-slot:cpp":743},[699,2433,2424,2434,2429],{},[706,2435,2428],{"href":2436},"\u002Fdocs\u002Freference\u002Fsdk\u002F3.0\u002Fcpp\u002Fhtml\u002Fclassmyscript_1_1iink_1_1_offscreen_editor.html",[699,2438,2439],{},"➤ For more details, refer to the API documentation and\u002For contact our support team.",[2441,2442,2443],"style",{},"html pre.shiki code .sJjcI, html code.shiki .sJjcI{--shiki-light:#467191;--shiki-light-font-style:italic;--shiki-default:#467191;--shiki-default-font-style:italic;--shiki-dark:#6493B4;--shiki-dark-font-style:italic}html pre.shiki code .sEQEB, html code.shiki .sEQEB{--shiki-light:#051F41;--shiki-default:#051F41;--shiki-dark:#D1E9FA}html pre.shiki code .soFc9, html code.shiki .soFc9{--shiki-light:#1A9FFF;--shiki-default:#1A9FFF;--shiki-dark:#1A9FFF}html pre.shiki code .sZBTK, html code.shiki .sZBTK{--shiki-light:#002DB3;--shiki-default:#002DB3;--shiki-dark:#80EAFF}html pre.shiki code .sU2JI, html code.shiki .sU2JI{--shiki-light:#005FE4;--shiki-default:#005FE4;--shiki-dark:#80DFFF}html pre.shiki code .sglaT, html code.shiki .sglaT{--shiki-light:#7751EC;--shiki-default:#7751EC;--shiki-dark:#AC92FC}html pre.shiki code .sBCGe, html code.shiki .sBCGe{--shiki-light:#002DB3;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-default:#002DB3;--shiki-default-font-weight:bold;--shiki-default-text-decoration:underline;--shiki-dark:#80EAFF;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sVYTS, html code.shiki .sVYTS{--shiki-light:#0081F0;--shiki-default:#0081F0;--shiki-dark:#1A9FFF}",{"title":743,"searchDepth":1140,"depth":1140,"links":2445},[2446,2451,2455],{"id":724,"depth":1110,"text":725,"children":2447},[2448,2449,2450],{"id":750,"depth":1140,"text":386},{"id":808,"depth":1140,"text":809},{"id":1086,"depth":1140,"text":1087},{"id":2298,"depth":1110,"text":2299,"children":2452},[2453,2454],{"id":2326,"depth":1140,"text":2327},{"id":2358,"depth":1140,"text":2359},{"id":2416,"depth":1110,"text":2417},"\u002Fdocs\u002Fsdk\u002F4.4\u002Foffscreen-editor\u002Foff-screen-usage","How to use iink SDK without a graphical interface","md",{},"7x9him",{"title":647,"description":2457},"XFrSWEpVBcYXH1Pn2KOW-cPQGkE2p0wAsgsO_tLdaYk",{"id":2464,"title":2465,"body":2466,"canonicalPath":505,"description":2526,"extension":2458,"icon":522,"meta":2527,"navTitle":20,"navigation":1143,"path":2528,"resolveKey":505,"resolveVersion":505,"seo":2529,"stem":2530,"__hash__":2531},"support\u002Fsupport\u002F01.index.md","Support",{"type":696,"value":2467,"toc":2524},[2468,2471],[699,2469,2470],{},"Find answers to common questions about integrating the iink SDK and MyScript Cloud APIs. Browse the topics below or reach out on the community forum.",[2472,2473,2474,2483,2491,2499,2507,2516],"card-group",{},[2475,2476,2480],"card",{"icon":2477,"title":2478,"to":2479},"i-tabler-package","Recognition assets","\u002Fsupport\u002Frecognition-assets\u002F",[699,2481,2482],{},"Download base assets and build custom resources to fine-tune the recognition.",[2475,2484,2488],{"icon":2485,"title":2486,"to":2487},"i-tabler-key","On-device license management","\u002Fsupport\u002Fon-device\u002Fon-device-license-management\u002F",[699,2489,2490],{},"Manage licenses for applications embedding the on-device iink SDK.",[2475,2492,2496],{"icon":2493,"title":2494,"to":2495},"i-tabler-user-circle","Registering with MyScript Cloud","\u002Fsupport\u002Fcloud\u002Fregistering-myscript-cloud\u002F",[699,2497,2498],{},"Create a Cloud account and obtain the keys to call our recognition APIs.",[2475,2500,2504],{"icon":2501,"title":2502,"to":2503},"i-tabler-rocket","Being production ready","\u002Fsupport\u002Fcloud\u002Fbeing-production-ready\u002F",[699,2505,2506],{},"Best practices and quotas to ship your iink Cloud integration to production.",[2475,2508,2513],{"icon":2509,"title":2510,"to":2511,"target":2512},"i-tabler-message-circle","Forums","https:\u002F\u002Fdeveloper-support.myscript.com\u002Fsupport\u002Flogin","_blank",[699,2514,2515],{},"Ask questions and get answers from the MyScript developer community.",[2475,2517,2521],{"icon":2518,"title":2519,"to":2520,"target":2512},"i-tabler-mail","Contact us","https:\u002F\u002Fwww.myscript.com\u002Fcontact\u002F",[699,2522,2523],{},"Can't find what you're looking for? Reach out to our team.",{"title":743,"searchDepth":1140,"depth":1140,"links":2525},[],"MyScript Developer Support hub",{},"\u002Fsupport",{"title":2465,"description":2526},"support\u002F01.index","jENFmcn55y_8r3_6pH5xxlH1dZJBwoAuq9F7gXQtow8",1792566544626]