[{"data":1,"prerenderedAt":1369},["ShallowReactive",2],{"navigation_docs_en":3,"-en-advance-guide-multilingual-ocr":173,"-en-advance-guide-multilingual-ocr-surround":1364},[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":120,"body":175,"description":1356,"extension":1357,"links":1358,"meta":1359,"navigation":1360,"path":121,"seo":1361,"stem":122,"__hash__":1363},"docs_en\u002Fen\u002F03.advance-guide\u002F02.multilingual-ocr.md",{"type":176,"value":177,"toc":1345},"minimark",[178,191,194,199,210,296,309,311,315,329,337,694,696,700,706,711,913,917,1071,1075,1115,1117,1121,1124,1312,1314,1318,1324,1341],[179,180,181,182,186,187,190],"p",{},"RustO! provides OCR capabilities across dozens of languages. To achieve high accuracy while keeping model sizes small, models are divided into ",[183,184,185],"strong",{},"core bilingual models (PP-OCRv6)"," and ",[183,188,189],{},"specialized regional language packs (PP-OCRv5 & PP-OCRv4)",".",[192,193],"hr",{},[195,196,198],"h2",{"id":197},"_1-pp-ocrv6-language-coverage-chinese-english-latin","1. PP-OCRv6 Language Coverage (Chinese + English \u002F Latin)",[179,200,201,202,205,206,209],{},"The default ",[183,203,204],{},"PP-OCRv6"," models are trained primarily for ",[183,207,208],{},"Chinese and English",", with broad coverage for basic Latin-alphabet languages:",[211,212,213,233],"table",{},[214,215,216],"thead",{},[217,218,219,224,227,230],"tr",{},[220,221,223],"th",{"align":222},"left","Tier",[220,225,226],{"align":222},"Dictionary Size",[220,228,229],{"align":222},"Script & Character Coverage",[220,231,232],{"align":222},"Best For",[234,235,236,274],"tbody",{},[217,237,238,245,250,271],{},[239,240,241,244],"td",{"align":222},[183,242,243],{},"PP-OCRv6 Tiny"," (Default)",[239,246,247],{"align":222},[183,248,249],{},"6,904 characters",[239,251,252,253,257,258,257,261,257,264,257,267,270],{"align":222},"Simplified Chinese, English, standard Latin alphabet (Indonesian, Spanish, French, German), numerals (0-9), punctuation, and currency symbols (",[254,255,256],"code",{},"$",", ",[254,259,260],{},"€",[254,262,263],{},"¥",[254,265,266],{},"£",[254,268,269],{},"Rp",").",[239,272,273],{"align":222},"Mobile apps, receipts, invoices, and standard documents in English, Indonesian, or Chinese.",[217,275,276,285,290,293],{},[239,277,278,281,282],{"align":222},[183,279,280],{},"PP-OCRv6 Small"," & ",[183,283,284],{},"Medium",[239,286,287],{"align":222},[183,288,289],{},"18,708 characters",[239,291,292],{"align":222},"All characters in Tiny plus Traditional Chinese ideographs, rare CJK characters, and Japanese Kana (Hiragana and Katakana).",[239,294,295],{"align":222},"Scans containing mixed Chinese, Japanese Kana, and Latin text.",[297,298,299],"blockquote",{},[179,300,301,304,305,308],{},[183,302,303],{},"Important",": PP-OCRv6 does ",[183,306,307],{},"not"," recognize Korean Hangul, Arabic, Cyrillic, Devanagari (Hindi), Thai, Greek, or South Indian scripts. For those writing systems, use the dedicated language models below.",[192,310],{},[195,312,314],{"id":313},"_2-dedicated-regional-language-packs-pp-ocrv5-pp-ocrv4","2. Dedicated Regional Language Packs (PP-OCRv5 & PP-OCRv4)",[179,316,317,318,321,322,325,326,270],{},"Because text detection (",[254,319,320],{},"det.rten",") is language-agnostic (it detects the physical contours of text lines regardless of language), you can recognize any supported writing system by pairing the universal detector with a language-specific recognizer (",[254,323,324],{},"rec.rten",") and dictionary (",[254,327,328],{},"dict.txt",[297,330,331],{},[179,332,333,334],{},"Base release URL: ",[254,335,336],{},"https:\u002F\u002Fgithub.com\u002Fbyrizki\u002Frusto-rs\u002Freleases\u002Fdownload\u002Fmodels-rten-v0.3.2\u002F",[211,338,339,361],{},[214,340,341],{},[217,342,343,346,349,352,355,358],{},[220,344,345],{"align":222},"Language \u002F Script",[220,347,348],{"align":222},"Model Series",[220,350,351],{"align":222},"Key",[220,353,354],{"align":222},"Size",[220,356,357],{"align":222},"Supported Languages & Scripts",[220,359,360],{"align":222},"Direct Download",[234,362,363,393,420,445,470,495,520,545,569,594,619,644,669],{},[217,364,365,370,373,378,381,384],{},[239,366,367],{"align":222},[183,368,369],{},"Latin Extended",[239,371,372],{"align":222},"PP-OCRv5",[239,374,375],{"align":222},[254,376,377],{},"latin",[239,379,380],{"align":222},"~28 MB",[239,382,383],{"align":222},"European languages with extended diacritics: Polish, Czech, Turkish, Romanian, Vietnamese, Hungarian, etc.",[239,385,386],{"align":222},[387,388,392],"a",{"href":389,"rel":390},"https:\u002F\u002Fgithub.com\u002Fbyrizki\u002Frusto-rs\u002Freleases\u002Fdownload\u002Fmodels-rten-v0.3.2\u002FRustO-Models-PPOCRv5-Latin.zip",[391],"nofollow","Download",[217,394,395,400,403,408,411,414],{},[239,396,397],{"align":222},[183,398,399],{},"Japanese",[239,401,402],{"align":222},"PP-OCRv4",[239,404,405],{"align":222},[254,406,407],{},"japan",[239,409,410],{"align":222},"~25 MB",[239,412,413],{"align":222},"Japanese Kanji, Hiragana, Katakana, and Latin alphanumeric characters.",[239,415,416],{"align":222},[387,417,392],{"href":418,"rel":419},"https:\u002F\u002Fgithub.com\u002Fbyrizki\u002Frusto-rs\u002Freleases\u002Fdownload\u002Fmodels-rten-v0.3.2\u002FRustO-Models-PPOCRv4-Japanese.zip",[391],[217,421,422,427,429,434,436,439],{},[239,423,424],{"align":222},[183,425,426],{},"Traditional Chinese",[239,428,402],{"align":222},[239,430,431],{"align":222},[254,432,433],{},"chinese_cht",[239,435,410],{"align":222},[239,437,438],{"align":222},"Traditional Chinese characters commonly used in Taiwan, Hong Kong, and Macau.",[239,440,441],{"align":222},[387,442,392],{"href":443,"rel":444},"https:\u002F\u002Fgithub.com\u002Fbyrizki\u002Frusto-rs\u002Freleases\u002Fdownload\u002Fmodels-rten-v0.3.2\u002FRustO-Models-PPOCRv4-TraditionalChinese.zip",[391],[217,446,447,452,454,459,461,464],{},[239,448,449],{"align":222},[183,450,451],{},"Korean",[239,453,372],{"align":222},[239,455,456],{"align":222},[254,457,458],{},"korean",[239,460,380],{"align":222},[239,462,463],{"align":222},"Korean Hangul syllables, numbers, and punctuation.",[239,465,466],{"align":222},[387,467,392],{"href":468,"rel":469},"https:\u002F\u002Fgithub.com\u002Fbyrizki\u002Frusto-rs\u002Freleases\u002Fdownload\u002Fmodels-rten-v0.3.2\u002FRustO-Models-PPOCRv5-Korean.zip",[391],[217,471,472,477,479,484,486,489],{},[239,473,474],{"align":222},[183,475,476],{},"Arabic",[239,478,372],{"align":222},[239,480,481],{"align":222},[254,482,483],{},"arabic",[239,485,380],{"align":222},[239,487,488],{"align":222},"Arabic, Persian (Farsi), Urdu, and Uyghur nastaliq\u002Fnaskh scripts.",[239,490,491],{"align":222},[387,492,392],{"href":493,"rel":494},"https:\u002F\u002Fgithub.com\u002Fbyrizki\u002Frusto-rs\u002Freleases\u002Fdownload\u002Fmodels-rten-v0.3.2\u002FRustO-Models-PPOCRv5-Arabic.zip",[391],[217,496,497,502,504,509,511,514],{},[239,498,499],{"align":222},[183,500,501],{},"Cyrillic",[239,503,372],{"align":222},[239,505,506],{"align":222},[254,507,508],{},"cyrillic",[239,510,380],{"align":222},[239,512,513],{"align":222},"Russian, Ukrainian, Belarusian, Bulgarian, Serbian, Macedonian, and Kazakh.",[239,515,516],{"align":222},[387,517,392],{"href":518,"rel":519},"https:\u002F\u002Fgithub.com\u002Fbyrizki\u002Frusto-rs\u002Freleases\u002Fdownload\u002Fmodels-rten-v0.3.2\u002FRustO-Models-PPOCRv5-Cyrillic.zip",[391],[217,521,522,527,529,534,536,539],{},[239,523,524],{"align":222},[183,525,526],{},"Devanagari",[239,528,372],{"align":222},[239,530,531],{"align":222},[254,532,533],{},"devanagari",[239,535,380],{"align":222},[239,537,538],{"align":222},"Hindi, Marathi, Nepali, Sanskrit, and Bhojpuri.",[239,540,541],{"align":222},[387,542,392],{"href":543,"rel":544},"https:\u002F\u002Fgithub.com\u002Fbyrizki\u002Frusto-rs\u002Freleases\u002Fdownload\u002Fmodels-rten-v0.3.2\u002FRustO-Models-PPOCRv5-Devanagari.zip",[391],[217,546,547,552,554,558,560,563],{},[239,548,549],{"align":222},[183,550,551],{},"Thai",[239,553,372],{"align":222},[239,555,556],{"align":222},[254,557,220],{},[239,559,380],{"align":222},[239,561,562],{"align":222},"Thai consonants, vowels, and tone marks.",[239,564,565],{"align":222},[387,566,392],{"href":567,"rel":568},"https:\u002F\u002Fgithub.com\u002Fbyrizki\u002Frusto-rs\u002Freleases\u002Fdownload\u002Fmodels-rten-v0.3.2\u002FRustO-Models-PPOCRv5-Thai.zip",[391],[217,570,571,576,578,583,585,588],{},[239,572,573],{"align":222},[183,574,575],{},"Greek",[239,577,372],{"align":222},[239,579,580],{"align":222},[254,581,582],{},"el",[239,584,380],{"align":222},[239,586,587],{"align":222},"Modern Greek alphabet.",[239,589,590],{"align":222},[387,591,392],{"href":592,"rel":593},"https:\u002F\u002Fgithub.com\u002Fbyrizki\u002Frusto-rs\u002Freleases\u002Fdownload\u002Fmodels-rten-v0.3.2\u002FRustO-Models-PPOCRv5-Greek.zip",[391],[217,595,596,601,603,608,610,613],{},[239,597,598],{"align":222},[183,599,600],{},"East Slavic",[239,602,372],{"align":222},[239,604,605],{"align":222},[254,606,607],{},"eslav",[239,609,380],{"align":222},[239,611,612],{"align":222},"Regional East Slavic orthography variants.",[239,614,615],{"align":222},[387,616,392],{"href":617,"rel":618},"https:\u002F\u002Fgithub.com\u002Fbyrizki\u002Frusto-rs\u002Freleases\u002Fdownload\u002Fmodels-rten-v0.3.2\u002FRustO-Models-PPOCRv5-EastSlavic.zip",[391],[217,620,621,626,628,633,635,638],{},[239,622,623],{"align":222},[183,624,625],{},"Tamil",[239,627,372],{"align":222},[239,629,630],{"align":222},[254,631,632],{},"ta",[239,634,380],{"align":222},[239,636,637],{"align":222},"Tamil script.",[239,639,640],{"align":222},[387,641,392],{"href":642,"rel":643},"https:\u002F\u002Fgithub.com\u002Fbyrizki\u002Frusto-rs\u002Freleases\u002Fdownload\u002Fmodels-rten-v0.3.2\u002FRustO-Models-PPOCRv5-Tamil.zip",[391],[217,645,646,651,653,658,660,663],{},[239,647,648],{"align":222},[183,649,650],{},"Telugu",[239,652,372],{"align":222},[239,654,655],{"align":222},[254,656,657],{},"te",[239,659,380],{"align":222},[239,661,662],{"align":222},"Telugu script.",[239,664,665],{"align":222},[387,666,392],{"href":667,"rel":668},"https:\u002F\u002Fgithub.com\u002Fbyrizki\u002Frusto-rs\u002Freleases\u002Fdownload\u002Fmodels-rten-v0.3.2\u002FRustO-Models-PPOCRv5-Telugu.zip",[391],[217,670,671,676,678,683,685,688],{},[239,672,673],{"align":222},[183,674,675],{},"Kannada",[239,677,402],{"align":222},[239,679,680],{"align":222},[254,681,682],{},"kannada",[239,684,410],{"align":222},[239,686,687],{"align":222},"Kannada script.",[239,689,690],{"align":222},[387,691,392],{"href":692,"rel":693},"https:\u002F\u002Fgithub.com\u002Fbyrizki\u002Frusto-rs\u002Freleases\u002Fdownload\u002Fmodels-rten-v0.3.2\u002FRustO-Models-PPOCRv4-Kannada.zip",[391],[192,695],{},[195,697,699],{"id":698},"_3-how-to-switch-language-models-in-code","3. How to Switch Language Models in Code",[179,701,702,703,705],{},"To switch languages, keep the universal text detector (",[254,704,320],{},") and point the recognition configuration to your downloaded regional model:",[707,708,710],"h3",{"id":709},"in-rust","In Rust:",[712,713,718],"pre",{"className":714,"code":715,"language":716,"meta":717,"style":717},"language-rust shiki shiki-themes material-theme-lighter github-light github-dark monokai","use rusto::{InitializeConfig, RustO};\n\n\u002F\u002F Initialize with universal detector + Japanese recognition model\nlet config = InitializeConfig::ppv4(\n    \"models\u002Fdet.rten\",\n    \"models\u002Fjapan_rec.rten\",\n    \"models\u002Fjapan_dict.txt\",\n);\n\nlet mut ocr = RustO::initialize(config)?;\nlet results = ocr.detect_text_file(\"japanese_receipt.jpg\")?;\n","rust","",[254,719,720,752,759,766,792,809,821,833,839,844,880],{"__ignoreMap":717},[721,722,725,729,733,737,741,743,746,749],"span",{"class":723,"line":724},"line",1,[721,726,728],{"class":727},"shWJe","use",[721,730,732],{"class":731},"sKvfc"," rusto",[721,734,736],{"class":735},"sGXK2","::",[721,738,740],{"class":739},"swvn1","{",[721,742,159],{"class":731},[721,744,745],{"class":739},",",[721,747,748],{"class":731}," RustO",[721,750,751],{"class":739},"};\n",[721,753,755],{"class":723,"line":754},2,[721,756,758],{"emptyLinePlaceholder":757},true,"\n",[721,760,762],{"class":723,"line":761},3,[721,763,765],{"class":764},"ss7Ak","\u002F\u002F Initialize with universal detector + Japanese recognition model\n",[721,767,769,773,777,780,783,785,789],{"class":723,"line":768},4,[721,770,772],{"class":771},"srJo8","let",[721,774,776],{"class":775},"ss--_"," config ",[721,778,779],{"class":735},"=",[721,781,782],{"class":731}," InitializeConfig",[721,784,736],{"class":735},[721,786,788],{"class":787},"sD0ED","ppv4",[721,790,791],{"class":739},"(\n",[721,793,795,799,803,806],{"class":723,"line":794},5,[721,796,798],{"class":797},"siCPE","    \"",[721,800,802],{"class":801},"sLACW","models\u002Fdet.rten",[721,804,805],{"class":797},"\"",[721,807,808],{"class":739},",\n",[721,810,812,814,817,819],{"class":723,"line":811},6,[721,813,798],{"class":797},[721,815,816],{"class":801},"models\u002Fjapan_rec.rten",[721,818,805],{"class":797},[721,820,808],{"class":739},[721,822,824,826,829,831],{"class":723,"line":823},7,[721,825,798],{"class":797},[721,827,828],{"class":801},"models\u002Fjapan_dict.txt",[721,830,805],{"class":797},[721,832,808],{"class":739},[721,834,836],{"class":723,"line":835},8,[721,837,838],{"class":739},");\n",[721,840,842],{"class":723,"line":841},9,[721,843,758],{"emptyLinePlaceholder":757},[721,845,847,849,853,856,858,860,862,865,868,871,874,877],{"class":723,"line":846},10,[721,848,772],{"class":771},[721,850,852],{"class":851},"sTNss"," mut",[721,854,855],{"class":775}," ocr ",[721,857,779],{"class":735},[721,859,748],{"class":731},[721,861,736],{"class":735},[721,863,864],{"class":787},"initialize",[721,866,867],{"class":739},"(",[721,869,870],{"class":775},"config",[721,872,873],{"class":739},")",[721,875,876],{"class":735},"?",[721,878,879],{"class":739},";\n",[721,881,883,885,888,890,893,895,898,900,902,905,907,909,911],{"class":723,"line":882},11,[721,884,772],{"class":771},[721,886,887],{"class":775}," results ",[721,889,779],{"class":735},[721,891,892],{"class":775}," ocr",[721,894,190],{"class":735},[721,896,897],{"class":787},"detect_text_file",[721,899,867],{"class":739},[721,901,805],{"class":797},[721,903,904],{"class":801},"japanese_receipt.jpg",[721,906,805],{"class":797},[721,908,873],{"class":739},[721,910,876],{"class":735},[721,912,879],{"class":739},[707,914,916],{"id":915},"in-nodejs","In Node.js:",[712,918,922],{"className":919,"code":920,"language":921,"meta":717,"style":717},"language-typescript shiki shiki-themes material-theme-lighter github-light github-dark monokai","import { RustO } from '@rustors\u002Fnode';\n\nconst ocr = new RustO({\n  detModelPath: 'models\u002Fdet.rten',\n  recModelPath: 'models\u002Farabic_rec.rten',\n  dictPath: 'models\u002Farabic_dict.txt',\n});\n\nconst lines = await ocr.detectTextFile('arabic_invoice.pdf');\n","typescript",[254,923,924,952,956,977,994,1010,1026,1035,1039],{"__ignoreMap":717},[721,925,926,930,933,935,938,941,944,947,950],{"class":723,"line":724},[721,927,929],{"class":928},"sRxSC","import",[721,931,932],{"class":739}," {",[721,934,748],{"class":775},[721,936,937],{"class":739}," }",[721,939,940],{"class":928}," from",[721,942,943],{"class":797}," '",[721,945,946],{"class":801},"@rustors\u002Fnode",[721,948,949],{"class":797},"'",[721,951,879],{"class":739},[721,953,954],{"class":723,"line":754},[721,955,758],{"emptyLinePlaceholder":757},[721,957,958,961,964,967,970,972,974],{"class":723,"line":761},[721,959,960],{"class":771},"const",[721,962,892],{"class":963},"s91G_",[721,965,966],{"class":735}," =",[721,968,969],{"class":735}," new",[721,971,748],{"class":787},[721,973,867],{"class":775},[721,975,976],{"class":739},"{\n",[721,978,979,983,986,988,990,992],{"class":723,"line":768},[721,980,982],{"class":981},"squCx","  detModelPath",[721,984,985],{"class":739},":",[721,987,943],{"class":797},[721,989,802],{"class":801},[721,991,949],{"class":797},[721,993,808],{"class":739},[721,995,996,999,1001,1003,1006,1008],{"class":723,"line":794},[721,997,998],{"class":981},"  recModelPath",[721,1000,985],{"class":739},[721,1002,943],{"class":797},[721,1004,1005],{"class":801},"models\u002Farabic_rec.rten",[721,1007,949],{"class":797},[721,1009,808],{"class":739},[721,1011,1012,1015,1017,1019,1022,1024],{"class":723,"line":811},[721,1013,1014],{"class":981},"  dictPath",[721,1016,985],{"class":739},[721,1018,943],{"class":797},[721,1020,1021],{"class":801},"models\u002Farabic_dict.txt",[721,1023,949],{"class":797},[721,1025,808],{"class":739},[721,1027,1028,1031,1033],{"class":723,"line":823},[721,1029,1030],{"class":739},"}",[721,1032,873],{"class":775},[721,1034,879],{"class":739},[721,1036,1037],{"class":723,"line":835},[721,1038,758],{"emptyLinePlaceholder":757},[721,1040,1041,1043,1046,1048,1051,1053,1055,1058,1060,1062,1065,1067,1069],{"class":723,"line":841},[721,1042,960],{"class":771},[721,1044,1045],{"class":963}," lines",[721,1047,966],{"class":735},[721,1049,1050],{"class":928}," await",[721,1052,892],{"class":775},[721,1054,190],{"class":739},[721,1056,1057],{"class":787},"detectTextFile",[721,1059,867],{"class":775},[721,1061,949],{"class":797},[721,1063,1064],{"class":801},"arabic_invoice.pdf",[721,1066,949],{"class":797},[721,1068,873],{"class":775},[721,1070,879],{"class":739},[707,1072,1074],{"id":1073},"in-python","In Python:",[712,1076,1080],{"className":1077,"code":1078,"language":1079,"meta":717,"style":717},"language-python shiki shiki-themes material-theme-lighter github-light github-dark monokai","import rusto\n\nengine = rusto.RustOEngine.from_config(\n    '{\"detection\":{\"model_path\":\"models\u002Fdet.rten\"},\"recognition\":{\"model_path\":\"models\u002Fkorean_rec.rten\",\"dict_path\":\"models\u002Fkorean_dict.txt\"}}'\n)\n\nlines = engine.detect_text_file(\"korean_document.png\")\n","python",[254,1081,1082,1087,1091,1096,1101,1106,1110],{"__ignoreMap":717},[721,1083,1084],{"class":723,"line":724},[721,1085,1086],{},"import rusto\n",[721,1088,1089],{"class":723,"line":754},[721,1090,758],{"emptyLinePlaceholder":757},[721,1092,1093],{"class":723,"line":761},[721,1094,1095],{},"engine = rusto.RustOEngine.from_config(\n",[721,1097,1098],{"class":723,"line":768},[721,1099,1100],{},"    '{\"detection\":{\"model_path\":\"models\u002Fdet.rten\"},\"recognition\":{\"model_path\":\"models\u002Fkorean_rec.rten\",\"dict_path\":\"models\u002Fkorean_dict.txt\"}}'\n",[721,1102,1103],{"class":723,"line":794},[721,1104,1105],{},")\n",[721,1107,1108],{"class":723,"line":811},[721,1109,758],{"emptyLinePlaceholder":757},[721,1111,1112],{"class":723,"line":823},[721,1113,1114],{},"lines = engine.detect_text_file(\"korean_document.png\")\n",[192,1116],{},[195,1118,1120],{"id":1119},"_4-package-manager-identifiers","4. Package Manager Identifiers",[179,1122,1123],{},"If using CocoaPods, Android Gradle, or NuGet, pre-packaged language pods\u002FAARs\u002Fpackages are available without manual downloads:",[211,1125,1126,1142],{},[214,1127,1128],{},[217,1129,1130,1133,1136,1139],{},[220,1131,1132],{"align":222},"Language",[220,1134,1135],{"align":222},"CocoaPods (iOS)",[220,1137,1138],{"align":222},"Android (JitPack)",[220,1140,1141],{"align":222},"NuGet (.NET)",[234,1143,1144,1165,1186,1207,1228,1249,1270,1291],{},[217,1145,1146,1150,1155,1160],{},[239,1147,1148],{"align":222},[183,1149,399],{},[239,1151,1152],{"align":222},[254,1153,1154],{},"pod 'RustO-Models-PPOCRv4-Japanese'",[239,1156,1157],{"align":222},[254,1158,1159],{},"rusto-models-ppocrv4-japan",[239,1161,1162],{"align":222},[254,1163,1164],{},"RustODotnet.Models.PPOCRv4.Japanese",[217,1166,1167,1171,1176,1181],{},[239,1168,1169],{"align":222},[183,1170,426],{},[239,1172,1173],{"align":222},[254,1174,1175],{},"pod 'RustO-Models-PPOCRv4-TraditionalChinese'",[239,1177,1178],{"align":222},[254,1179,1180],{},"rusto-models-ppocrv4-chinese-cht",[239,1182,1183],{"align":222},[254,1184,1185],{},"RustODotnet.Models.PPOCRv4.TraditionalChinese",[217,1187,1188,1192,1197,1202],{},[239,1189,1190],{"align":222},[183,1191,369],{},[239,1193,1194],{"align":222},[254,1195,1196],{},"pod 'RustO-Models-PPOCRv5-Latin'",[239,1198,1199],{"align":222},[254,1200,1201],{},"rusto-models-ppocrv5-latin",[239,1203,1204],{"align":222},[254,1205,1206],{},"RustODotnet.Models.PPOCRv5.Latin",[217,1208,1209,1213,1218,1223],{},[239,1210,1211],{"align":222},[183,1212,476],{},[239,1214,1215],{"align":222},[254,1216,1217],{},"pod 'RustO-Models-PPOCRv5-Arabic'",[239,1219,1220],{"align":222},[254,1221,1222],{},"rusto-models-ppocrv5-arabic",[239,1224,1225],{"align":222},[254,1226,1227],{},"RustODotnet.Models.PPOCRv5.Arabic",[217,1229,1230,1234,1239,1244],{},[239,1231,1232],{"align":222},[183,1233,451],{},[239,1235,1236],{"align":222},[254,1237,1238],{},"pod 'RustO-Models-PPOCRv5-Korean'",[239,1240,1241],{"align":222},[254,1242,1243],{},"rusto-models-ppocrv5-korean",[239,1245,1246],{"align":222},[254,1247,1248],{},"RustODotnet.Models.PPOCRv5.Korean",[217,1250,1251,1255,1260,1265],{},[239,1252,1253],{"align":222},[183,1254,501],{},[239,1256,1257],{"align":222},[254,1258,1259],{},"pod 'RustO-Models-PPOCRv5-Cyrillic'",[239,1261,1262],{"align":222},[254,1263,1264],{},"rusto-models-ppocrv5-cyrillic",[239,1266,1267],{"align":222},[254,1268,1269],{},"RustODotnet.Models.PPOCRv5.Cyrillic",[217,1271,1272,1276,1281,1286],{},[239,1273,1274],{"align":222},[183,1275,526],{},[239,1277,1278],{"align":222},[254,1279,1280],{},"pod 'RustO-Models-PPOCRv5-Devanagari'",[239,1282,1283],{"align":222},[254,1284,1285],{},"rusto-models-ppocrv5-devanagari",[239,1287,1288],{"align":222},[254,1289,1290],{},"RustODotnet.Models.PPOCRv5.Devanagari",[217,1292,1293,1297,1302,1307],{},[239,1294,1295],{"align":222},[183,1296,551],{},[239,1298,1299],{"align":222},[254,1300,1301],{},"pod 'RustO-Models-PPOCRv5-Thai'",[239,1303,1304],{"align":222},[254,1305,1306],{},"rusto-models-ppocrv5-th",[239,1308,1309],{"align":222},[254,1310,1311],{},"RustODotnet.Models.PPOCRv5.Thai",[192,1313],{},[195,1315,1317],{"id":1316},"_5-right-to-left-rtl-scripts","5. Right-to-Left (RTL) Scripts",[179,1319,1320,1321,985],{},"When processing ",[183,1322,1323],{},"Arabic, Persian, or Urdu",[1325,1326,1327,1331,1334],"ul",{},[1328,1329,1330],"li",{},"The recognizer reads characters in their natural visual order from left to right across the cropped text slice.",[1328,1332,1333],{},"Bounding polygon vertices in structured output reflect true coordinate space on the document.",[1328,1335,1336,1337,1340],{},"In spatial text mode (",[254,1338,1339],{},"OutputGranularity::Spatial","), lines are formatted preserving individual word coordinates and token ordering.",[1342,1343,1344],"style",{},"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 .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 .sGXK2, html code.shiki .sGXK2{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-sepia:#F92672}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 .srJo8, html code.shiki .srJo8{--shiki-light:#9C3EDA;--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 .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 .siCPE, html code.shiki .siCPE{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#E6DB74}html pre.shiki code .sLACW, html code.shiki .sLACW{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#E6DB74}html pre.shiki code .sTNss, html code.shiki .sTNss{--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-sepia:#F92672}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 .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 .s91G_, html code.shiki .s91G_{--shiki-light:#90A4AE;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#F8F8F2}html pre.shiki code .squCx, html code.shiki .squCx{--shiki-light:#E53935;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2}",{"title":717,"searchDepth":754,"depth":754,"links":1346},[1347,1348,1349,1354,1355],{"id":197,"depth":754,"text":198},{"id":313,"depth":754,"text":314},{"id":698,"depth":754,"text":699,"children":1350},[1351,1352,1353],{"id":709,"depth":761,"text":710},{"id":915,"depth":761,"text":916},{"id":1073,"depth":761,"text":1074},{"id":1119,"depth":754,"text":1120},{"id":1316,"depth":754,"text":1317},"Language and script support in RustO!: PP-OCRv6 bilingual (Chinese + Latin) scope, and dedicated PP-OCRv5 \u002F PP-OCRv4 regional language packs.","md",null,{},{"icon":123},{"title":1362,"description":1356},"Multilingual OCR - RustO!","VaHndQ9IMOiFPrcf4ohm2VH5sc6ySfmv6lYr2BbBbks",[1365,1367],{"title":115,"path":116,"stem":117,"description":1366,"icon":118,"children":-1},"Pragmatic guide for choosing, downloading, and configuring pre-trained PaddleOCR models in RustO! with direct zip releases and package manager bundles.",{"title":125,"path":126,"stem":127,"description":1368,"icon":128,"children":-1},"How RustO! reconstructs human-readable 2D spatial layouts for multi-column tables, invoices, receipts, and forms.",1792905889402]