Tesseract C# vs IronOCR: Hangi OCR Kütüphanesini .NET'te Kullanmalısınız?
.NET Framework 4.5 kod tabanınız hala OCR katmanını çalıştırıyorsa ve Patagames'ten Tesseract.Net.SDK'nin .NET 6,.NET 8veya herhangi bir Linux Docker imajı karşısında derlenmeyeceğini yakın zamanda keşfettiyseniz, bu makalenin incelediği tam takas noktasına ulaştınız demektir. Tesseract.Net.SDK, .NET Framework 2.0'dan 4.5'e kadar hedeflenmiştir, sadece Windows'ta yerel ikili dosyalarla gelir ve ücretsiz Tesseract motorunun üzerine ticari bir lisans ücreti talep eder — ekipleri tam o anda, çoğu kuruluş iş yüklerini kapsüllenmekte ve çalışma ortamlarını güncellemektedir.
Tesseract.Net.SDK'nin Anlaşılması
Tesseract.Net.SDK, Patagames tarafından satılan açık kaynak Tesseract OCR motorunun etrafında ticari bir .NET kılıfıdır. Ürün, önceden derlenmiş Tesseract binarylerini Windows x86 ve x64 için paketler, C/C++ Tesseract API'sını yönetilen .NET yüzeyine sarar ve bu paketi Tesseract.Net.SDK paket kimliği altında NuGet üzerinden sunar.
Ürün, .NET Framework 4.5'in dağıtım temel alındığı ve Windows Sunucu'nun tek hedef olduğu bir dönem için inşa edilmiştir. Bu dönem çoğu ekip için sona erdi, fakat SDK bu tempoya ayak uydurmadı. Resmi destek matrisi .NET Framework 2.0, 3.0, 3.5, 4.0 ve 4.5'tir. .NET Core, .NET Standard, .NET 5, .NET 6, .NET 7,.NET 8ve.NET 9desteklenmemektedir. Linux desteklenmiyor.macOSdesteklenmiyor. Neredeyse yalnızca Linux tabanlı imajları çalıştıran Docker konteynerleri desteklenmiyor.
Tesseract.Net.SDK'nın ana mimari özellikleri:
- Çalışma zamanı hedefi: Sadece .NET Framework 2.0–4.5; .NET Core veya modern .NET çalışma zamanları yok
- Platform: Sadece Windows x86 ve x64; Windows'a özgü yerel kütüphanelere yapılan P/Invoke çağrıları, Windows olmayan herhangi bir host üzerinde
DllNotFoundExceptionfırlatacaktır. - Tessdata yönetimi: Diller derlenmez; geliştiriciler Tesseract GitHub deposundan
.traineddatadosyalarını indirir,bin/tessdata/klasörüne yerleştirir ve her dosyanın build aksiyonunu Visual Studio'da yapılandırır. - Thread güvenliği:
OcrApiörnekleri thread-güvenli değil; paralel işler her iş parçacığı başına bir motor örneği gerektirir, her biri belleğe 40–100 MB dil verisi yükler - Ön-İşleme: Dahili yok; eğik, gürültülü veya düşük çözünürlüklü görüntüler, OpenCV veya ImageMagick gibi harici bir kütüphane gerektirir
- PDF girişi: Doğal bir şekilde desteklenmiyor; geliştiriciler, OCR'den önce PDF sayfalarını geçici resim dosyalarına dönüştürmek için PdfiumViewer gibi ikinci bir kütüphane kurarlar
- Geliştirici: Patagames bir bireysel geliştirici tarafından işletilmektedir; SLA yok, kurumsal destek katmanı yok ve geliştirici kullanılabilir duruma gelmezse yedeği yok
Pratikte Miras Kalan .NET Framework Hedefleme
.NET Framework 4.5 üzerindeki sert sınır sadece bir onay kutusu değildir — aşağıya doğru her mimari kararı şekillendirir. Tesseract.Net.SDK'a bağlı bir proje, .csproj'ında <TargetFramework>net8.0</TargetFramework>'yi hedefleyemez. mcr.microsoft.com/dotnet/sdk:8.0 kullanılarak bir GitHub Actions koşucusu tarafından inşa edilemez. Bir Linux konteyneri çalıştıran bir Kubernetes pod'una dağıtılamaz. Kurumun geri kalanı o hattı aşar hareket ederken, OCR servisi bir yetim olur.
SDK'nın kendi başlatım kodu bunu doğrudan açığa çıkarır. tesseract-net-sdk-basic-ocr.cs içindeki temel kullanım deseni, açık bir Windows platformu koruması içerir:
// Install: Install-Package Tesseract.Net.SDK
// Platform: Windows ONLY (.NET Framework 2.0-4.5)
using Patagames.Ocr;
public string ExtractTextSimple(string imagePath)
{
// Platform check — Tesseract.Net.SDK is Windows-only
if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
throw new PlatformNotSupportedException(
"Tesseract.Net.SDK only supports Windows.");
}
// Verify tessdata exists
if (!Directory.Exists(@".\tessdata"))
{
throw new DirectoryNotFoundException(
"tessdata folder not found. Download traineddata files from GitHub.");
}
using (var api = OcrApi.Create())
{
api.Init(Languages.English); // loads eng.traineddata (~40 MB)
return api.GetTextFromImage(imagePath);
}
}
// Install: Install-Package Tesseract.Net.SDK
// Platform: Windows ONLY (.NET Framework 2.0-4.5)
using Patagames.Ocr;
public string ExtractTextSimple(string imagePath)
{
// Platform check — Tesseract.Net.SDK is Windows-only
if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
throw new PlatformNotSupportedException(
"Tesseract.Net.SDK only supports Windows.");
}
// Verify tessdata exists
if (!Directory.Exists(@".\tessdata"))
{
throw new DirectoryNotFoundException(
"tessdata folder not found. Download traineddata files from GitHub.");
}
using (var api = OcrApi.Create())
{
api.Init(Languages.English); // loads eng.traineddata (~40 MB)
return api.GetTextFromImage(imagePath);
}
}
Imports Patagames.Ocr
Imports System.Runtime.InteropServices
Imports System.IO
Public Function ExtractTextSimple(ByVal imagePath As String) As String
' Platform check — Tesseract.Net.SDK is Windows-only
If Not RuntimeInformation.IsOSPlatform(OSPlatform.Windows) Then
Throw New PlatformNotSupportedException("Tesseract.Net.SDK only supports Windows.")
End If
' Verify tessdata exists
If Not Directory.Exists(".\tessdata") Then
Throw New DirectoryNotFoundException("tessdata folder not found. Download traineddata files from GitHub.")
End If
Using api = OcrApi.Create()
api.Init(Languages.English) ' loads eng.traineddata (~40 MB)
Return api.GetTextFromImage(imagePath)
End Using
End Function
İki savunma kontrolü, tek bir OCR çalışmasına başlamadan önce görülür: Windows'u doğrulayın, tessdata'yı doğrulayın. Herhangi bir Windows olmayan konak üzerinde, yöntem çalıştırıcıya ulaşmadan önce atar. Tessdata klasörü dağıtım sırasında kopyalanmamış olan her makinede, tekrar atar. Her iki kontrol da standart kalıp değildir — her ikisi de geliştiricilerin üretimde karşılaştığı başarısızlık modlarını temsil eder.
IronOCR'u Anlamak
IronOCR, optimize edilmiş Tesseract 5 motoru, otomatik görüntü ön işleme, yerel PDF girişi ve Windows, Linux, macOS, Docker, Azure ve AWS genelinde platformlar arası destekle inşa edilmiş ticari bir .NET için OCR kütüphanesidir. Harici yerel kütüphane yapılandırması, tessdata klasör yönetimi ve platforma özgü dağıtım betikleri olmadan tek bir NuGet paketi olarak gelir.
Anahtar özellikler:
- Çalışma zamanı desteği: .NET Framework 4.6.2 ve sonraki, .NET Core 2.0 ve sonraki, .NET 5, 6, 7, 8 ve 9; tüm desteklenen çalışma zamanları genelinde tek bir paket ikili dosyası çalışır
- Platform desteği: Windows x86/x64, Linux x64, macOS; Docker konteynerlerine, Azure App Service,AWS Lambdave Kubernetes podlarına aynı şekilde dağıtılır
- Önişleme: Dahili filtreler —
Deskew(),DeNoise(),Contrast(),Binarize(),EnhanceResolution(),Sharpen(),Rotate()ve daha fazlası — motor çalıştırılmadan önceOcrInputnesnesi aracılığıyla uygulanır - PDF girişi: Yerel;
input.LoadPdf()taranmış ve dijital PDF'leri ikincil bir kütüphane olmadan kabul eder; şifre korumalı PDF'ler parolayı bir parametre olarak geçirir - Aranabilir PDF çıkışı:
result.SaveAsSearchablePdf(), herhangi bir taranmış belgeyi tek bir çağrıda metinle aranabilir bir PDF'ye dönüştürür - Thread güvenliği:
IronTesseractörnekleri thread-güvenli; tek bir örnek, bellek tahsisatı çoğaltılmadan tüm iş parçacıklarına hizmet eder - Dil desteği: İlk kullanımda otomatik indirilen, manuel dosya yerleştirme gereksinimi olmayan, ayrı NuGet dil paketi paketleri olarak yüklenen 125+ dil
- Lisanslama: Lite kademesi için $999 ile başlayarak süresiz tek seferlik satın alma; no per-document or per-transaction billing
Özellik Karşılaştırması
| Özellik | Tesseract.Net.SDK | IronOCR |
|---|---|---|
| .NET Framework desteği | 2.0-4.5 sadece | 4.6.2+ |
| Modern .NET (5/6/7/8/9) | Hayır | Evet |
| Windows dağıtımı | Evet | Evet |
| Linux dağıtımı | Hayır | Evet |
| Docker konteynerleri | Hayır | Evet |
| PDF girişi (yerel) | Hayır | Evet |
| Otomatik ön işlem | Hayır | Evet |
| İş parçacığı güvenli motor | Hayır | Evet |
Ayrıntılı Özellik Karşılaştırması
| Özellik | Tesseract.Net.SDK | IronOCR |
|---|---|---|
| Çalışma Zamanı Uyumluluğu | ||
| .NET Framework 2.0–4.5 | Evet | Hayır |
| .NET Framework 4.6.2+ | Hayır | Evet |
| .NET Core 2.x/3.x | Hayır | Evet |
| .NET 5 | Hayır | Evet |
| .NET 6 | Hayır | Evet |
| .NET 7 | Hayır | Evet |
| .NET 8 | Hayır | Evet |
| .NET 9 | Hayır | Evet |
| Platform Desteği | ||
| Windows x86/x64 | Evet | Evet |
| Linux x64 | Hayır | Evet |
| macOS | Hayır | Evet |
| Docker (Linux imajı) | Hayır | Evet |
| Azure App Service (Linux) | Hayır | Evet |
| AWS Lambda | Hayır | Evet |
| Kubernetes pod | Hayır | Evet |
| Giriş Kaynakları | ||
| Görüntü dosyaları (BMP, PNG, JPEG, TIFF) | Evet | Evet |
| PDF girişi (yerel) | Hayır | Evet |
| Şifre korumalı PDF | Hayır | Evet |
| Bayt dizisi / Akış | Evet | Evet |
| Ön işlem | ||
| Hizalama | Hayır (harici kütüphane) | Yerleşik |
| Gürültü azaltma | Hayır (harici kütüphane) | Yerleşik |
| Kontrast artırma | Hayır (harici kütüphane) | Yerleşik |
| İkili hale getirme | Hayır (harici kütüphane) | Yerleşik |
| Çözünürlük iyileştirmesi | Hayır (harici kütüphane) | Yerleşik |
| Çıktı | ||
| Düz metin | Evet | Evet |
| Aranabilir PDF | Hayır | Evet |
| hOCR içeri aktarma | Hayır | Evet |
| Yapısal veri (koordinatlarla birlikte kelimeler, satırlar, paragraflar) | Hayır | Evet |
| Güven skoru | Evet (GetMeanConfidence()) |
Evet (result.Confidence) |
| Dil Desteği | ||
| Dil sayımı | 120+ (manuel indirme) | 125+ (NuGet paketleri) |
| Otomatik dil indirme | Hayır | Evet |
| Konu İşleme | ||
| İş parçacığı güvenli motor örneği | Hayır | Evet |
| Dahili paralel işleme | Hayır | Evet |
| İş parçacığı başına bellek yükü | ~40–100 MB motor başına | Paylaşılan tek örnek |
| Lisanslama | ||
| Lisans modeli | Ticari tek seferlik | Süresiz tek seferlik |
| Giriş fiyatı | ~$20–50 | $999 |
| Belge başına faturalama | Hayır | Hayır |
| Kurumsal destek / SLA | Hayır | Evet |
.NET Sürüm Desteği ve Çalışma Zamanı Uyumluluğu
Bu iki kütüphane arasındaki en önemli fark, API tasarımı veya doğruluk değil, çalışma zamanı uyumluluğudur.
Tesseract.Net.SDK Yaklaşımı
Tesseract.Net.SDK, .NET Framework 2.0'dan 4.5'e kadar hedef alır. Bağlı olduğu her proje, bu çerçeve sürümlerinden birine yönelmelidir. Taşıma karşılaştırma dosyası, bu kısıtlamayı kurulum bölümünde doğrular:
// Install: Install-Package Tesseract.Net.SDK
// License: Commercial (Patagames)
// Platform: Windows ONLY (.NET Framework 2.0-4.5)
//
// Requirements:
// - tessdata folder must exist in bin/Debug/ or bin/Release/
// - Download traineddata files from https://github.com/tesseract-ocr/tessdata
// - Windows operating system (no Linux/macOS support)
using Patagames.Ocr;
// Multi-language setup — all traineddata files must be manually downloaded
using (var api = OcrApi.Create())
{
// Combine languages with bitwise OR
api.Init(Languages.English | Languages.German | Languages.French);
string text = api.GetTextFromImage(imagePath);
return text;
}
// Install: Install-Package Tesseract.Net.SDK
// License: Commercial (Patagames)
// Platform: Windows ONLY (.NET Framework 2.0-4.5)
//
// Requirements:
// - tessdata folder must exist in bin/Debug/ or bin/Release/
// - Download traineddata files from https://github.com/tesseract-ocr/tessdata
// - Windows operating system (no Linux/macOS support)
using Patagames.Ocr;
// Multi-language setup — all traineddata files must be manually downloaded
using (var api = OcrApi.Create())
{
// Combine languages with bitwise OR
api.Init(Languages.English | Languages.German | Languages.French);
string text = api.GetTextFromImage(imagePath);
return text;
}
Imports Patagames.Ocr
' Install: Install-Package Tesseract.Net.SDK
' License: Commercial (Patagames)
' Platform: Windows ONLY (.NET Framework 2.0-4.5)
'
' Requirements:
' - tessdata folder must exist in bin/Debug/ or bin/Release/
' - Download traineddata files from https://github.com/tesseract-ocr/tessdata
' - Windows operating system (no Linux/macOS support)
' Multi-language setup — all traineddata files must be manually downloaded
Using api = OcrApi.Create()
' Combine languages with bitwise OR
api.Init(Languages.English Or Languages.German Or Languages.French)
Dim text As String = api.GetTextFromImage(imagePath)
Return text
End Using
using (var api = OcrApi.Create()) deseni kalıplaşmış .NET Framework 2.0'dır. C# 8.0 using var bildirimi yerine C# 1.0 using ifadesini kullanır. Ad alanı Patagames.Ocr. Dil kombinasyonu, bir enum üzerinde bitwise OR kullanır. Bu kodun hiçbiri, SDK tarzı bir proje dosyasında bir net6.0 veya net8.0 hedef çerçeveye karşı derlenmez, çünkü Tesseract.Net.SDK kendisi uyumlu bir derleme üretmiyor.
.NET Framework 4.5'te sıkışıp kalan ekipler, orada isteyerek sıkışmıyor. Oradalar çünkü bağımlılıklar — bazen bir OCR kütüphanesi dahil — yükseltilemez. Tesseract.Net.SDK seçmek, bu bağımlılık zincirini derinleştirir.
IronOCR Yaklaşımı
IronOCR, .NET 9'a kadar ve her modern .NET çalışma zamanı ile .NET Framework 4.6.2'yi destekler. Aynı paket ikili tümünde çalışır. .NET Framework 4.8'den .NET 8'e bir projeyi yükseltmek OCR kütüphanesini değiştirmeyi gerektirmez.
// Works on .NET Framework 4.6.2, .NET Core, .NET 5/6/7/8/9
// Same NuGet package, same API, same results
using IronOcr;
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY";
var ocr = new IronTesseract();
ocr.Language = OcrLanguage.English;
ocr.AddSecondaryLanguage(OcrLanguage.German);
ocr.AddSecondaryLanguage(OcrLanguage.French);
var result = ocr.Read("document.jpg");
Console.WriteLine(result.Text);
Console.WriteLine($"Confidence: {result.Confidence}%");
// Works on .NET Framework 4.6.2, .NET Core, .NET 5/6/7/8/9
// Same NuGet package, same API, same results
using IronOcr;
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY";
var ocr = new IronTesseract();
ocr.Language = OcrLanguage.English;
ocr.AddSecondaryLanguage(OcrLanguage.German);
ocr.AddSecondaryLanguage(OcrLanguage.French);
var result = ocr.Read("document.jpg");
Console.WriteLine(result.Text);
Console.WriteLine($"Confidence: {result.Confidence}%");
Imports IronOcr
' Works on .NET Framework 4.6.2, .NET Core, .NET 5/6/7/8/9
' Same NuGet package, same API, same results
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY"
Dim ocr As New IronTesseract()
ocr.Language = OcrLanguage.English
ocr.AddSecondaryLanguage(OcrLanguage.German)
ocr.AddSecondaryLanguage(OcrLanguage.French)
Dim result = ocr.Read("document.jpg")
Console.WriteLine(result.Text)
Console.WriteLine($"Confidence: {result.Confidence}%")
Dil enuemleri üzerinde bitwise OR yok. Tessdata klasörü yok. Platform kontrolü yok. IronTesseract kurulum rehberi, tüm desteklenen çalışma zamanları için yapılandırma seçeneklerini tek bir belgede kapsar.
Orta taşıma sırasında ekipler için pratik sonuç: bir ASP.NET Core 8 projesi ile bir eski .NET Framework 4.8 projesi aynıIronOCR hizmet katmanını paylaşabilir. Koşullu derleme yok, ayrı kütüphane sürümleri yok, uyumsuz API'leri örtbas etmeye yönelik soyutlama katmanı yok.
Platform Kapsamı ve Konteyner Dağıtımı
Tesseract.Net.SDK Yaklaşımı
Tesseract.Net.SDK, Windows x86 ve x64 yerel ikilileri ile birlikte gelir. Tesseract motorunu başlatan P/Invoke çağrıları, bu Windows DLL'lerine çözümlenir. Bir Linux host üzerinde — mcr.microsoft.com/dotnet/aspnet:8.0, ubuntu veya alpine tabanlı herhangi bir Docker konteynerı dahil — DLL yüklenemez ve uygulama çalışma zamanında DllNotFoundException fırlatır.
tesseract-net-sdk-pdf-processing.cs'dan paralel işleme örneği, Linux'u düşünmeden önce bile Windows'un kendisinde toplu işler için bunun ne anlama geldiğini açıklar:
// Windows-only: Parallel.ForEach with separate engine per thread
// Each engine loads ~40-100 MB per language
Parallel.ForEach(
imagePaths,
new ParallelOptions { MaxDegreeOfParallelism = 4 },
imagePath =>
{
// WARNING: Must create separate OcrApi for each thread!
// Memory usage: 4 threads × 100MB = 400MB minimum
using (var api = OcrApi.Create())
{
api.Init(Languages.English);
string text = api.GetTextFromImage(imagePath);
results[imagePath] = text;
}
});
// Windows-only: Parallel.ForEach with separate engine per thread
// Each engine loads ~40-100 MB per language
Parallel.ForEach(
imagePaths,
new ParallelOptions { MaxDegreeOfParallelism = 4 },
imagePath =>
{
// WARNING: Must create separate OcrApi for each thread!
// Memory usage: 4 threads × 100MB = 400MB minimum
using (var api = OcrApi.Create())
{
api.Init(Languages.English);
string text = api.GetTextFromImage(imagePath);
results[imagePath] = text;
}
});
Dört paralel iş parçacığı, dört motor örneği, 400 MB'lık dil verisi aynı anda yüklendi — ve bu sadece İngilizce için. Alman ve Fransız ekleyin ve bu temel iki katına çıkar. SDK, bunu hafifletmek için hiçbir havuz mekanizması sunmaz. Mimari, genellikle her pod başına bellek tavanları uygulayan modern konteyner kaynak sınırları ile uyumsuzdur.
Azure Functions üzerinde bir Linux Tüketim Planına giden bir yol yoktur, AWS Lambda'ya giden bir yol yoktur (ki bu Amazon Linux üzerinde çalışır), ve Google Cloud Run'a giden bir yol yoktur. Her büyük sunucusuz platform Linux'a varsayılan olarak ayarlanır. Tesseract.Net.SDK, tasarımla tümünden dışlanmıştır.
IronOCR Yaklaşımı
IronOCR, Debian tabanlı görüntülerde libgdiplus için ek bir yapılandırma gerektirmeden Docker'a dağıtılır. Docker dağıtım rehberi, hem Linux hem de Windows konteynerlerini kapsar. Aynı şey Linux dağıtımları, Azure ve AWS için de geçerlidir.
Thread güvenliği, IronTesseract içine inşa edilmiştir. Bir örnek tüm paralel işçileri çalıştırır:
// Cross-platform: Windows, Linux, macOS, Docker
// Single instance — thread-safe
using IronOcr;
var ocr = new IronTesseract();
// Single engine instance shared across all threads
//Hayırmemory multiplication
Parallel.ForEach(imagePaths, imagePath =>
{
using var input = new OcrInput();
input.LoadImage(imagePath);
var result = ocr.Read(input);
SaveResult(imagePath, result.Text);
});
// Cross-platform: Windows, Linux, macOS, Docker
// Single instance — thread-safe
using IronOcr;
var ocr = new IronTesseract();
// Single engine instance shared across all threads
//Hayırmemory multiplication
Parallel.ForEach(imagePaths, imagePath =>
{
using var input = new OcrInput();
input.LoadImage(imagePath);
var result = ocr.Read(input);
SaveResult(imagePath, result.Text);
});
Imports IronOcr
' Cross-platform: Windows, Linux, macOS, Docker
' Single instance — thread-safe
Dim ocr As New IronTesseract()
' Single engine instance shared across all threads
' No memory multiplication
Parallel.ForEach(imagePaths, Sub(imagePath)
Using input As New OcrInput()
input.LoadImage(imagePath)
Dim result = ocr.Read(input)
SaveResult(imagePath, result.Text)
End Using
End Sub)
Dört iş parçacığı, bir motor örneği, bellekte bir dil veri kopyası. Geçiş ölçütleri içeren bir çok iş parçacığı örneği için IronOCR belgeleri yapılandırma seçeneklerini ayrıntılı olarak kapsar.
PDF İşleme
Tesseract.Net.SDK Yaklaşımı
Tesseract.Net.SDK'nin PDF desteği yoktur. tesseract-net-sdk-pdf-processing.cs dosyası, başlığında bu sınırlama konusunda açık:
// CRITICAL LIMITATION:
// Tesseract.Net.SDK does NOT support PDF input natively.
// You must use a separate library to convert PDF pages to images first.
// This example uses PdfiumViewer, but alternatives include:
// - iTextSharp
// - Ghostscript.NET
// - Docnet.Core
Sonuç, çoklu kütüphane boru hattıdır. PdfiumViewer yükleyin. Her PDF sayfasını 200–300 DPI'da bir Bitmap'ye işleyin. Bu bitmap'i geçici bir dosyaya yazın. Geçici dosyada api.GetTextFromImage() çalıştırın. Geçici dosyayı silin. Her sayfa için tekrarlayın. Belge ortasında kısmi hatalar için hata yönetimini uygulayın. Hafızayı açık bir şekilde yönetin — ProcessLargeTiff örneği, büyük belgelerde bellek yetersizliği hatalarını önlemek için her on sayfada GC.Collect()'ı zorunlu kılar.
Bu, basitleştirilmiş bir örnek değil, gerçek üretim kodudur. Sadece Windows üzerinde, sadece .NET Framework üzerinde çalışır ve ikinci bir ticari veya açık kaynak bağımlılığı gerektirir ki bu da kendi dağıtım yönetimini gerektirir.
IronOCR Yaklaşımı
IronOCR, PDF'leri yerel olarak okur. İkincil kütüphane yok, geçici dosyalar yok, sayfa render döngüsü yok:
// Native PDF OCR — no PdfiumViewer, no temp files
using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadPdf("scanned-report.pdf"); // native PDF support
var result = ocr.Read(input);
// Access page-by-page results
foreach (var page in result.Pages)
{
Console.WriteLine($"Page {page.PageNumber}: {page.Text}");
}
// Or produce a searchable PDF output
result.SaveAsSearchablePdf("searchable-report.pdf");
// Native PDF OCR — no PdfiumViewer, no temp files
using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadPdf("scanned-report.pdf"); // native PDF support
var result = ocr.Read(input);
// Access page-by-page results
foreach (var page in result.Pages)
{
Console.WriteLine($"Page {page.PageNumber}: {page.Text}");
}
// Or produce a searchable PDF output
result.SaveAsSearchablePdf("searchable-report.pdf");
Imports IronOcr
Dim ocr As New IronTesseract()
Using input As New OcrInput()
input.LoadPdf("scanned-report.pdf") ' native PDF support
Dim result = ocr.Read(input)
' Access page-by-page results
For Each page In result.Pages
Console.WriteLine($"Page {page.PageNumber}: {page.Text}")
Next
' Or produce a searchable PDF output
result.SaveAsSearchablePdf("searchable-report.pdf")
End Using
Şifre korumalı PDF'ler, bir ek parametre gerektirir: input.LoadPdf("encrypted.pdf", Password: "secret"). Belirli sayfa aralıkları input.LoadPdfPages("document.pdf", 1, 10) kullanır. PDF giriş rehberi ve araştırabilir PDF yapma rehberi tüm varyantları kapsar.
PDF OCR örneği, güven testi ve yapısal çıkış dahil tam deseni gösterir. araştırabilir PDF örneği, taranabilir PDF'lerin indekslendiği ve aranabilir hale geldiği belge arşivleme kullanım durumunu gösterir.
Görüntü Ön İşleme ve Gerçek Dünya Belge Kalitesi
Tesseract.Net.SDK Yaklaşımı
Tesseract motorları resim kalitesine duyarlıdır. Eğik, düşük çözünürlükte veya gürültülü belgeler, ön işleme yapılmadığında önemli ölçüde bozulmuş çıktı üretir. Tesseract.Net.SDK bunun hiçbirini sunmaz.
Taşıma karşılaştırma dosyası, bu boşluğu doğrudan miktarlar:
// Tesseract.Net.SDK: No preprocessing available
// Direct OCR on problematic image = garbage output
using (var api = OcrApi.Create())
{
api.Init(Languages.English);
// Direct OCR on problematic image — poor results
string text = api.GetTextFromImage(imagePath);
return text;
// To preprocess, you need:
// 1. Install Emgu CV or OpenCvSharp
// 2. Implement Hough transform for skew detection
// 3. Implement affine rotation for deskew
// 4. Implement FastNlMeansDenoising for noise reduction
// 5. Handle all the native OpenCV dependencies
// This is often 200+ lines of code
}
// Tesseract.Net.SDK: No preprocessing available
// Direct OCR on problematic image = garbage output
using (var api = OcrApi.Create())
{
api.Init(Languages.English);
// Direct OCR on problematic image — poor results
string text = api.GetTextFromImage(imagePath);
return text;
// To preprocess, you need:
// 1. Install Emgu CV or OpenCvSharp
// 2. Implement Hough transform for skew detection
// 3. Implement affine rotation for deskew
// 4. Implement FastNlMeansDenoising for noise reduction
// 5. Handle all the native OpenCV dependencies
// This is often 200+ lines of code
}
Imports Tesseract.Net.SDK
' Tesseract.Net.SDK: No preprocessing available
' Direct OCR on problematic image = garbage output
Using api = OcrApi.Create()
api.Init(Languages.English)
' Direct OCR on problematic image — poor results
Dim text As String = api.GetTextFromImage(imagePath)
Return text
' To preprocess, you need:
' 1. Install Emgu CV or OpenCvSharp
' 2. Implement Hough transform for skew detection
' 3. Implement affine rotation for deskew
' 4. Implement FastNlMeansDenoising for noise reduction
' 5. Handle all the native OpenCV dependencies
' This is often 200+ lines of code
End Using
Yorum abartı değil. .NET'te OpenCV kullanarak bir üretim kalitesinde deskew yüzey uygulaması, başlangıç, açı tespiti, matris hesaplaması ve eğik dönüşümün 100-200 satırıdır. Bu kod daha sonra test edilmeli, korunmalı ve dağıtılmalı—kendi doğal bağımlılık zinciri ile ki bu yine sadece Windows üzerinde çalışır.
IronOCR Yaklaşımı
IronOCR, ilk sınıf API yöntemleri olarak OcrInput üzerinde önişleme paketler. Tesseract.Net.SDK'de bir OpenCV entegrasyonunu gerektiren aynı işlemler burada tekil yöntem çağrılarıdır:
//Yerleşikpreprocessing — no external library required
using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("skewed-invoice-scan.jpg");
input.Deskew(); // automatic angle detection and correction
input.DeNoise(); // scanner artifact removal
input.Contrast(); // contrast enhancement
input.Binarize(); // optimal threshold conversion
input.EnhanceResolution(300); // scale low-DPI images to 300 DPI
var result = ocr.Read(input);
Console.WriteLine($"Confidence: {result.Confidence}%");
//Yerleşikpreprocessing — no external library required
using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("skewed-invoice-scan.jpg");
input.Deskew(); // automatic angle detection and correction
input.DeNoise(); // scanner artifact removal
input.Contrast(); // contrast enhancement
input.Binarize(); // optimal threshold conversion
input.EnhanceResolution(300); // scale low-DPI images to 300 DPI
var result = ocr.Read(input);
Console.WriteLine($"Confidence: {result.Confidence}%");
Imports IronOcr
Dim ocr As New IronTesseract()
Using input As New OcrInput()
input.LoadImage("skewed-invoice-scan.jpg")
input.Deskew() ' automatic angle detection and correction
input.DeNoise() ' scanner artifact removal
input.Contrast() ' contrast enhancement
input.Binarize() ' optimal threshold conversion
input.EnhanceResolution(300) ' scale low-DPI images to 300 DPI
Dim result = ocr.Read(input)
Console.WriteLine($"Confidence: {result.Confidence}%")
End Using
görüntü kalitesi düzeltme rehberi ve görüntü renk düzeltme rehberi, tüm mevcut filtreleri öncesi/sonrası doğruluk karşılaştırmalarıyla birlikte belgeler. düşük kalite tarama örneği, tipik gerçek dünya belge koşulları için doğruluk geliştirme rakamlarını gösterir.
Özellikle taranmış belge iş akışları için taranmış belge işleme rehberi, yön tayinini, çok sayfalı işlemeyi ve yığın geçiş optimizasyonunu tek bir makalede kapsar.
API Eşleme Başvurusu
| Tesseract.Net.SDK | IronOCR Karşılığı | Notlar |
|---|---|---|
Install-Package Tesseract.Net.SDK |
dotnet add package IronOcr |
IronOCR tüm modern çalışma zamanlarını destekler |
using Patagames.Ocr; |
using IronOcr; |
|
OcrApi.Create() |
new IronTesseract() |
IronTesseract iş parçacığı güvenlidir; uygulama başına bir örnek |
api.Init(Languages.English) |
ocr.Language = OcrLanguage.English |
IronOCR, yöntem çağrısı yerine özellik atamasını kullanır |
api.Init(Languages.English \|Languages.German) |
ocr.AddSecondaryLanguage(OcrLanguage.German) |
Bitwise OR gerekliliği yok |
api.GetTextFromImage(path) |
ocr.Read("path.jpg").Text |
Doğrudan zincirleyin veya OcrInput kullanın |
OcrImage.FromFile(path) |
new OcrInput("path.jpg") |
OcrInput dosya, akış, bayt dizisi, URL, bitmap kabul eder |
OcrImage.FromBitmap(bmp) |
input.LoadImage(bitmap) |
|
api.SetImage(img); api.GetText() |
ocr.Read(input).Text |
OcrInput, SetImage'nın eşdeğeridir |
api.GetMeanConfidence() |
result.Confidence |
Sonuç nesnesi ile iade edilir |
api.SetRectangle(x, y, w, h) |
new CropRectangle(x, y, w, h), input.LoadImage()'ye geçirildi |
Bölge tabanlı OCR rehberi |
api.SetVariable("tessedit_char_whitelist", x) |
ocr.Configuration.WhiteListCharacters = x |
|
api.SetVariable("tessedit_char_blacklist", x) |
ocr.Configuration.BlackListCharacters = x |
|
(no PDF support) |
input.LoadPdf("file.pdf") |
İkinci bir kütüphane gerektirmez |
(no preprocessing) |
input.Deskew(); input.DeNoise(); vb. |
Tüm ön hazırlıklar dâhildir |
(no structured output) |
result.Words, result.Lines, result.Pages |
Kelime seviyesinde koordinatlar ve güven |
(no searchable PDF) |
result.SaveAsSearchablePdf("out.pdf") |
Tek bir çağrıyla araştırılabilir PDF çıkışı |
Ekipler Tesseract.Net.SDK'den IronOCR'a Geçmeyi Düşünürken
.NET Güncellemesi Konuyu Zorluyor
En yaygın tetikleyici, OCR kalitesinden memnuniyetsizlik değil — planlı bir .NET Framework güncellemesinin OCR katmanında sert bir durma noktasına ulaşmasıdır. .NET Framework 4.7'den .NET 8'e bir belge yönetim uygulamasını yükselten bir ekip, Tesseract.Net.SDK'ın uyumlu bir hedef çerçeve derlemesi üretmediğini keşfeder. Yükseltme ya duraklar ya da OCR hizmeti, HTTP üzerinden iletişim kuran ayrı bir Windows-yalnız işlemi olarak izole edilir — bu da bir ağ sıçraması, ayrı bir dağıtım eseri ve süresiz olarak bakımı yapılması gereken bir uyum şimi ekler. Aktif bir yükseltme yolunda olan çoğu ekip için hiçbiri kabul edilebilir değildir. Tesseract.Net.SDK'yi IronOCR ile değiştirmek, engelleyiciyi ortadan kaldırır ve upgrading temiz bir şekilde devam etmesine izin verir çünkü IronOCR, hem eski .NET Framework 4.6.2+'de hem de.NET 8hedefinde aynı anda çalışır, hizmetin kademeli olarak taşınmasına izin verir.
İşleme Boru Hatının Konteynerleştirilmesi
Belge işleme yükleri, konteynerleştirme için öncelikli adaylar arasındadır: durumsuz, CPU bağımlı ve yatay ölçeklendirmeden faydalanır. Boruhattının geri kalanını konteynerleştiren bir ekip, Tesseract.Net.SDK'nin temel imaj Linux olduğunda Docker imaj yapı adımında başarısız olacağını keşfeder. Seçenekler Windows konteynerleridir — ki bu lisanslama maliyeti taşır, daha büyük imaj boyutları ve çoğu yönetilen Kubernetes hizmetiyle uyumsuzluk taşır ki bu varsayılan olarak Linux düğüm havuzlarına sahiptir — veya gerçekte Linux'u destekleyen bir kütüphanedir. IronOCR, standart bir Dockerfile ile herhangi bir Linux konteynerine dağıtılır. Docker dağıtım rehberi, hem Debian hem de Alpine baz imajları için tam Dockerfile yapılandırmasını sağlar.
Paralel Yığın İşleme Ölçekli Olarak
Tesseract.Net.SDK kullanarak dört paralel çalışanın ve günde 50.000 belge işleyen bir fatura işleme pipeline, İngilizce veri yüklü dört motor örneği için en az 400 MB ayırır. İkinci bir dil ekleyin ve bu ikiye katlanır. OpenCV üzerinden ön işleme ekleyin ve bellek tüketimi daha da yükselir. Pod başına 2 GB bellek sınırı olan bir sınırlı sunucuda veya konteynerleştirilmiş bir dağıtımda bu aritmetik bir dağıtım engelleyici haline gelir. IronOCR'un iş parçacığı güvenli tek örnek modeli, iş parçacığı başına bellek çarpanını ortadan kaldırır. Bir motor örneği, dört, sekiz veya on altı paralel çalışanı tek bir kez yüklü bir dil modeli ile işler. çok iş parçacığı örneği, yapılandırmayı gösterir.
İkincil Bir Bağımlılık Olmadan PDF Yerel İş Akışları
Özellikle belgeleri ana olarak PDF formatında alan — sigorta talepleri, sözleşmeler, faturalar, vergi formları — kuruluşlar Tesseract.Net.SDK ile birleşmiş bir sorunla karşılaşır: bir PDF render kütüphanesini OCR kütüphanesinin yanında sürdürmek zorundadırlar. PdfiumViewer veya iText bir güvenlik yaması yayınladığında, her iki kütüphanenin de eş güdümlü güncellemeleri ve regresyon testleri gereklidir. PDF kütüphanesi belirli bir PDF sürümünü render ederken bir hata meydana geldiğinde, OCR hattı belirgin bir kök neden olmadan hurda metin üretir. IronOCR'un yerel PDF desteği, bu iki kütüphane yığınını bire indirir. Tek bir paket kurulumu ikisini de değiştirir. PDF OCR kullanım durumu sayfası, tam iş akışını kapsar.
Kurumsal Dağıtım Gereksinimleri
Tesseract.Net.SDK için bir Patagames lisansı, tek bir bireysel geliştiriciden e-posta ve forum desteği ile birlikte gelir. SLA, garanti edilen yanıt süresi ve bir yükseltme yolu yoktur. Düzenlemeye tabi sektörlerdeki uygulamalar için — sağlık hizmetleri, finans, devlet — tedarik ekipleri giderek daha fazla yazılım satıcılarının belgelenmiş SLA'lar, güvenlik açıklama işlemleri ve kurumsal devamlılık garantileri sağlamasını talep eder. Patagames, bir bireysel geliştirici tarafından işletildiği için bu gereksinimleri karşılayamaz. IronOCR, kurumsal tedarik gereksinimleri ile uyumlu, özel destek, güvenlik süreçleri ve lisanslama şartlarına sahip ticari bir varlık olan Iron Software tarafından geliştirilmiştir. lisanslama sayfası, mevcut destek seviyelerini belgeler.
Genel Geçiş Dikkat Edilmesi Gereken Hususlar
Ad Alanı ve Örnek Deseni
Tesseract.Net.SDK'den IronOCR'a geçiş kod değişikliği yüzeyde. using Patagames.Ocr;, using IronOcr; ile değiştirin. OcrApi.Create(), new IronTesseract() ile değiştirin. api.Init(Languages.English), ocr.Language = OcrLanguage.English ile değiştirin. Arayan kodun işlevsel mantığı değişmez. Basit bir çıkarma hizmeti bir saatten kısa sürede taşınabilir.
// Before: Tesseract.Net.SDK
using Patagames.Ocr;
using (var api = OcrApi.Create())
{
api.Init(Languages.English);
return api.GetTextFromImage(imagePath);
}
// After: IronOCR
using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage(imagePath);
return ocr.Read(input).Text;
// Before: Tesseract.Net.SDK
using Patagames.Ocr;
using (var api = OcrApi.Create())
{
api.Init(Languages.English);
return api.GetTextFromImage(imagePath);
}
// After: IronOCR
using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage(imagePath);
return ocr.Read(input).Text;
Imports Patagames.Ocr
Using api = OcrApi.Create()
api.Init(Languages.English)
Return api.GetTextFromImage(imagePath)
End Using
Imports IronOcr
Dim ocr As New IronTesseract()
Using input As New OcrInput()
input.LoadImage(imagePath)
Return ocr.Read(input).Text
End Using
görüntüden metin okuma öğreticisi ve temel OCR örneği, giriş doğrulama ve güven testi ile tamamlanmış çalıştırılabilir örnekler sağlar.
Tessdata Klasörünün Kaldırılması
Göçten sonra, tüm tessdata/ klasörü projeden silinebilir. IronOCR, dil verilerini NuGet paketleri ile birlikte paketler. Tüm .traineddata referanslarını .csproj'den çıkarın, dağıtım betiklerinden tessdata dizinini kaldırın ve eğitimli veriler dosyalarını kopyalayan herhangi bir CI/CD boru hattı adımını kaldırın. IronOcr.Languages.* NuGet paketleri, normal yarıklı paket geri yükleme adımının bir parçası olarak dil verilerini yükler — ayrı bir indirme yok, manuel klasör yapılandırması yok, Visual Studio'da oluşturma eylemi ayarları yok. çoklu diller rehberi, dil paketi kurulmasını kapsar.
PDF Hattı Basitleştirme
OCR'dan önce PDF sayfalarını render etmek amacıyla PdfiumViewer, iText veya Ghostscript.NET yükleyen herhangi bir kod tamamen kaldırılabilir. Tüm çok adımlı geçici dosyaya işleme ardından OCR boru hattını input.LoadPdf(pdfPath) ile değiştirin. Özellikle şifre korumalı PDF'ler, belirli sayfa aralıkları ve 100 sayfayı aşan büyük belgeler için test yapın — bunlar, doğrulama sırasında davranış farklılıklarını en çok açığa çıkarabilecek sınır vakalarıdır.
İş Parçacığı Modeli ve Örnek Ömrü
Tesseract.Net.SDK kodu, genellikle thread-güvenliği sorunlarından kaçınmak için istek başına veya thread başına bir OcrApi örneği oluşturur.IronOCR thread-güvenlidir, bu yüzden IronTesseract örneği bir kez (uygulama başlangıcında veya bir DI konteynerinde bir singleton olarak) oluşturulmalı ve tüm istekler arasında yeniden kullanılmalıdır. Her istek başına yeni bir IronTesseract() oluşturmak, başlatma yükünü boşa harcar. ASP.NET Core'un hizmet konteynerinde bunu bir singleton olarak kaydedin ve gerektiğinde enjeksiyon yapın.
Ek IronOCR Yetenekleri
Yukarıda doğrudan karşılaştırılan yeteneklerin ötesinde, IronOCR'da Tesseract.Net.SDK'da bulunmayan özellikler:
- OCR sırasında barkod okuma aynı belge geçişinde gömülü QR kodları ve doğrusal barkodları okur ve ayrı bir barkod tarama adımını ortadan kaldırır; barkod OCR örneğine yapılandırma için bakın
- Async OCR, ASP.NET Core istek boru hatlarına engellemeyen entegrasyonu sağlamak için
ReadAsync()sunar - Tablo çıkarımı, finansal tablolar, faturalar ve raporlardan yapısal veri çıkarımına olanak tanıyan belgelerdeki tablo yapısını tanımlar
- Pasaport ve Kimlik okuma, makineyle okunabilir seyahat belgeleri ve kimlik kartları için özel ayarlanmış tanıma uygulanır
- İlerleme takibi, çok sayfalı belge işlem sırasında sayfalara göre ilerleme olayları tetikler, uzun süregelen toplu işler için doğru ilerleme göstergelerine olanak sağlar
.NET Uyumluluğu ve Geleceğe Hazırlık
IronOCR, .NET Framework 4.6.2'den mevcut.NET 9sürümüne kadar destekler ve yayımlandıkça gelecekteki .NET sürümlerini de desteklemeye devam edecek. Kütüphane, geniş çerçeve uyumluluğu için netstandard2.0'yi hedefler ve aynı NuGet paketi içinde Windows, Linux vemacOSiçin platforma özel yerel binaryler sağlar. .NET Framework'ten.NET 8veya .NET 9'a yükselten ekipler OCR kütüphanesini değiştirmek zorunda değiller — aynı IronOcr paket referansı her iki platformda da derlenir ve çalışır. Tesseract.Net.SDK, .NET Framework 2.0'dan 4.5'e kadar hedef alır ve modern .NET desteği için yayınlanmış bir yol haritası yoktur; Bu, her Kasım ayında yeni bir ana sürüm yayınlayan mevcut Microsoft .NET sürüm kadansıyla yapısal olarak uyumsuzdur. Herhangi bir takım, altı ay veya üç yıl içinde .NET Framework 4.5'in ötesine geçmeyi planlıyorsa, bu geçiş noktasında Tesseract.Net.SDK'yi başka hiçbir değerlendirme kriteri olmaksızın değiştirmesi gerekecektir.
Sonuç
Tesseract.Net.SDK belirli ve daralan bir nişi işgal eder: Windows Server uygulaması, .NET Framework 4.5'e daimi bağlılığı olan ve tessdata'yı yapılandırmak, dışarıdan ön işleme eklemek ve ayrı bir kütüphane ile PDF işleme hattı oluşturmak için 15-40 saatlik geliştirici zamanını bütçesine dahil etmiş bir takım için doğru seçimdir. Lisans ücreti maliyet değildir. Maliyet, bunun çevresindeki her şeydir.
Bu makalenin başında belirtilen sorun — bir OCR bağımlılığının .NET 8'i hedefleyemeyeceğini yükseltmenin ortasında keşfetmek — bir uç durum değildir. Bu, modern .NET çalıştırma ortamlarını açıkça desteklemeyen bir kütüphane seçmenin öngörülebilir sonucudur.IronOCR bu kısıtlamayı tamamen kaldırır: bir NuGet paketi, .NET Framework 4.6.2'den .NET 9'a kadar her çalıştırma ortamını hedefler, Windows, Linux,macOSve Docker'da çalışır ve iki ek bağımlılık ve yüzlerce satır entegrasyon kodu gerektirecek ön işleme ve PDF desteği içerir.
Şu anda istikrarlı bir .NET Framework 4.5 uygulamasında Tesseract.Net.SDK çalıştıran ve çalıştırma ortamını modernize etmeyi planlamayan ekipler için mevcut durum devam eder — bir konteyner zorunluluğu, Linux geçişi veya bir çerçeve yükseltmesi meselesi dayatana kadar. Aktif olarak modernleşen — servisleri konteynırlaştıran, .NET 8'e geçen, Linux altyapısına taşınan veya toplu belge hatlarını ölçeklendiren ekipler için Tesseract.Net.SDK bir engel, bir temel değil. Eski API'den IronOCR'a geçiş birkaç saatlik kod değişiklikleri gerektirir. Alternatif, modernize edilmiş bir mimarinin kenarında yetim bir Windows'a özel hizmet tutmak olacaktır.
IronOCR lisans ücreti, Patagames SDK ücretinden daha yüksek olabilir, ancak gerçek maliyet karşılaştırması, bir üretim ortamında tek bir belgenin işlenmeden önce Tesseract.Net.SDK'nin gerektirdiği 15-40 saatlik tessdata yapılandırmasını, dış ön işleme kütüphane entegrasyonunu ve PDF işleme hattının birleştirilmesini dahil etmelidir. Bu kurulum getirisi yukarıdaki karşılaştırmada belgelenmiştir ve ekip büyüdükçe veya belge hacimleri arttıkça azalmaz.
Sıkça Sorulan Sorular
Tesseract .NET SDK (resmi) nedir?
Tesseract .NET SDK (resmi), geliştiriciler ve işletmeler tarafından resimlerden ve belgelerden metin çıkarmak için kullanılan bir OCR çözümüdür. IronOCR ile birlikte .NET uygulama geliştirme için değerlendirilen birkaç OCR seçeneğinden biridir.
IronOCR, Tesseract .NET SDK (resmi) ile karşılaştırıldığında .NET geliştiricileri için nasıl bir performans sergiliyor?
IronOCR, IronTesseract'ı temel motoru olarak kullanan bir NuGet-native .NET OCR kütüphanesidir. Tesseract .NET SDK (resmi) ile karşılaştırıldığında, daha basit dağıtım (SDK kurulumları yok), sabit fiyatlandırma ve COM interop veya bulut bağımlılığı olmadan temiz bir C# API sunar.
IronOCR, Tesseract .NET SDK (resmi) kurulumu yapmaktan daha mı kolay?
IronOCR, tek bir NuGet paketi aracılığıyla yüklenir. SDK kurulumları, kopyalamak için lisans dosyaları, kaydedilecek COM bileşenleri veya yönetilecek ayrı çalışma zamanı ikili dosyaları yoktur. Tüm OCR motoru paket içinde yer alır.
Tesseract .NET SDK (resmi) ve IronOCR arasında hangi doğruluk farkları vardır?
IronOCR, standart iş belgeleri, faturalar, makbuzlar ve taranmış formlar için yüksek tanıma doğruluğu sağlar. Çok kötü durumda olan belgeler ya da nadir yazılar için ise doğruluk, kaynak kalitesine göre değişiklik gösterebilir. IronOCR, düşük kaliteli girişlerde tanımayı geliştirmek için görüntü ön işleme filtreleri içerir.
IronOCR, PDF metin çıkarma desteği sunuyor mu?
Evet. IronOCR, tek bir çağrıda hem yerel PDF'lerden hem de taranmış PDF görüntülerinden metin çıkarır. Çok sayfalı TIFF dosyaları, görüntüler ve akıntılar da desteklenir. Taranmış PDF'ler için, OCR sayfa bazında uygulanır ve her sayfa için sonuç nesneleri sağlanır.
Tesseract .NET SDK (resmi) lisanslaması ile IronOCR nasıl karşılaştırılır?
IronOCR, sayfa veya tarama başına ücret içermeyen sabit oranlı bir süresiz lisans kullanır. Yüksek belge hacmi işleyen kuruluşlar, hacme rağmen aynı lisans maliyetini öder. Ayrıntılar ve hacim fiyatlandırması IronOCR lisans sayfasında mevcuttur.
IronOCR hangi dilleri destekliyor?
IronOCR, ayrı NuGet dil paketleri aracılığıyla 127 dili destekler. Bir dil eklemek için tek bir 'dotnet add package IronOcr.Languages.{Language}' komutu gerekir. Manuel dosya yerleştirme veya yol yapılandırması gerekmez.
.NET projesine IronOCR'yi nasıl kurarım?
NuGet üzerinden kurun: 'Install-Package IronOcr' Package Manager Console'da veya 'dotnet add package IronOcr' CLI'de. Ek dil paketleri aynı şekilde yüklenir. Yerel SDK kurucusu gerekmez.
IronOCR, Tesseract .NET SDK'den farklı olarak Docker ve konteyner tabanlı dağıtımlar için uygun mu?
Evet. IronOCR, NuGet paketi aracılığıyla Docker konteynerlerinde çalışır. Lisans anahtarı, bir ortam değişkeni aracılığıyla ayarlanır. Lisans dosyaları, SDK yolları veya OCR motoru için hacimlerin bağlanmasına gerek yoktur.
IronOCR'u satın almadan önce Tesseract .NET SDK ile karşılaştırarak deneyebilir miyim?
Evet. IronOCR deneme modu, belgeleri işler ve çıkış üzerine bir filigran eklemeli OCR sonuçları döndürür. Lisans satın almadan önce kendi belgeleriniz üzerinde doğruluğu kontrol edebilirsiniz.
IronOCR, metin çıkarma yanında barkod okuma desteği sunar mı?
IronOCR, metin çıkarma ve OCR'ye odaklanır. Barkod okuma için Iron Software, eşlik eden bir kütüphane olan IronBarcode'u sağlar. Her ikisi de ayrı ayrı veya Iron Suite paketi olarak mevcuttur.
Tesseract .NET SDK (resmi) üzerinden IronOCR'ye geçiş yapmak kolay mı?
Tesseract .NET SDK'den (resmi) IronOCR'a geçiş genellikle başlatma dizilerini IronTesseract örneklemesi ile değiştirmeyi, COM yaşam döngüsü yönetimini kaldırmayı ve API çağrılarını güncellemeyi içerir. Çoğu geçiş, kod karmaşıklığını önemli ölçüde azaltır.

