IronOCR ile C#'da PDF Nasıl Okunur
IronOCR, C#'da tek bir satır kodla PDF dosyalarından metin çıkartmaya olanak tanır, tüm PDF sürümlerini destekler ve Tesseract tabanlı motoru aracılıgıyla doğru OCR sonuçları sağlar.
PDF "Taşınabilir Belge Biçimi" anlamına gelir. Bu, herhangi bir kaynak belgenin yazı tiplerini, görüntülerini, grafikleri ve düzenini, oluşturulan uygulama ve platformdan bağımsız olarak koruyan Adobe tarafından geliştirilmiş bir dosya formatıdır. PDF dosyaları, genellikle, kullanılan yazılım veya donanımdan bağımsız olarak, tutarlı bir formatta belgeleri paylaşmak ve görmek icin kullanılır. IronOCR, eski PDF 1.0 spesifikasyonlarından en son PDF 2.0 standartlarına kadar çeşitli PDF belgelerini işler.
Hızlı Başlangıç: Bir PDF Dosyasını Saniyeler İçinde OCR
IronOCR ile OCR'yi hızlı bir şekilde yapılandırmak için PDF'nize işaret eden bir OcrPdfInput yapısı oluşturun, ardından Read'yi çağırın. Bu örnek, IronOCR kullanarak bir PDF'den metin çıkartmayı gösterir.
-
NuGet Paket Yöneticisi ile https://www.nuget.org/packages/IronOcr yükleyin
PM > Install-Package IronOcr -
Bu kod parçasını kopyalayıp çalıştırın.
using var result = new IronOcr.IronTesseract().Read(new IronOcr.OcrPdfInput("document.pdf", PdfContents.TextAndImages)); -
Canlı ortamınızda test etmek için dağıtın
Bugün projenizde IronOCR kullanmaya başlayın ücretsiz deneme ile
Minimal İş Akışı (5 adımda)
- PDF okumak için C# kütüphanesi indirin
- PDF Belgesini okumak için hazırlayın.
- OcrPdfInput nesnesini PDF dosya yoluyla oluşturun.
- İçeri aktarılan PDF üzerinde OCR uygulamak için
Readyöntemini kullanın. - Sayfa dizini listesini belirterek belirli sayfaları okuyun.
Tüm Bir PDF Dosyasını Nasıl Okurum?
OCR gerçekleştirmek için IronTesseract sınıfını oluşturarak başlayın. Daha sonra, ona PDF dosya yolunu geçirerek bir OcrPdfInput nesnesi oluşturmak için bir 'using' ifadesi kullanın. Son olarak, Read yöntemini kullanarak OCR gerçekleştirin. Bu yaklaşım, hem taranmış PDF'ler (görüntü tabanlı) hem de aranabilir PDF'ler (metin tabanlı) ile çalışır ve çeşitli PDF türlerinden metin çıkartma için uygundur.
/* :path=/static-assets/ocr/content-code-examples/how-to/input-pdfs-read-pdf.cs */
using IronOcr;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Add PDF
using var pdfInput = new OcrPdfInput("Potter.pdf");
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(pdfInput);
// Access the extracted text
string extractedText = ocrResult.Text;
System.Console.WriteLine(extractedText);
/* :path=/static-assets/ocr/content-code-examples/how-to/input-pdfs-read-pdf.cs */
using IronOcr;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Add PDF
using var pdfInput = new OcrPdfInput("Potter.pdf");
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(pdfInput);
// Access the extracted text
string extractedText = ocrResult.Text;
System.Console.WriteLine(extractedText);
Imports IronOcr
' Instantiate IronTesseract
Dim ocrTesseract As New IronTesseract()
' Add PDF
Using pdfInput As New OcrPdfInput("Potter.pdf")
' Perform OCR
Dim ocrResult As OcrResult = ocrTesseract.Read(pdfInput)
' Access the extracted text
Dim extractedText As String = ocrResult.Text
System.Console.WriteLine(extractedText)
End Using
Çoğu durumda, DPI özelliğini belirtmek gerekmez. Ancak, OcrPdfInput yapımında yüksek bir DPI numarası sağlamak okuma doğruluğunu artırabilir. Varsayılan DPI ayarlarının çoğu standart PDF belgeleri için genellikle yeterli, ancak özel belgeler ayarlamadan faydalanabilir.
DPI Ayarlarını Ne Zaman Ayarlamalıyım?
DPI (Inch başına Noktalar) ayarları, düşük çözünürlüklü taranmış belgeler veya küçük metin içeren PDF'lerle uğraşırken çok önemlidir. En iyi sonuçlar için DPI ayarlarını ayarlamayı düşünün:
-
200 DPI'nin altında taranmış belgelerle çalışma
-
Tarihi veya arşiv PDF'leri işleme
-
Karmaşık düzenlerle veya küçük yazı tipleriyle başa çıkma
- Varsayılan ayarlarla doğruluk sorunlarıyla karşılaşma
Çoğu OCR işlemi için 300 DPI önerilirken, yoğun metin veya büyük ayrıntılar içeren belgeler için 600 DPI gerekebilir.
IronOCR'un PDF dışında desteklediği dosya biçimleri nelerdir?
IronOCR, PDF'lerin ötesinde birçok dosya formatı için kapsamlı destek sunar. Çeşitli formatlardaki görüntüleri işleyebilirsiniz, bunlar:
-
Standart fotoğraflar için JPEG/JPG
-
Şeffaflık içeren görüntüler için PNG
-
Çok sayfalı belgeler için TIFF
-
Sıkıştırılmamış görüntüler için BMP
- Basit grafikler için GIF
Ayrıca, IronOCR PDF akışlarını doğrudan bellekten işleyebilir, web uygulamaları ve bulut hizmetleri için uygundur.
PDF İçerik Türleriyle Çalışma
PDF'leri işlerken, içerik türünü belirterek performansı optimize edebilirsiniz. PdfContents enum'u belirli içeriği hedeflemenize olanak tanır:
// For text-only PDFs (faster processing)
var textOnlyPdf = new OcrPdfInput("document.pdf", PdfContents.Text);
// For image-only PDFs (scanned documents)
var imageOnlyPdf = new OcrPdfInput("scanned.pdf", PdfContents.Images);
// For mixed content (default)
var mixedPdf = new OcrPdfInput("mixed.pdf", PdfContents.TextAndImages);
// For text-only PDFs (faster processing)
var textOnlyPdf = new OcrPdfInput("document.pdf", PdfContents.Text);
// For image-only PDFs (scanned documents)
var imageOnlyPdf = new OcrPdfInput("scanned.pdf", PdfContents.Images);
// For mixed content (default)
var mixedPdf = new OcrPdfInput("mixed.pdf", PdfContents.TextAndImages);
' For text-only PDFs (faster processing)
Dim textOnlyPdf = New OcrPdfInput("document.pdf", PdfContents.Text)
' For image-only PDFs (scanned documents)
Dim imageOnlyPdf = New OcrPdfInput("scanned.pdf", PdfContents.Images)
' For mixed content (default)
Dim mixedPdf = New OcrPdfInput("mixed.pdf", PdfContents.TextAndImages)
PDF'den Belirli Sayfalar Nasıl Okunur?
Bir PDF belgesi üzerindeki belirli sayfaları okurken, içeri aktarma için sayfa indeks numarasını belirtin. Bunu yapmak için, OcrPdfInput'yi yaparken sayfa indekslerinin listesini PageIndices parametresine geçirin. Unutmayın ki, sayfa indeksleri sıfır tabanlı numaralandırma kullanır. Bu özellik, yalnızca belirli sayfaların ilgili bilgileri içerdiği büyük belgelerle çalışırken özellikle faydalıdır.
:path=/static-assets/ocr/content-code-examples/how-to/input-pdfs-read-pdf-pages.cs
using IronOcr;
using System.Collections.Generic;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Create page indices list
List<int> pageIndices = new List<int>() { 0, 2 };
// Add PDF
using var pdfInput = new OcrPdfInput("Potter.pdf", PageIndices: pageIndices);
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(pdfInput);
Imports IronOcr
Imports System.Collections.Generic
' Instantiate IronTesseract
Dim ocrTesseract As New IronTesseract()
' Create page indices list
Dim pageIndices As New List(Of Integer)() From {0, 2}
' Add PDF
Using pdfInput As New OcrPdfInput("Potter.pdf", PageIndices:=pageIndices)
' Perform OCR
Dim ocrResult As OcrResult = ocrTesseract.Read(pdfInput)
End Using
Sayfa Numaralandırması Neden Sıfırdan Başlar?
0 bazlı indeksleme, C# ve çoğu programlama dilinde standart bir konvansiyondur. Bu, ilk sayfanın indeksinin 0, ikinci sayfanın indeksinin 1 olduğu anlamına gelir ve böyle devam eder. Bu dizi dizinlemesindeki tutarlılık, geliştiricilerin programlama yoluyla sayfa koleksiyonlarıyla çalışmasını kolaylaştırır. İnsanın okuyabileceği sayfa numaralarını (1, 2, 3...) indekslere çevirirken, basitçe sayfa numarasından 1 çıkarın.
Ardışık Olmayan Sayfaları Nasıl Okuyabilirim?
IronOCR ile ardışık olmayan sayfaları okumak kolaydır. Basitçe, istediğiniz sayfa indekslerini herhangi bir sırayla listenize ekleyin. Örneğin:
// Read pages 1, 3, 5, and 10 (using zero-based indices)
List<int> pageIndices = new List<int>() { 0, 2, 4, 9 };
// Or use LINQ for range-based selection
var evenPages = Enumerable.Range(0, 10).Where(x => x % 2 == 0).ToList();
// Read pages 1, 3, 5, and 10 (using zero-based indices)
List<int> pageIndices = new List<int>() { 0, 2, 4, 9 };
// Or use LINQ for range-based selection
var evenPages = Enumerable.Range(0, 10).Where(x => x % 2 == 0).ToList();
Imports System.Collections.Generic
Imports System.Linq
' Read pages 1, 3, 5, and 10 (using zero-based indices)
Dim pageIndices As New List(Of Integer)() From {0, 2, 4, 9}
' Or use LINQ for range-based selection
Dim evenPages = Enumerable.Range(0, 10).Where(Function(x) x Mod 2 = 0).ToList()
OCR motoru, yalnızca belirtilen sayfaları işleyecek ve bu da büyük belgelerde performansı önemli ölçüde artıracaktır.
Geçersiz Sayfa Numaraları Belirtirsem Ne Olur?
Dokümanın sayfa sayısını aşan sayfa indeksleri belirtirseniz, IronOCR bir istisna atacaktır. Hata yönetimi uygulayın veya işlemden önce sayfa sayısını doğrulayın. Indekslerinizin geçerli olduğundan emin olmak için OCR işlemi yapmadan önce bir PDF'in toplam sayfa sayısını kontrol edebilirsiniz.
PDF'nin Belirli Bir Bölgesini Nasıl OCR Ederim?
Okunacak alanı daraltarak okuma verimliliğini önemli ölçüde artırabilirsiniz. Bunu başarmak için, okunması gereken ithal edilen PDF'in belirli bölgesini belirtin. Aşağıdaki kod örneğinde, IronOCR sadece bölüm numarasını ve başlığını çıkarmaya odaklanır. Bu teknik, görüntüler için OCR bölgeleri tanımlamaya benzer şekilde, hem hız hem de kesinliği geliştirir.
:path=/static-assets/ocr/content-code-examples/how-to/input-pdfs-read-specific-region.cs
using IronOcr;
using IronSoftware.Drawing;
using System;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Specify crop regions
Rectangle[] scanRegions = { new Rectangle(550, 100, 600, 300) };
// Add PDF
using (var pdfInput = new OcrPdfInput("Potter.pdf", ContentAreas: scanRegions))
{
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(pdfInput);
// Output the result to console
Console.WriteLine(ocrResult.Text);
}
Imports IronOcr
Imports IronSoftware.Drawing
Imports System
' Instantiate IronTesseract
Dim ocrTesseract As New IronTesseract()
' Specify crop regions
Dim scanRegions As Rectangle() = {New Rectangle(550, 100, 600, 300)}
' Add PDF
Using pdfInput As New OcrPdfInput("Potter.pdf", ContentAreas:=scanRegions)
' Perform OCR
Dim ocrResult As OcrResult = ocrTesseract.Read(pdfInput)
' Output the result to console
Console.WriteLine(ocrResult.Text)
End Using
Doğru Dikdörtgen Koordinatlarını Nasıl Belirleyebilirim?
Doğru koordinatları bulmak, PDF'in koordinat sistemini anlamayı gerektirir. Rectangle yapıcısı dört parametre alır: X (yatay konum), Y (dikey konum), Width ve Height. Tüm ölçümler piksel cinsindendir. PDF görüntüleyicilerdeki cetvel özelliklerine veya hata ayıklama araçlarına sahip araçlar, tam koordinatları belirlemeye yardımcı olabilir. Alternatif olarak, seçim alanınızı düzeltmek için küçük ayarlamalarla deneme yanılma yöntemini kullanın.
Daha kesin bir bölge tanımı için, işlenen alanları görselleştirmek amacıyla hata ayıklama için metinleri vurgulama özelliğini kullanabilirsiniz.
Tek Bir İşlemde Birden Fazla Bölge Belirleyebilir miyim?
Evet, IronOCR tek bir OCR işleminde birden fazla bölgeyi destekler. Basitçe, dizinize birden fazla Rectangle nesnesi ekleyin:
Rectangle[] scanRegions = {
new Rectangle(50, 50, 200, 100), // Header region
new Rectangle(50, 200, 500, 300), // Main content region
new Rectangle(50, 550, 200, 50) // Footer region
};
Rectangle[] scanRegions = {
new Rectangle(50, 50, 200, 100), // Header region
new Rectangle(50, 200, 500, 300), // Main content region
new Rectangle(50, 550, 200, 50) // Footer region
};
Dim scanRegions As Rectangle() = {
New Rectangle(50, 50, 200, 100), ' Header region
New Rectangle(50, 200, 500, 300), ' Main content region
New Rectangle(50, 550, 200, 50) ' Footer region
}
Her bölge ayrı ayrı işlenecek ve sonuçlar belirtilen sıraya göre birleştirilecektir.
Tüm Sayfa Yerine Bölgeye Özgü OCR'i Neden Kullanmalısınız?
Bölgeye özgü OCR çeşitli avantajlar sunar:
-
Performans: Daha küçük alanların işlenmesi önemli ölçüde daha hızlıdır
-
Doğruluk: Belirli bölgelere odaklanmak, ilgisiz içerikten gelen gürültüyü azaltır
- Yapı: Formlardan ve tablolardan daha güvenilir bir şekilde veri çıkarın
Maliyet verimliliği: Daha az işlem süresi, daha düşük hesaplama maliyetleri anlamına gelir
Bu yaklaşım, verilerin öngörülebilir konumlarda göründüğü faturalar, formlar veya raporlar gibi yapılandırılmış belgelerle çalışırken özellikle değerlidir. Kompleks belge yapıları için, özel tablo çıkartma teknikleri hakkında daha fazla bilgi edinmek üzere belgelerde tablo okuma konusunu keşfedin.
Hangi Gelişmiş PDF OCR Özellikleri Mevcuttur?
IronOCR, temel metin çıkarımının ötesine geçen PDF işleme için ek yetenekler sunar. Taranmış belgelerden, orijinal düzeni koruyarak ve arama ve kopyalama için bir metin katmanı ekleyerek arama yapılabilir PDF'ler oluşturabilirsiniz. Kütüphane ayrıca büyük PDF koleksiyonlarının daha hızlı işlenmesi için çoklu iş parçacığı kullanımını da destekler.
.NET uygulamalarında OCR kullanmaya başlamak isteyen geliştiriciler için, basit OCR örneklerini incelemek, IronOCR'un yeteneklerini ve en iyi uygulamaları anlamak için güçlü bir temel sağlar.
Karmaşık PDF Senaryolarını Yönetme
Zorlayıcı PDF belgeleriyle uğraşırken, IronOCR çeşitli gelişmiş özellikler sunar:
-
Görüntü Önişleme: Metin netliğini artırmak için görüntü filtreleri uygulayın
-
Birden Çok Dil: Belge içeriğinde birden çok dili aynı anda işleyin
-
Özel Yapılandırmalar: Belirli doküman türlerine uygun OCR ayarlarını ince ayar yapın
- Aktarma Seçenekleri: Sonuçları aranabilir PDF'ler ve hOCR HTML dahil çeşitli formatlarda kaydedin
Bu özellikler, IronOCR'u kurumsal düzeyde PDF işleme gereksinimleri için kapsamlı bir çözüm haline getirir.
Sıkça Sorulan Sorular
C# dilinde bir PDF dosyasından metin nasıl çıkartılır?
IronOCR kullanarak PDF dosyalarından metin çıkarmak için sadece bir satır kod yeterlidir. Basitçe bir IronTesseract örneği oluşturun ve Read yöntemini OcrPdfInput ile kullanın: `using var result = new IronOcr.IronTesseract().Read(new IronOcr.OcrPdfInput("document.pdf", PdfContents.TextAndImages));`. IronOCR hem taranmış PDF'leri (görüntü tabanlı) hem de aranabilir PDF'leri (metin tabanlı) yönetir.
Metin çıkartma için hangi PDF sürümleri destekleniyor?
IronOCR, eski PDF 1.0 spesifikasyonlarından en yeni PDF 2.0 standartlarına kadar tüm PDF sürümlerini destekler. OCR motoru, hangi PDF sürümüyle çalıştığınıza bakılmaksızın doğru metin çıkarımı sağlamak için Tesseract teknolojisi üzerine inşa edilmiştir.
Belgedeki tüm dosya yerine, sadece belirli sayfaları okuyabilir miyim?
Evet, IronOCR, PDF'den belirli sayfaları okuma imkanı sağlar. Belgenin tamamını işlemek yerine, hangi sayfalardan metin çıkarmak istediğinizi OcrPdfInput nesnesi kullanarak belirtebilir, büyük belgeler için OCR sürecini daha verimli hale getirebilirsiniz.
Bir PDF dosyasında OCR için minimal iş akışı nedir?
IronOCR ile minimal iş akışı 5 adımdan oluşur: 1) C# kütüphanesini indirin, 2) PDF belgenizi hazırlayın, 3) PDF dosya yolu ile bir OcrPdfInput nesnesi oluşturun, 4) OCR gerçekleştirmek için Read yöntemini kullanın ve 5) Seçmeli okuma için sayfa endekslerini belirtebilirsiniz.
PDF OCR için DPI ayarlarını ne zaman ayarlamalıyım?
IronOCR'un varsayılan DPI ayarları çoğu standart PDF için iyi çalışır, ancak düşük çözünürlüklü taranmış belgelerle (200 DPI altı) veya küçük metin içeren PDF'lerle çalışırken DPI'ı ayarlamayı düşünmelisiniz. OcrPdfInput yapısında daha yüksek DPI ayarları, özel belgeler için okuma doğruluğunu önemli ölçüde artırabilir.
OCR motoru hem taranmış hem de aranabilir PDF'lerle çalışıyor mu?
Evet, IronOCR etkili bir şekilde hem taranmış PDF'leri (görüntü tabanlı) hem de aranabilir PDF'leri (metin tabanlı) işler. Tesseract tabanlı motor, farklı PDF türlerini otomatik olarak yönetir ve metin çıkarımına ihtiyaç duyan çeşitli PDF formatlarından metin çıkarmak için farklı yaklaşımlar gerektirmez.

