OCR zawiesza się na dużych plikach PDF z językiem angielskim w trybie Fast jako językiem wtórnym

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

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)
$vbLabelText   $csharpLabel

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)
$vbLabelText   $csharpLabel

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ę.

OstrzeżenieZawieszenie nie generuje żadnego wyjątku ani wpisu do logu. Wykonanie po prostu zatrzymuje się na ocr.Read(), więc zakleszczone zapytanie to jedyny symptom, na który należy zwrócić uwagę.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 6,175,195 | Wersja: 2026.7 właśnie wydany
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package IronOcr
uruchom próbkę obserwuj, jak twój obraz staje się tekstem z możliwością wyszukiwania.