[{"data":1,"prerenderedAt":2060},["ShallowReactive",2],{"navigation_docs_en":3,"-en-how-to-use-csharp":173,"-en-how-to-use-csharp-surround":2055},[4,30,109,153],{"title":5,"path":6,"stem":7,"children":8,"page":29},"Getting Started","\u002Fen\u002Fgetting-started","en\u002F01.getting-started",[9,14,19,24],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","\u002Fen\u002Fgetting-started\u002Fintroduction","en\u002F01.getting-started\u002F1.introduction","i-ph-rocket",{"title":15,"path":16,"stem":17,"icon":18},"Installation","\u002Fen\u002Fgetting-started\u002Finstallation","en\u002F01.getting-started\u002F2.installation","i-ph-download",{"title":20,"path":21,"stem":22,"icon":23},"Quick Start","\u002Fen\u002Fgetting-started\u002Fquick-start","en\u002F01.getting-started\u002F3.quick-start","i-ph-play",{"title":25,"path":26,"stem":27,"icon":28},"Live Demo","\u002Fen\u002Fgetting-started\u002Flive-demo","en\u002F01.getting-started\u002F4.live-demo","i-ph-sparkle",false,{"title":31,"path":32,"stem":33,"children":34,"page":29},"How To","\u002Fen\u002Fhow-to","en\u002F02.how-to",[35,40,45,50,55,60,65,70,75,79,84,89,94,99,104],{"title":36,"path":37,"stem":38,"icon":39},"Use Rust","\u002Fen\u002Fhow-to\u002Fuse-rust","en\u002F02.how-to\u002F00.use-rust","simple-icons-rust",{"title":41,"path":42,"stem":43,"icon":44},"Use .NET \u002F C#","\u002Fen\u002Fhow-to\u002Fuse-csharp","en\u002F02.how-to\u002F01.use-csharp","simple-icons-dotnet",{"title":46,"path":47,"stem":48,"icon":49},"Use React Native","\u002Fen\u002Fhow-to\u002Fuse-react-native","en\u002F02.how-to\u002F02.use-react-native","simple-icons-react",{"title":51,"path":52,"stem":53,"icon":54},"Use iOS (Swift)","\u002Fen\u002Fhow-to\u002Fuse-ios-swift","en\u002F02.how-to\u002F03.use-ios-swift","simple-icons-apple",{"title":56,"path":57,"stem":58,"icon":59},"Use Android (Kotlin)","\u002Fen\u002Fhow-to\u002Fuse-android-kotlin","en\u002F02.how-to\u002F04.use-android-kotlin","simple-icons-android",{"title":61,"path":62,"stem":63,"icon":64},"Use C FFI","\u002Fen\u002Fhow-to\u002Fuse-c-ffi","en\u002F02.how-to\u002F05.use-c-ffi","simple-icons-c",{"title":66,"path":67,"stem":68,"icon":69},"Use CLI","\u002Fen\u002Fhow-to\u002Fuse-cli","en\u002F02.how-to\u002F06.use-cli","simple-icons-gnubash",{"title":71,"path":72,"stem":73,"icon":74},"Use Web","\u002Fen\u002Fhow-to\u002Fuse-web","en\u002F02.how-to\u002F07.use-web","simple-icons-javascript",{"title":76,"path":77,"stem":78,"icon":49},"Use React","\u002Fen\u002Fhow-to\u002Fuse-react","en\u002F02.how-to\u002F08.use-react",{"title":80,"path":81,"stem":82,"icon":83},"Use Node.js","\u002Fen\u002Fhow-to\u002Fuse-node","en\u002F02.how-to\u002F09.use-node","simple-icons-nodedotjs",{"title":85,"path":86,"stem":87,"icon":88},"Use Python","\u002Fen\u002Fhow-to\u002Fuse-python","en\u002F02.how-to\u002F10.use-python","simple-icons-python",{"title":90,"path":91,"stem":92,"icon":93},"Use Golang","\u002Fen\u002Fhow-to\u002Fuse-golang","en\u002F02.how-to\u002F11.use-golang","simple-icons-go",{"title":95,"path":96,"stem":97,"icon":98},"Use Java & JVM","\u002Fen\u002Fhow-to\u002Fuse-java","en\u002F02.how-to\u002F12.use-java","simple-icons-openjdk",{"title":100,"path":101,"stem":102,"icon":103},"Use Flutter & Dart","\u002Fen\u002Fhow-to\u002Fuse-flutter","en\u002F02.how-to\u002F13.use-flutter","simple-icons-flutter",{"title":105,"path":106,"stem":107,"icon":108},"Use Decoded RGB Input","\u002Fen\u002Fhow-to\u002Fuse-decoded-rgb","en\u002F02.how-to\u002F14.use-decoded-rgb","lucide-image",{"title":110,"path":111,"stem":112,"children":113,"page":29},"Advance Guide","\u002Fen\u002Fadvance-guide","en\u002F03.advance-guide",[114,119,124,129,134,139,144,149],{"title":115,"path":116,"stem":117,"icon":118},"Models & Tiers","\u002Fen\u002Fadvance-guide\u002Fmodels-and-tiers","en\u002F03.advance-guide\u002F01.models-and-tiers","i-ph-cube",{"title":120,"path":121,"stem":122,"icon":123},"Multilingual OCR","\u002Fen\u002Fadvance-guide\u002Fmultilingual-ocr","en\u002F03.advance-guide\u002F02.multilingual-ocr","i-ph-translate",{"title":125,"path":126,"stem":127,"icon":128},"Spatial Layout Reconstruction","\u002Fen\u002Fadvance-guide\u002Fspatial-layout-reconstruction","en\u002F03.advance-guide\u002F03.spatial-layout-reconstruction","i-ph-layout",{"title":130,"path":131,"stem":132,"icon":133},"Image Preprocessing & Tuning","\u002Fen\u002Fadvance-guide\u002Fimage-preprocessing-and-tuning","en\u002F03.advance-guide\u002F04.image-preprocessing-and-tuning","i-ph-sliders",{"title":135,"path":136,"stem":137,"icon":138},"Classification & Orientation","\u002Fen\u002Fadvance-guide\u002Fclassification-and-orientation","en\u002F03.advance-guide\u002F05.classification-and-orientation","i-ph-arrows-clockwise",{"title":140,"path":141,"stem":142,"icon":143},"Performance & Benchmarks","\u002Fen\u002Fadvance-guide\u002Fperformance-and-benchmarks","en\u002F03.advance-guide\u002F06.performance-and-benchmarks","i-ph-chart-line-up",{"title":145,"path":146,"stem":147,"icon":148},"Troubleshooting","\u002Fen\u002Fadvance-guide\u002Ftroubleshooting","en\u002F03.advance-guide\u002F07.troubleshooting","i-ph-wrench",{"title":150,"path":151,"stem":152,"icon":138},"v0.2 to v0.3","\u002Fen\u002Fadvance-guide\u002Fmigration-guide","en\u002F03.advance-guide\u002F08.migration-guide",{"title":154,"path":155,"stem":156,"children":157,"page":29},"Api Reference","\u002Fen\u002Fapi-reference","en\u002F04.api-reference",[158,163,168],{"title":159,"path":160,"stem":161,"icon":162},"InitializeConfig","\u002Fen\u002Fapi-reference\u002Finitialize-config","en\u002F04.api-reference\u002F01.initialize-config","i-ph-code-block",{"title":164,"path":165,"stem":166,"icon":167},"OcrRunOptions","\u002Fen\u002Fapi-reference\u002Focr-run-options","en\u002F04.api-reference\u002F02.ocr-run-options","i-ph-faders",{"title":169,"path":170,"stem":171,"icon":172},"TextResult & Output Modes","\u002Fen\u002Fapi-reference\u002Ftext-result-and-output","en\u002F04.api-reference\u002F03.text-result-and-output","i-ph-textbox",{"id":174,"title":41,"body":175,"description":2047,"extension":2048,"links":2049,"meta":2050,"navigation":2051,"path":42,"seo":2052,"stem":43,"__hash__":2054},"docs_en\u002Fen\u002F02.how-to\u002F01.use-csharp.md",{"type":176,"value":177,"toc":2035},"minimark",[178,205,209,212,240,243,259,262,266,280,552,554,561,564,748,750,754,760,876,878,882,887,1256,1261,1269,1271,1275,1487,1490,1496,1498,1502,2031],[179,180,181,182,186,187,190,191,194,195,190,197,199,200,190,202,204],"p",{},"The ",[183,184,185],"code",{},"RustODotnet"," NuGet package provides idiomatic, high-performance C# bindings and embeds native runtimes for Windows (",[183,188,189],{},"x64",", ",[183,192,193],{},"arm64","), Linux (",[183,196,189],{},[183,198,193],{},"), and macOS (",[183,201,189],{},[183,203,193],{},").",[206,207,15],"h2",{"id":208},"installation",[179,210,211],{},"Install the core package from NuGet:",[213,214,219],"pre",{"className":215,"code":216,"language":217,"meta":218,"style":218},"language-bash shiki shiki-themes material-theme-lighter github-light github-dark monokai","dotnet add package RustODotnet\n","bash","",[183,220,221],{"__ignoreMap":218},[222,223,226,230,234,237],"span",{"class":224,"line":225},"line",1,[222,227,229],{"class":228},"sR7ES","dotnet",[222,231,233],{"class":232},"sLACW"," add",[222,235,236],{"class":232}," package",[222,238,239],{"class":232}," RustODotnet\n",[179,241,242],{},"Optionally install an official model bundle to embed model assets automatically:",[213,244,246],{"className":215,"code":245,"language":217,"meta":218,"style":218},"dotnet add package RustODotnet.Models.PPOCRv6.Tiny\n",[183,247,248],{"__ignoreMap":218},[222,249,250,252,254,256],{"class":224,"line":225},[222,251,229],{"class":228},[222,253,233],{"class":232},[222,255,236],{"class":232},[222,257,258],{"class":232}," RustODotnet.Models.PPOCRv6.Tiny\n",[260,261],"hr",{},[206,263,265],{"id":264},"_1-engine-lifecycle-initialization","1. Engine Lifecycle & Initialization",[179,267,268,271,272,275,276,279],{},[183,269,270],{},"RustO"," manages native unmanaged memory handles through ",[183,273,274],{},"IDisposable",". Always use ",[183,277,278],{},"using"," declarations or dispose the instance when done:",[213,281,285],{"className":282,"code":283,"language":284,"meta":218,"style":218},"language-csharp shiki shiki-themes material-theme-lighter github-light github-dark monokai","using System;\nusing RustODotnet;\n\n\u002F\u002F 1. Initialize using default bundled PP-OCRv6 models\nusing var ocr = RustO.Initialize();\n\n\u002F\u002F Or configure custom model paths explicitly:\nvar customConfig = new InitializeConfig\n{\n    Template = \"ppv6\",\n    Detection = new DetectionConfig { ModelPath = \"models\u002Fdet.rten\", LimitSideLen = 736 },\n    Recognition = new RecognitionConfig\n    {\n        ModelPath = \"models\u002Frec.rten\",\n        DictPath = \"models\u002Fdict.txt\"\n    }\n};\n\nusing var customOcr = RustO.Initialize(customConfig);\n","csharp",[183,286,287,300,310,317,324,356,361,367,385,391,413,456,469,475,492,508,514,520,525],{"__ignoreMap":218},[222,288,289,292,296],{"class":224,"line":225},[222,290,278],{"class":291},"shWJe",[222,293,295],{"class":294},"sM5v9"," System",[222,297,299],{"class":298},"swvn1",";\n",[222,301,303,305,308],{"class":224,"line":302},2,[222,304,278],{"class":291},[222,306,307],{"class":294}," RustODotnet",[222,309,299],{"class":298},[222,311,313],{"class":224,"line":312},3,[222,314,316],{"emptyLinePlaceholder":315},true,"\n",[222,318,320],{"class":224,"line":319},4,[222,321,323],{"class":322},"ss7Ak","\u002F\u002F 1. Initialize using default bundled PP-OCRv6 models\n",[222,325,327,330,334,338,342,346,349,353],{"class":224,"line":326},5,[222,328,278],{"class":329},"sRxSC",[222,331,333],{"class":332},"sQHqT"," var",[222,335,337],{"class":336},"sQqfL"," ocr",[222,339,341],{"class":340},"sGXK2"," =",[222,343,345],{"class":344},"ss--_"," RustO",[222,347,348],{"class":298},".",[222,350,352],{"class":351},"sD0ED","Initialize",[222,354,355],{"class":298},"();\n",[222,357,359],{"class":224,"line":358},6,[222,360,316],{"emptyLinePlaceholder":315},[222,362,364],{"class":224,"line":363},7,[222,365,366],{"class":322},"\u002F\u002F Or configure custom model paths explicitly:\n",[222,368,370,373,376,378,381],{"class":224,"line":369},8,[222,371,372],{"class":332},"var",[222,374,375],{"class":336}," customConfig",[222,377,341],{"class":340},[222,379,380],{"class":340}," new",[222,382,384],{"class":383},"sKvfc"," InitializeConfig\n",[222,386,388],{"class":224,"line":387},9,[222,389,390],{"class":298},"{\n",[222,392,394,397,400,404,407,410],{"class":224,"line":393},10,[222,395,396],{"class":344},"    Template ",[222,398,399],{"class":340},"=",[222,401,403],{"class":402},"siCPE"," \"",[222,405,406],{"class":232},"ppv6",[222,408,409],{"class":402},"\"",[222,411,412],{"class":298},",\n",[222,414,416,419,421,423,426,429,432,434,436,439,441,444,447,449,453],{"class":224,"line":415},11,[222,417,418],{"class":344},"    Detection ",[222,420,399],{"class":340},[222,422,380],{"class":340},[222,424,425],{"class":383}," DetectionConfig",[222,427,428],{"class":298}," {",[222,430,431],{"class":344}," ModelPath ",[222,433,399],{"class":340},[222,435,403],{"class":402},[222,437,438],{"class":232},"models\u002Fdet.rten",[222,440,409],{"class":402},[222,442,443],{"class":298},",",[222,445,446],{"class":344}," LimitSideLen ",[222,448,399],{"class":340},[222,450,452],{"class":451},"sYThS"," 736",[222,454,455],{"class":298}," },\n",[222,457,459,462,464,466],{"class":224,"line":458},12,[222,460,461],{"class":344},"    Recognition ",[222,463,399],{"class":340},[222,465,380],{"class":340},[222,467,468],{"class":383}," RecognitionConfig\n",[222,470,472],{"class":224,"line":471},13,[222,473,474],{"class":298},"    {\n",[222,476,478,481,483,485,488,490],{"class":224,"line":477},14,[222,479,480],{"class":344},"        ModelPath ",[222,482,399],{"class":340},[222,484,403],{"class":402},[222,486,487],{"class":232},"models\u002Frec.rten",[222,489,409],{"class":402},[222,491,412],{"class":298},[222,493,495,498,500,502,505],{"class":224,"line":494},15,[222,496,497],{"class":344},"        DictPath ",[222,499,399],{"class":340},[222,501,403],{"class":402},[222,503,504],{"class":232},"models\u002Fdict.txt",[222,506,507],{"class":402},"\"\n",[222,509,511],{"class":224,"line":510},16,[222,512,513],{"class":298},"    }\n",[222,515,517],{"class":224,"line":516},17,[222,518,519],{"class":298},"};\n",[222,521,523],{"class":224,"line":522},18,[222,524,316],{"emptyLinePlaceholder":315},[222,526,528,530,532,535,537,539,541,543,546,549],{"class":224,"line":527},19,[222,529,278],{"class":329},[222,531,333],{"class":332},[222,533,534],{"class":336}," customOcr",[222,536,341],{"class":340},[222,538,345],{"class":344},[222,540,348],{"class":298},[222,542,352],{"class":351},[222,544,545],{"class":298},"(",[222,547,548],{"class":344},"customConfig",[222,550,551],{"class":298},");\n",[260,553],{},[206,555,557,558,560],{"id":556},"_2-request-local-options-ocrrunoptions","2. Request-Local Options (",[183,559,164],{},")",[179,562,563],{},"Configure options per detection call without reallocating model sessions:",[213,565,567],{"className":282,"code":566,"language":284,"meta":218,"style":218},"var options = new OcrRunOptions\n{\n    Output = OutputGranularity.Lines, \u002F\u002F Lines, Words, or Spatial\n    LineYThreshold = 0.5f,\n    WordXThreshold = 0.4f,\n    TextScore = 0.55f,\n    MaxSideLen = 1600f,\n    Detection = new DetectionRunOptions\n    {\n        LimitSideLen = 960,\n        LimitType = \"max\"\n    },\n    Postprocess = new PostprocessRunOptions\n    {\n        UseDilation = true,\n        UnclipRatio = 2.0f\n    }\n};\n",[183,568,569,583,587,607,619,631,643,655,666,670,682,696,701,713,717,730,740,744],{"__ignoreMap":218},[222,570,571,573,576,578,580],{"class":224,"line":225},[222,572,372],{"class":332},[222,574,575],{"class":336}," options",[222,577,341],{"class":340},[222,579,380],{"class":340},[222,581,582],{"class":383}," OcrRunOptions\n",[222,584,585],{"class":224,"line":302},[222,586,390],{"class":298},[222,588,589,592,594,597,599,602,604],{"class":224,"line":312},[222,590,591],{"class":344},"    Output ",[222,593,399],{"class":340},[222,595,596],{"class":344}," OutputGranularity",[222,598,348],{"class":298},[222,600,601],{"class":344},"Lines",[222,603,443],{"class":298},[222,605,606],{"class":322}," \u002F\u002F Lines, Words, or Spatial\n",[222,608,609,612,614,617],{"class":224,"line":319},[222,610,611],{"class":344},"    LineYThreshold ",[222,613,399],{"class":340},[222,615,616],{"class":451}," 0.5f",[222,618,412],{"class":298},[222,620,621,624,626,629],{"class":224,"line":326},[222,622,623],{"class":344},"    WordXThreshold ",[222,625,399],{"class":340},[222,627,628],{"class":451}," 0.4f",[222,630,412],{"class":298},[222,632,633,636,638,641],{"class":224,"line":358},[222,634,635],{"class":344},"    TextScore ",[222,637,399],{"class":340},[222,639,640],{"class":451}," 0.55f",[222,642,412],{"class":298},[222,644,645,648,650,653],{"class":224,"line":363},[222,646,647],{"class":344},"    MaxSideLen ",[222,649,399],{"class":340},[222,651,652],{"class":451}," 1600f",[222,654,412],{"class":298},[222,656,657,659,661,663],{"class":224,"line":369},[222,658,418],{"class":344},[222,660,399],{"class":340},[222,662,380],{"class":340},[222,664,665],{"class":383}," DetectionRunOptions\n",[222,667,668],{"class":224,"line":387},[222,669,474],{"class":298},[222,671,672,675,677,680],{"class":224,"line":393},[222,673,674],{"class":344},"        LimitSideLen ",[222,676,399],{"class":340},[222,678,679],{"class":451}," 960",[222,681,412],{"class":298},[222,683,684,687,689,691,694],{"class":224,"line":415},[222,685,686],{"class":344},"        LimitType ",[222,688,399],{"class":340},[222,690,403],{"class":402},[222,692,693],{"class":232},"max",[222,695,507],{"class":402},[222,697,698],{"class":224,"line":458},[222,699,700],{"class":298},"    },\n",[222,702,703,706,708,710],{"class":224,"line":471},[222,704,705],{"class":344},"    Postprocess ",[222,707,399],{"class":340},[222,709,380],{"class":340},[222,711,712],{"class":383}," PostprocessRunOptions\n",[222,714,715],{"class":224,"line":477},[222,716,474],{"class":298},[222,718,719,722,724,728],{"class":224,"line":494},[222,720,721],{"class":344},"        UseDilation ",[222,723,399],{"class":340},[222,725,727],{"class":726},"s8HiA"," true",[222,729,412],{"class":298},[222,731,732,735,737],{"class":224,"line":510},[222,733,734],{"class":344},"        UnclipRatio ",[222,736,399],{"class":340},[222,738,739],{"class":451}," 2.0f\n",[222,741,742],{"class":224,"line":516},[222,743,513],{"class":298},[222,745,746],{"class":224,"line":522},[222,747,519],{"class":298},[260,749],{},[206,751,753],{"id":752},"_3-supported-image-sources","3. Supported Image Sources",[179,755,756,759],{},[183,757,758],{},"ImageSource"," accepts filesystem paths\u002FURIs or raw in-memory byte arrays:",[213,761,763],{"className":282,"code":762,"language":284,"meta":218,"style":218},"using System.IO;\n\n\u002F\u002F 1. Filesystem path or file:\u002F\u002F URI\nvar uriSource = new UriImageSource(\"invoices\u002Fsample.jpg\");\n\n\u002F\u002F 2. In-memory byte array (e.g. from stream or ASP.NET Core IFormFile)\nbyte[] imageBytes = await File.ReadAllBytesAsync(\"invoices\u002Fsample.jpg\");\nvar bytesSource = new BytesImageSource(imageBytes);\n",[183,764,765,778,782,787,812,816,821,855],{"__ignoreMap":218},[222,766,767,769,771,773,776],{"class":224,"line":225},[222,768,278],{"class":291},[222,770,295],{"class":294},[222,772,348],{"class":298},[222,774,775],{"class":294},"IO",[222,777,299],{"class":298},[222,779,780],{"class":224,"line":302},[222,781,316],{"emptyLinePlaceholder":315},[222,783,784],{"class":224,"line":312},[222,785,786],{"class":322},"\u002F\u002F 1. Filesystem path or file:\u002F\u002F URI\n",[222,788,789,791,794,796,798,801,803,805,808,810],{"class":224,"line":319},[222,790,372],{"class":332},[222,792,793],{"class":336}," uriSource",[222,795,341],{"class":340},[222,797,380],{"class":340},[222,799,800],{"class":383}," UriImageSource",[222,802,545],{"class":298},[222,804,409],{"class":402},[222,806,807],{"class":232},"invoices\u002Fsample.jpg",[222,809,409],{"class":402},[222,811,551],{"class":298},[222,813,814],{"class":224,"line":326},[222,815,316],{"emptyLinePlaceholder":315},[222,817,818],{"class":224,"line":358},[222,819,820],{"class":322},"\u002F\u002F 2. In-memory byte array (e.g. from stream or ASP.NET Core IFormFile)\n",[222,822,823,826,829,832,834,837,840,842,845,847,849,851,853],{"class":224,"line":363},[222,824,825],{"class":340},"byte",[222,827,828],{"class":298},"[]",[222,830,831],{"class":336}," imageBytes",[222,833,341],{"class":340},[222,835,836],{"class":340}," await",[222,838,839],{"class":344}," File",[222,841,348],{"class":298},[222,843,844],{"class":351},"ReadAllBytesAsync",[222,846,545],{"class":298},[222,848,409],{"class":402},[222,850,807],{"class":232},[222,852,409],{"class":402},[222,854,551],{"class":298},[222,856,857,859,862,864,866,869,871,874],{"class":224,"line":369},[222,858,372],{"class":332},[222,860,861],{"class":336}," bytesSource",[222,863,341],{"class":340},[222,865,380],{"class":340},[222,867,868],{"class":383}," BytesImageSource",[222,870,545],{"class":298},[222,872,873],{"class":344},"imageBytes",[222,875,551],{"class":298},[260,877],{},[206,879,881],{"id":880},"_4-practical-recipes-output-examples","4. Practical Recipes & Output Examples",[883,884,886],"h3",{"id":885},"recipe-a-structured-line-detection-with-bounding-frames","Recipe A: Structured Line Detection with Bounding Frames",[213,888,890],{"className":282,"code":889,"language":284,"meta":218,"style":218},"using System;\nusing RustODotnet;\n\nusing var ocr = RustO.Initialize();\nvar result = ocr.DetectText(new UriImageSource(\"receipt.jpg\"));\n\nif (result is StructuredDetectTextResult structured)\n{\n    Console.WriteLine($\"Found {structured.Items.Count} lines:\\n\");\n    foreach (var item in structured.Items)\n    {\n        Console.WriteLine($\"[{item.Frame.Left:F0}, {item.Frame.Top:F0}, {item.Frame.Width:F0}x{item.Frame.Height:F0}]\");\n        Console.WriteLine($\"  Text:  {item.Text}\");\n        Console.WriteLine($\"  Score: {item.Score:P1}\");\n    }\n}\n",[183,891,892,900,908,912,930,965,969,992,996,1045,1068,1072,1182,1212,1247,1251],{"__ignoreMap":218},[222,893,894,896,898],{"class":224,"line":225},[222,895,278],{"class":291},[222,897,295],{"class":294},[222,899,299],{"class":298},[222,901,902,904,906],{"class":224,"line":302},[222,903,278],{"class":291},[222,905,307],{"class":294},[222,907,299],{"class":298},[222,909,910],{"class":224,"line":312},[222,911,316],{"emptyLinePlaceholder":315},[222,913,914,916,918,920,922,924,926,928],{"class":224,"line":319},[222,915,278],{"class":329},[222,917,333],{"class":332},[222,919,337],{"class":336},[222,921,341],{"class":340},[222,923,345],{"class":344},[222,925,348],{"class":298},[222,927,352],{"class":351},[222,929,355],{"class":298},[222,931,932,934,937,939,941,943,946,948,951,953,955,957,960,962],{"class":224,"line":326},[222,933,372],{"class":332},[222,935,936],{"class":336}," result",[222,938,341],{"class":340},[222,940,337],{"class":344},[222,942,348],{"class":298},[222,944,945],{"class":351},"DetectText",[222,947,545],{"class":298},[222,949,950],{"class":340},"new",[222,952,800],{"class":383},[222,954,545],{"class":298},[222,956,409],{"class":402},[222,958,959],{"class":232},"receipt.jpg",[222,961,409],{"class":402},[222,963,964],{"class":298},"));\n",[222,966,967],{"class":224,"line":358},[222,968,316],{"emptyLinePlaceholder":315},[222,970,971,974,977,980,983,986,989],{"class":224,"line":363},[222,972,973],{"class":329},"if",[222,975,976],{"class":298}," (",[222,978,979],{"class":344},"result ",[222,981,982],{"class":340},"is",[222,984,985],{"class":383}," StructuredDetectTextResult",[222,987,988],{"class":336}," structured",[222,990,991],{"class":298},")\n",[222,993,994],{"class":224,"line":369},[222,995,390],{"class":298},[222,997,998,1001,1003,1006,1008,1011,1014,1018,1021,1023,1026,1028,1031,1034,1037,1041,1043],{"class":224,"line":387},[222,999,1000],{"class":344},"    Console",[222,1002,348],{"class":298},[222,1004,1005],{"class":351},"WriteLine",[222,1007,545],{"class":298},[222,1009,1010],{"class":402},"$\"",[222,1012,1013],{"class":232},"Found ",[222,1015,1017],{"class":1016},"s00De","{",[222,1019,1020],{"class":344},"structured",[222,1022,348],{"class":1016},[222,1024,1025],{"class":344},"Items",[222,1027,348],{"class":1016},[222,1029,1030],{"class":344},"Count",[222,1032,1033],{"class":1016},"}",[222,1035,1036],{"class":232}," lines:",[222,1038,1040],{"class":1039},"sQeA1","\\n",[222,1042,409],{"class":402},[222,1044,551],{"class":298},[222,1046,1047,1050,1052,1054,1057,1060,1062,1064,1066],{"class":224,"line":393},[222,1048,1049],{"class":329},"    foreach",[222,1051,976],{"class":298},[222,1053,372],{"class":332},[222,1055,1056],{"class":336}," item",[222,1058,1059],{"class":329}," in",[222,1061,988],{"class":344},[222,1063,348],{"class":298},[222,1065,1025],{"class":344},[222,1067,991],{"class":298},[222,1069,1070],{"class":224,"line":415},[222,1071,474],{"class":298},[222,1073,1074,1077,1079,1081,1083,1085,1088,1090,1093,1095,1098,1100,1103,1106,1109,1111,1113,1115,1117,1119,1121,1123,1126,1128,1130,1132,1134,1136,1138,1140,1142,1144,1147,1149,1151,1153,1156,1158,1160,1162,1164,1166,1169,1171,1173,1175,1178,1180],{"class":224,"line":458},[222,1075,1076],{"class":344},"        Console",[222,1078,348],{"class":298},[222,1080,1005],{"class":351},[222,1082,545],{"class":298},[222,1084,1010],{"class":402},[222,1086,1087],{"class":232},"[",[222,1089,1017],{"class":1016},[222,1091,1092],{"class":344},"item",[222,1094,348],{"class":1016},[222,1096,1097],{"class":344},"Frame",[222,1099,348],{"class":1016},[222,1101,1102],{"class":344},"Left",[222,1104,1105],{"class":340},":",[222,1107,1108],{"class":344},"F0",[222,1110,1033],{"class":1016},[222,1112,190],{"class":232},[222,1114,1017],{"class":1016},[222,1116,1092],{"class":344},[222,1118,348],{"class":1016},[222,1120,1097],{"class":344},[222,1122,348],{"class":1016},[222,1124,1125],{"class":344},"Top",[222,1127,1105],{"class":340},[222,1129,1108],{"class":344},[222,1131,1033],{"class":1016},[222,1133,190],{"class":232},[222,1135,1017],{"class":1016},[222,1137,1092],{"class":344},[222,1139,348],{"class":1016},[222,1141,1097],{"class":344},[222,1143,348],{"class":1016},[222,1145,1146],{"class":344},"Width",[222,1148,1105],{"class":340},[222,1150,1108],{"class":344},[222,1152,1033],{"class":1016},[222,1154,1155],{"class":232},"x",[222,1157,1017],{"class":1016},[222,1159,1092],{"class":344},[222,1161,348],{"class":1016},[222,1163,1097],{"class":344},[222,1165,348],{"class":1016},[222,1167,1168],{"class":344},"Height",[222,1170,1105],{"class":340},[222,1172,1108],{"class":344},[222,1174,1033],{"class":1016},[222,1176,1177],{"class":232},"]",[222,1179,409],{"class":402},[222,1181,551],{"class":298},[222,1183,1184,1186,1188,1190,1192,1194,1197,1199,1201,1203,1206,1208,1210],{"class":224,"line":471},[222,1185,1076],{"class":344},[222,1187,348],{"class":298},[222,1189,1005],{"class":351},[222,1191,545],{"class":298},[222,1193,1010],{"class":402},[222,1195,1196],{"class":232},"  Text:  ",[222,1198,1017],{"class":1016},[222,1200,1092],{"class":344},[222,1202,348],{"class":1016},[222,1204,1205],{"class":344},"Text",[222,1207,1033],{"class":1016},[222,1209,409],{"class":402},[222,1211,551],{"class":298},[222,1213,1214,1216,1218,1220,1222,1224,1227,1229,1231,1233,1236,1238,1241,1243,1245],{"class":224,"line":477},[222,1215,1076],{"class":344},[222,1217,348],{"class":298},[222,1219,1005],{"class":351},[222,1221,545],{"class":298},[222,1223,1010],{"class":402},[222,1225,1226],{"class":232},"  Score: ",[222,1228,1017],{"class":1016},[222,1230,1092],{"class":344},[222,1232,348],{"class":1016},[222,1234,1235],{"class":344},"Score",[222,1237,1105],{"class":340},[222,1239,1240],{"class":344},"P1",[222,1242,1033],{"class":1016},[222,1244,409],{"class":402},[222,1246,551],{"class":298},[222,1248,1249],{"class":224,"line":494},[222,1250,513],{"class":298},[222,1252,1253],{"class":224,"line":510},[222,1254,1255],{"class":298},"}\n",[1257,1258,1260],"h4",{"id":1259},"example-output","Example Output:",[213,1262,1267],{"className":1263,"code":1265,"language":1266,"meta":218},[1264],"language-text","Found 3 lines:\n\n[40, 30, 200x24]\n  Text:  STORE #1029 - DOWNTOWN\n  Score: 99.1%\n[40, 75, 150x20]\n  Text:  Subtotal: $45.00\n  Score: 98.4%\n[40, 105, 150x20]\n  Text:  Total:    $48.60\n  Score: 99.5%\n","text",[183,1268,1265],{"__ignoreMap":218},[260,1270],{},[883,1272,1274],{"id":1273},"recipe-b-extracting-document-tables-into-spatial-layout","Recipe B: Extracting Document Tables into Spatial Layout",[213,1276,1278],{"className":282,"code":1277,"language":284,"meta":218,"style":218},"using System;\nusing RustODotnet;\n\nusing var ocr = RustO.Initialize();\n\nvar spatialOptions = new OcrRunOptions\n{\n    Output = OutputGranularity.Spatial,\n    LineYThreshold = 0.5f,\n    WordXThreshold = 0.4f\n};\n\nvar spatialResult = ocr.DetectText(new UriImageSource(\"invoice_table.png\"), spatialOptions);\n\nif (spatialResult is SpatialDetectTextResult spatial)\n{\n    Console.WriteLine(\"--- Reconstructed Spatial Text ---\");\n    Console.WriteLine(spatial.Text);\n}\n",[183,1279,1280,1288,1296,1300,1318,1322,1335,1339,1354,1364,1373,1377,1381,1418,1422,1441,1445,1464,1483],{"__ignoreMap":218},[222,1281,1282,1284,1286],{"class":224,"line":225},[222,1283,278],{"class":291},[222,1285,295],{"class":294},[222,1287,299],{"class":298},[222,1289,1290,1292,1294],{"class":224,"line":302},[222,1291,278],{"class":291},[222,1293,307],{"class":294},[222,1295,299],{"class":298},[222,1297,1298],{"class":224,"line":312},[222,1299,316],{"emptyLinePlaceholder":315},[222,1301,1302,1304,1306,1308,1310,1312,1314,1316],{"class":224,"line":319},[222,1303,278],{"class":329},[222,1305,333],{"class":332},[222,1307,337],{"class":336},[222,1309,341],{"class":340},[222,1311,345],{"class":344},[222,1313,348],{"class":298},[222,1315,352],{"class":351},[222,1317,355],{"class":298},[222,1319,1320],{"class":224,"line":326},[222,1321,316],{"emptyLinePlaceholder":315},[222,1323,1324,1326,1329,1331,1333],{"class":224,"line":358},[222,1325,372],{"class":332},[222,1327,1328],{"class":336}," spatialOptions",[222,1330,341],{"class":340},[222,1332,380],{"class":340},[222,1334,582],{"class":383},[222,1336,1337],{"class":224,"line":363},[222,1338,390],{"class":298},[222,1340,1341,1343,1345,1347,1349,1352],{"class":224,"line":369},[222,1342,591],{"class":344},[222,1344,399],{"class":340},[222,1346,596],{"class":344},[222,1348,348],{"class":298},[222,1350,1351],{"class":344},"Spatial",[222,1353,412],{"class":298},[222,1355,1356,1358,1360,1362],{"class":224,"line":387},[222,1357,611],{"class":344},[222,1359,399],{"class":340},[222,1361,616],{"class":451},[222,1363,412],{"class":298},[222,1365,1366,1368,1370],{"class":224,"line":393},[222,1367,623],{"class":344},[222,1369,399],{"class":340},[222,1371,1372],{"class":451}," 0.4f\n",[222,1374,1375],{"class":224,"line":415},[222,1376,519],{"class":298},[222,1378,1379],{"class":224,"line":458},[222,1380,316],{"emptyLinePlaceholder":315},[222,1382,1383,1385,1388,1390,1392,1394,1396,1398,1400,1402,1404,1406,1409,1411,1414,1416],{"class":224,"line":471},[222,1384,372],{"class":332},[222,1386,1387],{"class":336}," spatialResult",[222,1389,341],{"class":340},[222,1391,337],{"class":344},[222,1393,348],{"class":298},[222,1395,945],{"class":351},[222,1397,545],{"class":298},[222,1399,950],{"class":340},[222,1401,800],{"class":383},[222,1403,545],{"class":298},[222,1405,409],{"class":402},[222,1407,1408],{"class":232},"invoice_table.png",[222,1410,409],{"class":402},[222,1412,1413],{"class":298},"),",[222,1415,1328],{"class":344},[222,1417,551],{"class":298},[222,1419,1420],{"class":224,"line":477},[222,1421,316],{"emptyLinePlaceholder":315},[222,1423,1424,1426,1428,1431,1433,1436,1439],{"class":224,"line":494},[222,1425,973],{"class":329},[222,1427,976],{"class":298},[222,1429,1430],{"class":344},"spatialResult ",[222,1432,982],{"class":340},[222,1434,1435],{"class":383}," SpatialDetectTextResult",[222,1437,1438],{"class":336}," spatial",[222,1440,991],{"class":298},[222,1442,1443],{"class":224,"line":510},[222,1444,390],{"class":298},[222,1446,1447,1449,1451,1453,1455,1457,1460,1462],{"class":224,"line":516},[222,1448,1000],{"class":344},[222,1450,348],{"class":298},[222,1452,1005],{"class":351},[222,1454,545],{"class":298},[222,1456,409],{"class":402},[222,1458,1459],{"class":232},"--- Reconstructed Spatial Text ---",[222,1461,409],{"class":402},[222,1463,551],{"class":298},[222,1465,1466,1468,1470,1472,1474,1477,1479,1481],{"class":224,"line":522},[222,1467,1000],{"class":344},[222,1469,348],{"class":298},[222,1471,1005],{"class":351},[222,1473,545],{"class":298},[222,1475,1476],{"class":344},"spatial",[222,1478,348],{"class":298},[222,1480,1205],{"class":344},[222,1482,551],{"class":298},[222,1484,1485],{"class":224,"line":527},[222,1486,1255],{"class":298},[1257,1488,1260],{"id":1489},"example-output-1",[213,1491,1494],{"className":1492,"code":1493,"language":1266,"meta":218},[1264],"--- Reconstructed Spatial Text ---\nDescription               Qty      Rate      Amount\nConsulting Services         8    $150.00   $1,200.00\nSoftware License            1    $499.00     $499.00\nCloud Hosting               1     $50.00      $50.00\n────────────────────────────────────────────────────\nTotal Due:                                 $1,749.00\n",[183,1495,1493],{"__ignoreMap":218},[260,1497],{},[883,1499,1501],{"id":1500},"recipe-c-aspnet-core-web-api-controller-example","Recipe C: ASP.NET Core Web API Controller Example",[213,1503,1505],{"className":282,"code":1504,"language":284,"meta":218,"style":218},"using Microsoft.AspNetCore.Http;\nusing Microsoft.AspNetCore.Mvc;\nusing RustODotnet;\nusing System.IO;\nusing System.Threading.Tasks;\n\n[ApiController]\n[Route(\"api\u002F[controller]\")]\npublic class OcrController : ControllerBase\n{\n    private readonly RustO _ocr;\n\n    public OcrController()\n    {\n        \u002F\u002F For web apps, initialize once as a singleton or scoped service\n        _ocr = RustO.Initialize();\n    }\n\n    [HttpPost(\"scan\")]\n    public async Task\u003CIActionResult> ScanDocument(IFormFile file)\n    {\n        if (file == null || file.Length == 0)\n            return BadRequest(\"No image uploaded.\");\n\n        using var memoryStream = new MemoryStream();\n        await file.CopyToAsync(memoryStream);\n\n        var result = _ocr.DetectText(\n            new BytesImageSource(memoryStream.ToArray()),\n            new OcrRunOptions { Output = OutputGranularity.Spatial }\n        );\n\n        if (result is SpatialDetectTextResult spatial)\n        {\n            return Ok(new { text = spatial.Text });\n        }\n\n        return StatusCode(500, \"OCR processing failed.\");\n    }\n}\n",[183,1506,1507,1526,1543,1551,1563,1581,1585,1595,1614,1632,1636,1651,1655,1665,1669,1674,1689,1693,1697,1716,1749,1754,1789,1809,1814,1834,1854,1859,1878,1898,1922,1928,1933,1950,1956,1985,1991,1996,2021,2026],{"__ignoreMap":218},[222,1508,1509,1511,1514,1516,1519,1521,1524],{"class":224,"line":225},[222,1510,278],{"class":291},[222,1512,1513],{"class":294}," Microsoft",[222,1515,348],{"class":298},[222,1517,1518],{"class":294},"AspNetCore",[222,1520,348],{"class":298},[222,1522,1523],{"class":294},"Http",[222,1525,299],{"class":298},[222,1527,1528,1530,1532,1534,1536,1538,1541],{"class":224,"line":302},[222,1529,278],{"class":291},[222,1531,1513],{"class":294},[222,1533,348],{"class":298},[222,1535,1518],{"class":294},[222,1537,348],{"class":298},[222,1539,1540],{"class":294},"Mvc",[222,1542,299],{"class":298},[222,1544,1545,1547,1549],{"class":224,"line":312},[222,1546,278],{"class":291},[222,1548,307],{"class":294},[222,1550,299],{"class":298},[222,1552,1553,1555,1557,1559,1561],{"class":224,"line":319},[222,1554,278],{"class":291},[222,1556,295],{"class":294},[222,1558,348],{"class":298},[222,1560,775],{"class":294},[222,1562,299],{"class":298},[222,1564,1565,1567,1569,1571,1574,1576,1579],{"class":224,"line":326},[222,1566,278],{"class":291},[222,1568,295],{"class":294},[222,1570,348],{"class":298},[222,1572,1573],{"class":294},"Threading",[222,1575,348],{"class":298},[222,1577,1578],{"class":294},"Tasks",[222,1580,299],{"class":298},[222,1582,1583],{"class":224,"line":358},[222,1584,316],{"emptyLinePlaceholder":315},[222,1586,1587,1589,1592],{"class":224,"line":363},[222,1588,1087],{"class":298},[222,1590,1591],{"class":383},"ApiController",[222,1593,1594],{"class":298},"]\n",[222,1596,1597,1599,1602,1604,1606,1609,1611],{"class":224,"line":369},[222,1598,1087],{"class":298},[222,1600,1601],{"class":383},"Route",[222,1603,545],{"class":298},[222,1605,409],{"class":402},[222,1607,1608],{"class":232},"api\u002F[controller]",[222,1610,409],{"class":402},[222,1612,1613],{"class":298},")]\n",[222,1615,1616,1620,1623,1626,1629],{"class":224,"line":387},[222,1617,1619],{"class":1618},"sTNss","public",[222,1621,1622],{"class":332}," class",[222,1624,1625],{"class":383}," OcrController",[222,1627,1628],{"class":298}," :",[222,1630,1631],{"class":383}," ControllerBase\n",[222,1633,1634],{"class":224,"line":393},[222,1635,390],{"class":298},[222,1637,1638,1641,1644,1646,1649],{"class":224,"line":415},[222,1639,1640],{"class":1618},"    private",[222,1642,1643],{"class":1618}," readonly",[222,1645,345],{"class":383},[222,1647,1648],{"class":336}," _ocr",[222,1650,299],{"class":298},[222,1652,1653],{"class":224,"line":458},[222,1654,316],{"emptyLinePlaceholder":315},[222,1656,1657,1660,1662],{"class":224,"line":471},[222,1658,1659],{"class":1618},"    public",[222,1661,1625],{"class":351},[222,1663,1664],{"class":298},"()\n",[222,1666,1667],{"class":224,"line":477},[222,1668,474],{"class":298},[222,1670,1671],{"class":224,"line":494},[222,1672,1673],{"class":322},"        \u002F\u002F For web apps, initialize once as a singleton or scoped service\n",[222,1675,1676,1679,1681,1683,1685,1687],{"class":224,"line":510},[222,1677,1678],{"class":344},"        _ocr ",[222,1680,399],{"class":340},[222,1682,345],{"class":344},[222,1684,348],{"class":298},[222,1686,352],{"class":351},[222,1688,355],{"class":298},[222,1690,1691],{"class":224,"line":516},[222,1692,513],{"class":298},[222,1694,1695],{"class":224,"line":522},[222,1696,316],{"emptyLinePlaceholder":315},[222,1698,1699,1702,1705,1707,1709,1712,1714],{"class":224,"line":527},[222,1700,1701],{"class":298},"    [",[222,1703,1704],{"class":383},"HttpPost",[222,1706,545],{"class":298},[222,1708,409],{"class":402},[222,1710,1711],{"class":232},"scan",[222,1713,409],{"class":402},[222,1715,1613],{"class":298},[222,1717,1719,1721,1724,1727,1730,1733,1736,1739,1741,1744,1747],{"class":224,"line":1718},20,[222,1720,1659],{"class":1618},[222,1722,1723],{"class":1618}," async",[222,1725,1726],{"class":383}," Task",[222,1728,1729],{"class":298},"\u003C",[222,1731,1732],{"class":383},"IActionResult",[222,1734,1735],{"class":298},">",[222,1737,1738],{"class":351}," ScanDocument",[222,1740,545],{"class":298},[222,1742,1743],{"class":383},"IFormFile",[222,1745,1746],{"class":336}," file",[222,1748,991],{"class":298},[222,1750,1752],{"class":224,"line":1751},21,[222,1753,474],{"class":298},[222,1755,1757,1760,1762,1765,1768,1772,1775,1777,1779,1782,1784,1787],{"class":224,"line":1756},22,[222,1758,1759],{"class":329},"        if",[222,1761,976],{"class":298},[222,1763,1764],{"class":344},"file ",[222,1766,1767],{"class":340},"==",[222,1769,1771],{"class":1770},"sMTiH"," null",[222,1773,1774],{"class":340}," ||",[222,1776,1746],{"class":344},[222,1778,348],{"class":298},[222,1780,1781],{"class":344},"Length ",[222,1783,1767],{"class":340},[222,1785,1786],{"class":451}," 0",[222,1788,991],{"class":298},[222,1790,1792,1795,1798,1800,1802,1805,1807],{"class":224,"line":1791},23,[222,1793,1794],{"class":329},"            return",[222,1796,1797],{"class":351}," BadRequest",[222,1799,545],{"class":298},[222,1801,409],{"class":402},[222,1803,1804],{"class":232},"No image uploaded.",[222,1806,409],{"class":402},[222,1808,551],{"class":298},[222,1810,1812],{"class":224,"line":1811},24,[222,1813,316],{"emptyLinePlaceholder":315},[222,1815,1817,1820,1822,1825,1827,1829,1832],{"class":224,"line":1816},25,[222,1818,1819],{"class":329},"        using",[222,1821,333],{"class":332},[222,1823,1824],{"class":336}," memoryStream",[222,1826,341],{"class":340},[222,1828,380],{"class":340},[222,1830,1831],{"class":383}," MemoryStream",[222,1833,355],{"class":298},[222,1835,1837,1840,1842,1844,1847,1849,1852],{"class":224,"line":1836},26,[222,1838,1839],{"class":340},"        await",[222,1841,1746],{"class":344},[222,1843,348],{"class":298},[222,1845,1846],{"class":351},"CopyToAsync",[222,1848,545],{"class":298},[222,1850,1851],{"class":344},"memoryStream",[222,1853,551],{"class":298},[222,1855,1857],{"class":224,"line":1856},27,[222,1858,316],{"emptyLinePlaceholder":315},[222,1860,1862,1865,1867,1869,1871,1873,1875],{"class":224,"line":1861},28,[222,1863,1864],{"class":332},"        var",[222,1866,936],{"class":336},[222,1868,341],{"class":340},[222,1870,1648],{"class":344},[222,1872,348],{"class":298},[222,1874,945],{"class":351},[222,1876,1877],{"class":298},"(\n",[222,1879,1881,1884,1886,1888,1890,1892,1895],{"class":224,"line":1880},29,[222,1882,1883],{"class":340},"            new",[222,1885,868],{"class":383},[222,1887,545],{"class":298},[222,1889,1851],{"class":344},[222,1891,348],{"class":298},[222,1893,1894],{"class":351},"ToArray",[222,1896,1897],{"class":298},"()),\n",[222,1899,1901,1903,1906,1908,1911,1913,1915,1917,1920],{"class":224,"line":1900},30,[222,1902,1883],{"class":340},[222,1904,1905],{"class":383}," OcrRunOptions",[222,1907,428],{"class":298},[222,1909,1910],{"class":344}," Output ",[222,1912,399],{"class":340},[222,1914,596],{"class":344},[222,1916,348],{"class":298},[222,1918,1919],{"class":344},"Spatial ",[222,1921,1255],{"class":298},[222,1923,1925],{"class":224,"line":1924},31,[222,1926,1927],{"class":298},"        );\n",[222,1929,1931],{"class":224,"line":1930},32,[222,1932,316],{"emptyLinePlaceholder":315},[222,1934,1936,1938,1940,1942,1944,1946,1948],{"class":224,"line":1935},33,[222,1937,1759],{"class":329},[222,1939,976],{"class":298},[222,1941,979],{"class":344},[222,1943,982],{"class":340},[222,1945,1435],{"class":383},[222,1947,1438],{"class":336},[222,1949,991],{"class":298},[222,1951,1953],{"class":224,"line":1952},34,[222,1954,1955],{"class":298},"        {\n",[222,1957,1959,1961,1964,1966,1968,1970,1973,1975,1977,1979,1982],{"class":224,"line":1958},35,[222,1960,1794],{"class":329},[222,1962,1963],{"class":351}," Ok",[222,1965,545],{"class":298},[222,1967,950],{"class":340},[222,1969,428],{"class":298},[222,1971,1972],{"class":344}," text ",[222,1974,399],{"class":340},[222,1976,1438],{"class":344},[222,1978,348],{"class":298},[222,1980,1981],{"class":344},"Text ",[222,1983,1984],{"class":298},"});\n",[222,1986,1988],{"class":224,"line":1987},36,[222,1989,1990],{"class":298},"        }\n",[222,1992,1994],{"class":224,"line":1993},37,[222,1995,316],{"emptyLinePlaceholder":315},[222,1997,1999,2002,2005,2007,2010,2012,2014,2017,2019],{"class":224,"line":1998},38,[222,2000,2001],{"class":329},"        return",[222,2003,2004],{"class":351}," StatusCode",[222,2006,545],{"class":298},[222,2008,2009],{"class":451},"500",[222,2011,443],{"class":298},[222,2013,403],{"class":402},[222,2015,2016],{"class":232},"OCR processing failed.",[222,2018,409],{"class":402},[222,2020,551],{"class":298},[222,2022,2024],{"class":224,"line":2023},39,[222,2025,513],{"class":298},[222,2027,2029],{"class":224,"line":2028},40,[222,2030,1255],{"class":298},[2032,2033,2034],"style",{},"html pre.shiki code .sR7ES, html code.shiki .sR7ES{--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-sepia:#A6E22E}html pre.shiki code .sLACW, html code.shiki .sLACW{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#E6DB74}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 .sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html.sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html pre.shiki code .shWJe, html code.shiki .shWJe{--shiki-light:#F76D47;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-sepia:#F92672}html pre.shiki code .sM5v9, html code.shiki .sM5v9{--shiki-light:#90A4AE;--shiki-light-text-decoration:inherit;--shiki-default:#6F42C1;--shiki-default-text-decoration:inherit;--shiki-dark:#B392F0;--shiki-dark-text-decoration:inherit;--shiki-sepia:#A6E22E;--shiki-sepia-text-decoration:underline}html pre.shiki code .swvn1, html code.shiki .swvn1{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2}html pre.shiki code .ss7Ak, html code.shiki .ss7Ak{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit;--shiki-sepia:#88846F;--shiki-sepia-font-style:inherit}html pre.shiki code .sRxSC, html code.shiki .sRxSC{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit;--shiki-sepia:#F92672;--shiki-sepia-font-style:inherit}html pre.shiki code .sQHqT, html code.shiki .sQHqT{--shiki-light:#E2931D;--shiki-light-font-style:inherit;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit;--shiki-sepia:#66D9EF;--shiki-sepia-font-style:italic}html pre.shiki code .sQqfL, html code.shiki .sQqfL{--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-sepia:#F8F8F2}html pre.shiki code .sGXK2, html code.shiki .sGXK2{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-sepia:#F92672}html pre.shiki code .ss--_, html code.shiki .ss--_{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2}html pre.shiki code .sD0ED, html code.shiki .sD0ED{--shiki-light:#6182B8;--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-sepia:#A6E22E}html pre.shiki code .sKvfc, html code.shiki .sKvfc{--shiki-light:#E2931D;--shiki-light-text-decoration:inherit;--shiki-default:#6F42C1;--shiki-default-text-decoration:inherit;--shiki-dark:#B392F0;--shiki-dark-text-decoration:inherit;--shiki-sepia:#A6E22E;--shiki-sepia-text-decoration:underline}html pre.shiki code .siCPE, html code.shiki .siCPE{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#E6DB74}html pre.shiki code .sYThS, html code.shiki .sYThS{--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#AE81FF}html pre.shiki code .s8HiA, html code.shiki .s8HiA{--shiki-light:#FF5370;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#AE81FF}html pre.shiki code .s00De, html code.shiki .s00De{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#F8F8F2}html pre.shiki code .sQeA1, html code.shiki .sQeA1{--shiki-light:#90A4AE;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#AE81FF}html pre.shiki code .sTNss, html code.shiki .sTNss{--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-sepia:#F92672}html pre.shiki code .sMTiH, html code.shiki .sMTiH{--shiki-light:#39ADB5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#AE81FF}",{"title":218,"searchDepth":302,"depth":302,"links":2036},[2037,2038,2039,2041,2042],{"id":208,"depth":302,"text":15},{"id":264,"depth":302,"text":265},{"id":556,"depth":302,"text":2040},"2. Request-Local Options (OcrRunOptions)",{"id":752,"depth":302,"text":753},{"id":880,"depth":302,"text":881,"children":2043},[2044,2045,2046],{"id":885,"depth":312,"text":886},{"id":1273,"depth":312,"text":1274},{"id":1500,"depth":312,"text":1501},"Using RustODotnet in C# and .NET applications across Windows, Linux, and macOS.","md",null,{},{"icon":44},{"title":2053,"description":2047},"Use .NET \u002F C# - RustO!","K_foEv4xD4wM6bEbibdr4PGbsc5TDaJjyv6PRuvOaVI",[2056,2058],{"title":36,"path":37,"stem":38,"description":2057,"icon":39,"children":-1},"Using the pure Rust RustO! OCR engine and API in Rust applications.",{"title":46,"path":47,"stem":48,"description":2059,"icon":49,"children":-1},"How to use @rustors\u002Freact-native in React Native applications for iOS and Android, covering New Architecture (TurboModules), CocoaPods, and Expo.",1792905888204]