IronOCR ile Dynamsoft OCR Arasında Bir Karşılaştırma
Microsoft Office Document Imaging (MODI), MS Office 2003 ve 2007 ile birlikte gelen ve geliştiricilerin taranan görüntülerden doğrudan bir COM tabanlı nesne modeli aracılığıyla metin çıkarma işlemi yapmasını sağlayan bir OCR bileşeniydi. Yıllardır, MODI.Document sınıfı, TIFF ve BMP görüntü dosyalarını Visual Studio çözümleri içinde makine tarafından okunabilir metne dönüştüren sayısız belge dijitalleştirme projesini güçlendirdi.
Ancak, MODI'nin hikayesi büyük bir kusur barındırıyor: Microsoft, Office 2010 ve sonraki versiyonlarından kaldırdı ve geliştiriciler, OCR işlevlerini canlı tutmak için eski Office kurulumlarına veya bağımsız yükleyicilere güvenmek zorunda kaldı. Herhangi bir modern .NET projesi için çapraz platform dağıtımı hedefleyen, bulut ortamlarına veya güncel Windows sürümlerine, MODI ciddi bir sürtüşme sunar.
Bu makale,MODI OCRC#'ın bir .NET optik karakter tanıma kütüphanesi olan IronOCR ile kod uygulanması, özellikler, platform desteği ve lisanslama açısından nasıl karşılaştırıldığını incelemektedir. Miras kodu sürdürüyor olun veya yeni bir projeye başlıyor olun, buradaki ayrıntılar doğru seçimi yapmanıza yardımcı olacaktır.
IronOCR'u 30 gün ücretsiz deneyin ve aşağıdaki kod örneklerini takip edin.
Kıyaslama Genel Olarak Nasıl Dağılıyor?
| Kategori | MODI OCR | IronOCR |
|---|---|---|
| Çekirdek Mimari | COM Interop; Microsoft Office Document Imaging DLL referansı gerektirir | Saf .NET kütüphanesi; C# için optimize edilmiş Tesseract 5 motoru |
| Platform Desteği | Sadece Windows; Bilgisayarda 2003/2007 Office kurulu olmalıdır | Windows, Linux, macOS, Azure, Docker, iOS, Android |
| Görüntü Formatları | TIFF, MDI, BMP | TIFF, PNG, JPEG, BMP, GIF, PDF, çok sayfalı görüntüler |
| Dil Desteği | ~22 dili miLANG parametresi ile | 125+ dil, NuGet dil paketleri aracılığıyla |
| OCR Doğruluğu | Temiz, standart yazı karakterine sahip belgelerde yüksek | Otomatik görüntü düzeltme filtreleri ile %99,8+ |
| Çıktı Seçenekleri | Layout nesnesinden düz metin | Düz metin, aranabilir PDF, yapısal veri (sayfalar, satırlar, kelimeler, barkodlar) |
| Kurulum | Ofis yükleyici + Çözüm Gezgini'nde COM referansı | NuGet paketi: Install-Package IronOcr |
| Aktif Geliştirme | Office 2007'den sonra durdurulmuş | Düzenli güncellemeler ile aktif olarak sürdürülen |
| Lisanslama | Uygun Microsoft Office lisansı gereklidir | Süresiz lisanslar $999'den; ücretsiz 30 günlük deneme |
| Destek | Yalnızca topluluk forumları | E-posta, canlı sohbet ve telefon aracılığıyla doğrudan mühendislik desteği |
How Does Microsoft Office Document Imaging Perform OCR in C#?
MODI, bir COM tabanlı nesne modeli aracılığıyla optik karakter tanıma (OCR) yapar. Süreç, bir MODI.Document nesnesi oluşturarak, bir görüntü dosya yolunu yükleyerek ve OCR yöntemini başlatarak görüntüleri analiz edip karakterleri tanımlamayla başlar. OCR işlemi tamamlandıktan sonra, metin ve düzen bilgileri her sayfanın Image ve Layout nesneleri aracılığıyla erişilebilir.
Bir Visual Studio projesinde MODI kullanmak için, Microsoft Office Document Imaging Tür Kütüphanesi'ne bir referans eklenmelidir. Çözüm Gezgini'nde, Referanslar klasörüne sağ tıklayın, COM sekmesini seçin ve uygun MODI sürümünü (Office 2003 için 11.0 veya Office 2007 için 12.0) seçin.
// MODI OCR: Extracting text from a scanned TIFF document
private string ExtractTextFromImage(string path)
{
string extractedText = "";
MODI.Document doc = new MODI.Document();
try
{
// Create the document object from the image file path
doc.Create(path);
// Run optical character recognition with English language
doc.OCR(MODI.MiLANGUAGES.miLANG_ENGLISH, true, true);
// Access the first page image and retrieve recognized text
MODI.Image modiImage = (MODI.Image)doc.Images[0];
extractedText = modiImage.Layout.Text;
}
catch (Exception ex)
{
// Handle OCR exceptions for unsupported or corrupted image files
string message = ex.Message;
Console.WriteLine(message);
}
finally
{
doc.Close(false);
System.Runtime.InteropServices.Marshal.ReleaseComObject(doc);
}
return extractedText;
}
// MODI OCR: Extracting text from a scanned TIFF document
private string ExtractTextFromImage(string path)
{
string extractedText = "";
MODI.Document doc = new MODI.Document();
try
{
// Create the document object from the image file path
doc.Create(path);
// Run optical character recognition with English language
doc.OCR(MODI.MiLANGUAGES.miLANG_ENGLISH, true, true);
// Access the first page image and retrieve recognized text
MODI.Image modiImage = (MODI.Image)doc.Images[0];
extractedText = modiImage.Layout.Text;
}
catch (Exception ex)
{
// Handle OCR exceptions for unsupported or corrupted image files
string message = ex.Message;
Console.WriteLine(message);
}
finally
{
doc.Close(false);
System.Runtime.InteropServices.Marshal.ReleaseComObject(doc);
}
return extractedText;
}
' MODI OCR: Extracting text from a scanned TIFF document
Private Function ExtractTextFromImage(ByVal path As String) As String
Dim extractedText As String = ""
Dim doc As New MODI.Document()
Try
' Create the document object from the image file path
doc.Create(path)
' Run optical character recognition with English language
doc.OCR(MODI.MiLANGUAGES.miLANG_ENGLISH, True, True)
' Access the first page image and retrieve recognized text
Dim modiImage As MODI.Image = CType(doc.Images(0), MODI.Image)
extractedText = modiImage.Layout.Text
Catch ex As Exception
' Handle OCR exceptions for unsupported or corrupted image files
Dim message As String = ex.Message
Console.WriteLine(message)
Finally
doc.Close(False)
System.Runtime.InteropServices.Marshal.ReleaseComObject(doc)
End Try
Return extractedText
End Function
Bu işlev, standart MODI iş akışını gösterir: Create yöntemi dosyayı yükler, OCR yöntemi belirtilen bir dili kullanarak tanıma yapar ve Layout.Text çıkarılan dizeyi sağlar. return extractedText ifadesi çıktıyı çağrıcıya teslim eder.
MODI, keskin, yüksek çözünürlüklü belge görüntüleri için makul bir doğruluk sunarken, önemli sınırlamaları vardır. Sadece TIFF, MDI ve BMP formatlarını destekler. Uygulamayı çalıştıran her bilgisayarda, üretim sunucuları dahil, bir Microsoft Office kurulumu gerektirir. Düşük kaliteli görüntüleri taramak, eğiklik düzeltmek veya dijital gürültüyü azaltmak için yerleşik destek yoktur. Ayrıca, MODI COM Interop'a dayandığı için .NET Core, .NET 5+ veya herhangi bir platformlar arası senaryoda kullanılamadığından, modern dağıtım hedefleri, Docker kapsayıcıları veya Azure App Services gibi, için uygun değildir.
Modern bir .NET Kütüphanesi OCR İşlevselliğini Nasıl Ele Alıyor?
IronOCR, COM Interop yaklaşımını, tek bir NuGet paketi üzerinden yüklenen saf bir .NET API ile değiştirir. IronTesseract sınıfı, dikkatlice optimize edilmiş bir Tesseract 5 motorunu kapsar ve OcrInput sınıfı, herhangi bir dış bağımlılığa gerek kalmadan, görüntü yükleme, ön işlem ve çok formatlı destek işlemlerini yürütür.
using IronOcr;
// Create the IronTesseract OCR engine object
var ocr = new IronTesseract();
using var input = new OcrInput();
// Load images in any common format — PNG, JPEG, TIFF, BMP, GIF, or PDF
input.LoadImage("scanned-document.tiff");
// Apply filters to correct low-quality scans automatically
input.Deskew(); // Straighten skewed page images
input.DeNoise(); // Remove digital noise from scanning artifacts
// Read text from the processed document
var result = ocr.Read(input);
// Output plain text
Console.WriteLine(result.Text);
// Save as a searchable PDF for document management system integration
result.SaveAsSearchablePdf("output-searchable.pdf");
using IronOcr;
// Create the IronTesseract OCR engine object
var ocr = new IronTesseract();
using var input = new OcrInput();
// Load images in any common format — PNG, JPEG, TIFF, BMP, GIF, or PDF
input.LoadImage("scanned-document.tiff");
// Apply filters to correct low-quality scans automatically
input.Deskew(); // Straighten skewed page images
input.DeNoise(); // Remove digital noise from scanning artifacts
// Read text from the processed document
var result = ocr.Read(input);
// Output plain text
Console.WriteLine(result.Text);
// Save as a searchable PDF for document management system integration
result.SaveAsSearchablePdf("output-searchable.pdf");
Imports IronOcr
' Create the IronTesseract OCR engine object
Dim ocr As New IronTesseract()
Using input As New OcrInput()
' Load images in any common format — PNG, JPEG, TIFF, BMP, GIF, or PDF
input.LoadImage("scanned-document.tiff")
' Apply filters to correct low-quality scans automatically
input.Deskew() ' Straighten skewed page images
input.DeNoise() ' Remove digital noise from scanning artifacts
' Read text from the processed document
Dim result = ocr.Read(input)
' Output plain text
Console.WriteLine(result.Text)
' Save as a searchable PDF for document management system integration
result.SaveAsSearchablePdf("output-searchable.pdf")
End Using
IronOCR Çıktısı

Yukarıdaki kod, IronOCR'nin tiff taramasını sadece birkaç satırda tam bir OCR hattından geçirdiğini gösteriyor. OcrInput nesnesi nerdeyse herhangi bir görüntü dosyasını veya PDF belgesini kabul ederken, Deskew() ve DeNoise(), MODI'yi kötü sonuçlar üretmesine neden olacak yaygın tarama hatalarını düzeltir. Read metodu, her biri güven puanları ve koordinat bilgileriyle organize edilmiş sayfa, paragraf, satır ve kelime başına düzenlenmiş sadece düz metin değil, yapılı bir veri içeren bir OcrResult nesnesi döndürür.
Faturalar, formlar veya çok sayfalı TIFF dosyalarını işleyen projeler için,IronOCRbilgisayarla görme yeteneklerini de içerir ve aynı geçişte metin bölgelerini otomatik olarak bulur, barkod ve QR kod okuma özelliğine sahiptir, 125+'dan fazla dili NuGet paketleri olarak yükleyebilme desteği sunar.
Görsellerden Metin Çıkarma Söz Konusu Olduğunda Temel Farklılıklar Nelerdir?
Bu iki seçenek arasındaki gerçek fark, "kusursuz" örnek dosyaları kullanmayı bıraktığınızda ve gerçek dünya belgeleriyle uğraşmaya başladığınızda ortaya çıkar. Kahve lekeli, eğik sayfalar içeren, ya da akıllı telefonlardan düşük çözünürlükte fotoğraflar içeren karmaşık taramalar hakkında konuşuyoruz.
MODI farklı bir çağ için inşa edilmiştir, özellikle temiz, yüksek kontrastlı ofis belgeleri için. Elinizde yüksek kaliteli bir tarayıcıdan gelen bir TIFF dosyası varsa, işinizi görecektir. Ancak, görüntünüz biraz döndürülmüş ya da bir miktar dijital "gürültü" varsa, MODI doğruluğu düşer. Bu sorunları düzeltmek için yerleşik filtrelerden yoksun olduğundan, bu işlemi başlatmadan önce GDI+ya da System.Drawing gibi ikinci bir kütüphane kullanarak görselleri ön işlemden geçirmeniz gerekiyor. Belleği yönetmek de biraz zahmetlidir; Marshal.ReleaseComObject'i manuel olarak çağırmazsanız, üretimde muhtemelen hafıza sızıntısı ile karşılaşacaksınız.
IronOCR bu ağır işi sizin için kutudan çıktığı haliyle halleder. Görselleri temizlemek için özel kod yazmak yerine, sadece input.Deskew() veya input.DeNoise() çağırırsınız. Bu filtreler, belgenizin "çirkin" bile olsa motorun %99,8 doğruluk oranına ulaşmasını sağlamak için görüntüyü hazırlar.
Uzman İpucu: MODI'den geçiş yapıyorsanız, sadece kodu değiştirmekle kalmayın, layout verilerinden de faydalanın. MODI'den farklı olarak, size çoğunlukla dev bir metin "bloğu" sunarken, IronOCR, güven puanlarıyla paragrafları ve satırları ayırır. Bu, belgelerin gözle doğrulama için insana ihtiyaç duyabileceğini belirtmeniz gereken otomatik bir fatura işlemcisi oluşturuyorsanız hayat kurtarıcıdır.
Ayrıca IronOCR'nin çok sayfalı TIFF'leri ve PDF'leri tek bir nesne olarak ele aldığını belirtmekte fayda var. Eski MODI.Images koleksiyonu ile olduğu gibi manuel olarak görseller arasında döngü yapmanıza gerek yoktur. Bu sadece daha hızlı, daha temiz ve dürüst olmak gerekirse, çok daha az kırılgandır.
Geliştiriciler Eski Yaklaşımdan Nasıl Geçiş Yapabilir?
Mevcut bir projede MODI'yi değiştirmek oldukça basittir. Çekirdek geçiş, COM referansını bir NuGet paketi ile değiştirmeyi ve OCR yöntemi çağrılarını güncellemeyi içerir. İşte MODI deseninin modern eşdeğerine çevirisi:
using IronOcr;
// Replace: MODI.Document doc = new MODI.Document();
var ocr = new IronTesseract();
// Replace: doc.Create(filePath); with OcrInput
using var input = new OcrInput();
input.LoadImage("document.tiff"); // Accepts the same TIFF files MODI used
// Replace: doc.OCR(MODI.MiLANGUAGES.miLANG_ENGLISH, true, true);
ocr.Language = OcrLanguage.English;
// Replace: modiImage.Layout.Text
var result = ocr.Read(input);
string text = result.Text;
Console.WriteLine(text);
using IronOcr;
// Replace: MODI.Document doc = new MODI.Document();
var ocr = new IronTesseract();
// Replace: doc.Create(filePath); with OcrInput
using var input = new OcrInput();
input.LoadImage("document.tiff"); // Accepts the same TIFF files MODI used
// Replace: doc.OCR(MODI.MiLANGUAGES.miLANG_ENGLISH, true, true);
ocr.Language = OcrLanguage.English;
// Replace: modiImage.Layout.Text
var result = ocr.Read(input);
string text = result.Text;
Console.WriteLine(text);
Imports IronOcr
Dim ocr As New IronTesseract()
Using input As New OcrInput()
input.LoadImage("document.tiff") ' Accepts the same TIFF files MODI used
ocr.Language = OcrLanguage.English
Dim result = ocr.Read(input)
Dim text As String = result.Text
Console.WriteLine(text)
End Using
Haritalama neredeyse bire birdir: MODI.Document.Create, OcrInput.LoadImage olur, dil parametreleri ile OCR metodu ocr.Language artı ocr.Read olur ve Layout.Text, sonuç.Text olur. COM referansı, Office bağımlılığı, el ile belleği yönetmek için Marshal.ReleaseComObject'e gerek yok.
Doğrudan değişimin ötesinde, geçiş aynı zamanda, MODI'de mevcut olmayan özellikleri de açar: Linux ve macOS'a platformlar arası dağıtım, bulut ve konteyner dağıtımı, aranabilir PDF çıkışı ve özel yazı tipi eğitimi kabiliyetleri ile tam Tesseract 5 motoru.
Hangi Çözüm Modern OCR İhtiyaçlarına En İyi Uygun?
MODI, Microsoft Office'in her Windows bilgisayarında standart bir armatür olduğu bir dönemde kullanılmasını sağladı. Halihazırda Office 2003 veya 2007'ye bağımlı eski sistemleri sürdüren ekipler için hala çalışabilir, ancak ilerleme yolu olmayan sona ermiş bir yazılıma kırılgan bir bağımlılığı temsil eder.
Herhangi bir yeni proje veya modernizasyona karşı karşıya olan herhangi bir eski sistem için,IronOCR eksiksiz, aktif olarak sürdürülen bir çözüm sunar. Office bağımlılığını tamamen ortadan kaldırır, her büyük platformda çalışır, eski yaklaşımla tıkanan düşük kaliteli görselleri işler ve sadece düz metni aşıp çok daha ötesinde yapılandırılmış bir OCR çıktısı sunar. Kapsamlı dokümantasyon, doğrudan mühendislik desteği ve $999'den süresiz lisanslama ile, ölçeklenebilir üretim sınıfı belge işleme için geliştirilmiştir.
Üretimde OCR'yi dağıtmaya hazır mısınız? IronOCR lisanslama seçeneklerini keşfedin ve takımınız için en uygun olanı bulun.
Sıkça Sorulan Sorular
Microsoft Office Document Imaging (MODI) nedir?
Microsoft Office Document Imaging (MODI), MS Office 2003 ve 2007 ile birlikte gelen bir OCR bileşeniydi. Geliştiricilerin COM tabanlı bir nesne modeli kullanarak görüntülerden metin çıkarmasına olanak tanırdı.
MODI yerine neden IronOCR kullanmayı düşünmeliyim?
IronOCR, modern, tam desteklenen bir OCR kütüphanesi sunar, geliştirilmiş özellikler, daha yüksek doğruluk ve eski MODI bileşenine kıyasla .NET uygulamalarıyla daha iyi entegrasyon sağlar.
IronOCR, TIFF ve BMP görüntü dosyalarını işleyebilir mi?
Evet, IronOCR, çeşitli görüntü formatlarını işleyebilir ve TIFF ve BMP de dahil olmak üzere metni çıkarabilir, farklı belge dijitalleştirme ihtiyaçları için esneklik sağlar.
MODI'den IronOCR'a geçişin faydaları nelerdir?
IronOCR'a geçiş yapmak, daha gelişmiş OCR yeteneklerine, düzenli güncellemelere ve aktif desteğe erişim sağlar, böylece OCR projelerinizin geleceğe yönelik olduğundan emin olursunuz.
IronOCR, Visual Studio ile uyumlu mu?
Evet, IronOCR, Visual Studio ile tam uyumludur ve .NET projelerinize sorunsuz entegrasyon sağlar.
IronOCR'un doğruluğu MODI ile nasıl karşılaştırılır?
IronOCR, özellikle modern görüntü formatları ve karmaşık belgeler söz konusu olduğunda, daha eski olan MODI teknolojisine kıyasla metin tanımada daha yüksek doğruluk sağlamak üzere tasarlanmıştır.
IronOCR, geliştiricilere ne tür bir destek sunuyor?
IronOCR, geliştiricilerin uygulamalarına OCR işlevlerini entegre etmelerine yardımcı olmak için kapsamlı belgeler, kod örnekleri ve profesyonel destek sunar.
IronOCR için mevcut kod örnekleri var mı?
Evet, IronOCR, geliştiricilerin .NET uygulamalarında hızlı bir şekilde OCR uygulamaları için kullanabilecekleri çeşitli kod örnekleri sağlar.
Gerçek zamanlı metin çıkarma için IronOCR kullanılabilir mi?
IronOCR, taranan görüntü veya belgelerin anında işlenmesini gerektiren uygulamalar için uygun hale getiren gerçek zamanlı metin çıkarma yeteneğine sahiptir.
IronOCR, çok dilli metin tanımayı destekler mi?
Evet, IronOCR, belgeleri birden fazla dilde yüksek doğrulukla işleyebilmesi için çok dilli metin tanımayı destekler.

