IRONSOFTWAREHOME

IronOCR ile Büyük PDF Dosyalarını İşleme

Curtis Chau
Curtis Chau
Updated: 29 Haziran 2026

Büyük çok sayfalı PDF'lerde OCR çalıştırmak, bellek kullanımını artırabilir ve süreci çökertebilir. Genellikle suçlu olan, her sayfayı aynı anda belleğe yüklemektir.

System.OutOfMemoryException
Text

OcrInput.LoadPdf("large.pdf") tüm sayfaları tek seferde okur. IronOCR'un görüntüleme sistemi daha sonra her sayfayı aynı anda işler ve DPI varsayılan olarak 200 olduğundan, bellek kullanımı hızla artar. Büyük bir belgede bu, OutOfMemoryException veya kaynak tıkanması anlamına gelir.

Çözüm

Çözüm, PDF'yi bir sayfa bir sayfa işleyip, render DPI'sini metin kalitesinin izin verdiği kadar düşük tutmaktır.

1. Sayfa Sayısını Alın

Kaç sayfa olduğunu öğrenmek için belgeyi IronPdf.PdfDocument (veya herhangi bir PDF kütüphanesi) ile açın.

using var pdf = IronPdf.PdfDocument.FromFile(pdfPath);
var pageCount = pdf.PageCount;
C#

2. Her seferinde bir sayfa yükleyin

Sayfalar boyunca döngü yapın ve her birini ayrı ayrı OcrInput.LoadPdfPage("file.pdf", pageIndex, dpi) ile yükleyin. Görsel kalite korunuyorsa, belleği korumak için DPI'yı 80 kadar düşürün.

3. Oku ve Birleştir

Her tek sayfalık girdiyi IronTesseract.Read()'a iletin ve sonucu StringBuilder'a ekleyin.

var ocr = new IronTesseract();
var pdfPath = "large.pdf";
using var pdf = IronPdf.PdfDocument.FromFile(pdfPath);
var pageCount = pdf.PageCount;
var textBuilder = new StringBuilder();
for (int i = 0; i < pageCount; i++)
{
    using var input = new OcrInput();
    input.LoadPdfPage(pdfPath, i, 80);
    var result = ocr.Read(input);
    textBuilder.Append(result.Text);
    textBuilder.Append(' '); // Add space between pages
}
Console.WriteLine(textBuilder.ToString().Trim());
C#

Her OcrInput üzerindeki using, bir sonraki yinelemeden önce sayfanın görüntü verilerini serbest bırakır, bu yüzden bellek sayfa sayısıyla büyümek yerine döngü boyunca sabit kalır.

Seçenek: Önce PDF'yi Sıkıştırın

Çok karmaşık veya görüntü ağırlıklı dosyalar için, sayfa bazlı döngü hala zorlanabilir. IronPDF'nin Sıkıştırma API'sini kullanarak PDF'yi OCR'dan önce sıkıştırın, böylece IronOCR'nin işlemesi gereken görüntü verisi azalır. Bu, taranmış veya görüntü ağırlıklı belgelerde en çok fayda sağlar.

Doğrudan bir akışa sıkıştırın, ardından o akışı OcrInput'a yükleyin:

var pdf = PdfDocument.FromFile(pdfPath);
var stream = pdf.CompressPdfToStream(CompressStructTree: true);
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
ocrInput.LoadPdfPage(stream, 1);
C#

Bir PDF gömülü görüntüler içerdiğinde, veriyi daha fazla küçültmek için sıkıştırma sırasında JpegQuality'ı düşürün:

var pdf = PdfDocument.FromFile(@"D:\hugePdf.pdf");
var stream = pdf.CompressPdfToStream(JpegQuality: 75, CompressStructTree: true);
C#
Uyarı: Aynı MemoryStream'i döngü yinelemeleri arasında yeniden kullanmak mı? Her okumadan önce pozisyonunu 0'a sıfırlayın. Bir akış okunduktan sonra tüketilir, bu yüzden pozisyon sıfırlanmazsa sonraki okuma başarısız olur.

Hata Ayıklama İpuçları

  • DPI'yı düşürün: metin hala okunabilir olduğunda, bellek kullanımını keskin bir şekilde azaltan 80 ile 100 aralığındaki değerler.
  • Büyük dosyalarda LoadPdf()'dan kaçının: belge küçük olduğunda tamamını tek seferde okuyun.
  • Erken İmha Edin: bellek sayfalar arasında serbest bırakılsın diye OcrInputusing ifadeleri içine sarın.
  • Dikkatli paralelleştirin: makinada yedek bellek ve CPU olduğunda sayfaları eşzamanlı çalıştırın; bu, büyük PDF'lerde geri teper.
Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.

...
Daha Fazla Oku

Başlamaya Hazır mısınız?

Nuget Downloads 6,236,385Sürüm:2026.9yeni yayınlandı

Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez
PDF için C# NuGet Kütüphanesi
NuGet ile yükleyin

Sürüm: 2026.9

PM > Install-Package IronOcr
nuget.org/packages/IronOcr/
  1. Çözüm Gezgini'nde Referanslar'a sağ tıklayın, NuGet Paketlerini Yönet
  2. "IronOCR" aratıp seçin
  3. Paketi seçin ve yükleyin
C# PDF DLL
DLL İndir

Sürüm: 2026.9

veya buradan Windows Yükleyicisini indirin.

  1. IronOCR'u ~/Libs gibi bir yere indirip sıkıştırmasını açın, Çözüm dizininizde
  2. Visual Studio Çözüm Gezgini'nde, Referanslar'a sağ tıklayın. Gözat'ı seçin, "IronOCR.dll"

$999'dan itibaren lisanslar

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez