OCR zawiesza się na dużych plikach PDF z językiem angielskim w trybie Fast jako językiem wtórnym
IronOCR może zawiesić się w trakcie przetwarzania dużych plików PDF, gdy OcrLanguage.EnglishFast jest dodany jako język wtórny. Nie jest zgłaszany żaden wyjątek i wykonanie nigdy nie zostaje wznowione, przez co zapytanie wydaje się działać w nieskończoność.
Execution stops at the ocr.Read() call. No exception is thrown and no error is logged.
Zawieszenie jest wywołane przez model EnglishFast, gdy znajduje się na liście języków wtórnych w systemie Windows. Zostało to odtworzone w naszych testach w przypadku IronOCR 2025.12.3, 2026.1.2, 2026.2.1 i 2026.3.3 do 2026.7.2. Do czasu opublikowania poprawionej wersji, traktuj każdą wersję w tym zakresie jako potencjalnie dotkniętą. Przeorganizowanie EnglishFast względem innych języków wtórnych nie pomaga.
Rozwiązanie
1. Znajdź konfigurację języków wtórnych
Zlokalizuj jakiekolwiek wywołanie AddSecondaryLanguage, które przekazuje OcrLanguage.EnglishFast w twojej konfiguracji OCR.
// This line causes the hang on large PDFs
ocr.AddSecondaryLanguage(OcrLanguage.EnglishFast);
// This line causes the hang on large PDFs
ocr.AddSecondaryLanguage(OcrLanguage.EnglishFast);
' This line causes the hang on large PDFs
ocr.AddSecondaryLanguage(OcrLanguage.EnglishFast)
2. Usuń EnglishFast i zostaw język angielski jako główny
Usuń lub zakomentuj wywołanie powodujące problem. Ustaw OcrLanguage.English jako główny język, aby zachować jakość rozpoznawania angielskiego, a inne twoje języki wtórne pozostaw bez zmian, są one nietknięte.
// ocr.AddSecondaryLanguage(OcrLanguage.EnglishFast);
var ocr = new IronTesseract
{
Language = OcrLanguage.English
};
ocr.AddSecondaryLanguage(OcrLanguage.Hindi);
ocr.AddSecondaryLanguage(OcrLanguage.Marathi);
// ocr.AddSecondaryLanguage(OcrLanguage.EnglishFast);
var ocr = new IronTesseract
{
Language = OcrLanguage.English
};
ocr.AddSecondaryLanguage(OcrLanguage.Hindi);
ocr.AddSecondaryLanguage(OcrLanguage.Marathi);
Imports IronOcr
Dim ocr As New IronTesseract With {
.Language = OcrLanguage.English
}
ocr.AddSecondaryLanguage(OcrLanguage.Hindi)
ocr.AddSecondaryLanguage(OcrLanguage.Marathi)
Usunięcie EnglishFast usuwa szybki model angielski, ale utrzymanie OcrLanguage.English jako głównego języka zapewnia pokrycie dla dokumentów z istotnymi fragmentami tekstu angielskiego.
3. Uruchom ponownie dotknięty plik PDF
Przetwórz dokument ponownie. Powinien teraz ukończyć przetwarzanie wszystkich stron bez zawieszania się.

