How to use Custom Language with Tesseract

This article was translated from English: Does it need improvement?
Translated
View the article in English

When it comes to optical character recognition (OCR), you sometimes need to deal with custom languages, specialized scripts, or ciphers. To read an input image containing a custom language, the Tesseract engine must be provided with training data for that specific language. This data is stored in a special .traineddata file.

While the complex process of creating (training) this file is done using Tesseract's own tools, IronOCR fully supports using these custom language files. This lets you apply your trained model to decipher and read text from any input. In this how-to guide, we'll showcase how to load and use a custom .traineddata file with IronOCR.

Get started with IronOCR

Comience a usar IronOCR en su proyecto hoy con una prueba gratuita.

Primer Paso:
green arrow pointer


Custom Language with Tesseract

To use a custom language with Tesseract, we must first load our .traineddata file by calling the UseCustomTesseractLanguageFile method. This is an essential step, as this file contains all the training data that allows Tesseract to recognize the custom language's unique characters.

Afterward, we load our input document just as we would for a regular OCR operation. In this instance, we are loading a PDF containing custom language paragraphs using LoadPdf.

Finally, we use the Read method to extract the text from the input. The result can then be printed to the console or, as the example shows, saved (piped) to a text file for reference.

Input

We'll use this sample PDF, which contains text in our custom language, as the input.

We'll be using this custom language .traindata for our example.

Code Example

:path=/static-assets/ocr/content-code-examples/how-to/ocr-custom-language.cs
using IronOcr;
using System;
using System.IO;

var ocrTesseract = new IronTesseract();

// Load the traineddata file for the custom language
ocrTesseract.UseCustomTesseractLanguageFile("AMGDT.traineddata");

using var ocrInput = new OcrInput();
// Load the PDF containing text in the custom language
ocrInput.LoadPdf("custom.pdf");

var ocrResult = ocrTesseract.Read(ocrInput);

// Print text to the console
Console.WriteLine("--- OCR Result ---");
Console.WriteLine(ocrResult.Text);
Console.WriteLine("------------------");

// Pipe text to a .txt file
string outputFilePath = "ocr_output.txt";
File.WriteAllText(outputFilePath, ocrResult.Text);

Console.WriteLine($"\nSuccessfully saved text to {outputFilePath}");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Output

OCR Output text

This output shows the result from our custom language model. As you can see, by providing the correct training data, IronOCR successfully deciphered the text, and the result is in plain English. Additionally, this is the txt output generated by the code.

Preguntas Frecuentes

¿Cuál es el propósito de utilizar un idioma personalizado con Tesseract en IronOCR?

Usar un idioma personalizado con Tesseract en IronOCR permite reconocer y extraer texto de imágenes o archivos PDF que contienen scripts especializados o idiomas no compatibles por defecto. Esto se logra cargando un archivo `.traineddata` personalizado que contiene los datos de entrenamiento necesarios para ese idioma.

¿Cómo cargo un archivo de datos de entrenamiento de idioma personalizado en IronOCR?

Puede cargar un archivo de datos de entrenamiento de idioma personalizado en IronOCR mediante el método "UseCustomTesseractLanguageFile". Este paso es crucial, ya que proporciona al motor Tesseract los datos de entrenamiento necesarios para reconocer los caracteres únicos del idioma personalizado.

¿Cuáles son los pasos para realizar OCR en una imagen con un idioma personalizado usando IronOCR?

Para realizar OCR en una imagen con un idioma personalizado usando IronOCR, primero descargue la biblioteca C#, inicialice el motor de OCR, cargue los datos de entrenamiento del idioma personalizado con `UseCustomTesseractLanguageFile`, cargue la imagen de entrada con `LoadImage` y, finalmente, extraiga el texto usando el método `Read`.

¿Puede IronOCR gestionar archivos PDF que contengan texto en idioma personalizado?

Sí, IronOCR puede procesar archivos PDF con texto en un idioma personalizado. Puede cargar el PDF con el método "LoadPdf" y luego usar el método "Read" para extraer el texto según los datos de entrenamiento del idioma personalizado proporcionados.

¿Qué es un archivo «.traineddata» en el contexto de Tesseract e IronOCR?

Un archivo `.traineddata` es un archivo de datos utilizado por Tesseract OCR que contiene los datos de entrenamiento para un idioma específico. Permite al motor de OCR reconocer y procesar caracteres de ese idioma, y puede utilizarse en IronOCR para trabajar con idiomas personalizados.

¿Necesito crear mi propio archivo `.traineddata` para cada idioma personalizado en IronOCR?

No, no es necesario crear un archivo `.traineddata` para cada idioma personalizado. Puede usar los archivos `.traineddata` existentes si están disponibles. Sin embargo, si un idioma específico no es compatible, puede que necesite crear uno con las herramientas de Tesseract.

¿Qué formatos de salida admite IronOCR cuando se utilizan idiomas personalizados?

IronOCR admite varios formatos de salida al usar idiomas personalizados, como texto plano, que puede imprimirse en la consola o guardarse en un archivo de texto. El texto extraído puede manipularse según sea necesario.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más
¿Listo para empezar?
Nuget Descargas 5,044,537 | Versión: 2025.11 recién lanzado