Altbilgi içeriğine atla
IRONOCR KULLANıMı

PDF Veri Çıkarma .NET: Geliştirici Rehberi

PDF'lerden metin, tablo, form ve görüntüleri .NET ile IronPDF kullanarak sadece birkaç kod satırı ile çıkarın—NuGet aracılığıyla yükleyin, PDF'inizi yükleyin ve 5 dakikadan kısa sürede başlamak için ExtractAllText() çağrısı yapın.

PDF belgeleri iş dünyasında her yerdedir: faturalar, raporlar, sözleşmeler, kılavuzlar. Ancak bunlardan hayati bilgileri programlı olarak almak zordur. PDF'ler, şeylerin nasıl göründüğüne odaklanır, verilerin nasıl erişileceğine değil. C#'ta OCR ile çalışan geliştiriciler için bu, taranmış belgelerle uğraşırken benzersiz zorluklar sunar.

.NET geliştiricileri için IronPDF, PDF dosyalarından veri çıkarmayı kolaylaştıran güçlü bir .NET PDF kütüphanesidir. Metin, tablolar, form alanları, görseller ve ekleri doğrudan girdi PDF belgelerinden çekebilirsiniz. Fatura işleme otomasyonundan bilgi tabanı oluşturmaya ya da raporlar oluşturmaya kadar, bu kütüphane size önemli oranda zaman kazandırır. Tarama yapılan PDF'lerle çalışırken, görüntü tabanlı içeriği yönetmek için PDF OCR metin çıkarma yeteneklerine de ihtiyacınız olabilir.

Bu kılavuz, metin içeriği, tablo verileri ve form alanı değerlerinin çıkarılması için pratik örneklerle sizi yönlendirir ve kendi projelerinize uyarlamanız için her kod snippet'inin ardından açıklamalar sunar. Eğer başka belge türleriyle de çalışıyorsanız, tarama yapılan belgeleri okuma veya TIFF'i aranabilir PDF'e dönüştürme seçeneklerini de araştırmak faydalı olabilir.

IronPDF ile Çalışmaya Nasıl Başlarım?

IronPDF'u yüklemek, NuGet Paket Yöneticisi üzerinden saniyeler alır. Paket Yöneticisi Konsolu'nu açın ve şunu çalıştırın:

Install-Package IronOcr

Daha gelişmiş kurulum senaryoları için NuGet paketleri belgelerine göz atın. Kurulduktan sonra, girdi PDF belgelerini hemen işlemeye başlayabilirsiniz. IronPDF'ün API'sinin en basit bir .NET örneği burada gösterilmektedir:

using IronPdf;
// Load any PDF document
var pdf = PdfDocument.FromFile("document.pdf");
// Extract all text with one line
string allText = pdf.ExtractAllText();
Console.WriteLine(allText);
using IronPdf;
// Load any PDF document
var pdf = PdfDocument.FromFile("document.pdf");
// Extract all text with one line
string allText = pdf.ExtractAllText();
Console.WriteLine(allText);
Imports IronPdf

' Load any PDF document
Dim pdf = PdfDocument.FromFile("document.pdf")
' Extract all text with one line
Dim allText As String = pdf.ExtractAllText()
Console.WriteLine(allText)
$vbLabelText   $csharpLabel

Bu kod, bir PDF'yi yükler ve her metin parçasını çıkarır. IronPDF, tipik olarak diğer kütüphanelerde sorunlara neden olan karmaşık PDF yapıları, form verisi ve kodlamaları otomatik olarak yönetir. PDF belgelerinden çıkarılan veriler bir metin dosyasına kaydedilebilir veya analiz için daha fazla işlenebilir. Daha karmaşık çıkarma ihtiyaçları için özel belge işleme tekniklerini araştırmak isteyebilirsiniz.

Pratik ipucu: Çıkarılan metni daha sonra işlemek için bir .txt dosyasına kaydedebilir veya veritabanlarını, Excel sayfalarını veya bilgi tabanlarını doldurmak için ayrıştırabilirsiniz. Bu yöntem, raporlar, sözleşmeler veya hızlıca ham metni elde etmeniz gereken herhangi bir PDF için iyi çalışır. Tablolar içeren senaryolar için, daha yapılandırılmış veri çıkarımı için belgelerdeki tabloları okuma konusunu öğrenmeyi düşünün.

Çıkarılan Metin Ne Görünebilir?

Sol tarafta 'PDF nedir?' açıklayan bir PDF belgesi ve sağ tarafta bu PDF'den çıkarılan metni gösteren bir Visual Studio konsol penceresi ile bölünmüş ekran

Belirli Sayfalardan Veri Nasıl Çıkartılır?

Gerçek dünya uygulamaları genellikle kesin veri çıkarımı gerektirir. IronPDF, bir PDF içindeki belirli sayfalardan değerli bilgileri hedeflemek için çeşitli yöntemler sunar. Bu yaklaşım, OCR bölgeye özgü çıkarma ile benzerdir, ancak PDF'ler için. Bu örnek için, aşağıdaki PDF'yi kullanacağız:

Fatura numaraları, tarihleri ve tutarlarını içeren bir fatura özet tablosu ve bunun yanında bölüm performansı ve mali genel bakış bölümleriyle bir 2024 Yıllık Raporunu gösteren PDF görüntüleyici

Aşağıdaki kod, bu PDF içindeki belirli sayfalardan verileri çıkarır ve sonuçları konsolumuza geri verir. Çok sayfalı belgelerle çalışırken, benzer zorluklar için çok sayfalı TIFF işleme tekniklerini faydalı bulabilirsiniz.

using IronPdf;
using System;
using System.Text.RegularExpressions;
// Load any PDF document
var pdf = PdfDocument.FromFile("AnnualReport2024.pdf");
// Extract from selected pages
int[] pagesToExtract = { 0, 2, 4 }; // Pages 1, 3, and 5
foreach (var pageIndex in pagesToExtract)
{
    string pageText = pdf.ExtractTextFromPage(pageIndex);
    // Split on 2 or more spaces (tables often flatten into space-separated values)
    var tokens = Regex.Split(pageText, @"\s{2,}");
    foreach (string token in tokens)
    {
        // Match totals, invoice headers, and invoice rows
        if (token.Contains("Invoice") || token.Contains("Total") || token.StartsWith("INV-"))
        {
            Console.WriteLine($"Important: {token.Trim()}");
        }
    }
}
using IronPdf;
using System;
using System.Text.RegularExpressions;
// Load any PDF document
var pdf = PdfDocument.FromFile("AnnualReport2024.pdf");
// Extract from selected pages
int[] pagesToExtract = { 0, 2, 4 }; // Pages 1, 3, and 5
foreach (var pageIndex in pagesToExtract)
{
    string pageText = pdf.ExtractTextFromPage(pageIndex);
    // Split on 2 or more spaces (tables often flatten into space-separated values)
    var tokens = Regex.Split(pageText, @"\s{2,}");
    foreach (string token in tokens)
    {
        // Match totals, invoice headers, and invoice rows
        if (token.Contains("Invoice") || token.Contains("Total") || token.StartsWith("INV-"))
        {
            Console.WriteLine($"Important: {token.Trim()}");
        }
    }
}
Imports IronPdf
Imports System
Imports System.Text.RegularExpressions

' Load any PDF document
Dim pdf = PdfDocument.FromFile("AnnualReport2024.pdf")
' Extract from selected pages
Dim pagesToExtract As Integer() = {0, 2, 4} ' Pages 1, 3, and 5
For Each pageIndex In pagesToExtract
    Dim pageText As String = pdf.ExtractTextFromPage(pageIndex)
    ' Split on 2 or more spaces (tables often flatten into space-separated values)
    Dim tokens = Regex.Split(pageText, "\s{2,}")
    For Each token As String In tokens
        ' Match totals, invoice headers, and invoice rows
        If token.Contains("Invoice") OrElse token.Contains("Total") OrElse token.StartsWith("INV-") Then
            Console.WriteLine($"Important: {token.Trim()}")
        End If
    Next
Next
$vbLabelText   $csharpLabel

Bu örnek, PDF belgelerinden metin çıkarmanın, temel bilgileri aramanın ve bunları veri dosyalarında veya bilgi tabanında depolamaya hazırlamanın nasıl yapılacağını gösterir. ExtractTextFromPage() metodu, belgenin okuma sırasını korur, bu da onu belge analizi ve içerik indeksleme görevleri için mükemmel hale getirir. Gelişmiş doğruluk için, düşük kaliteli PDF'lerle çalışırken görüntü optimizasyon filtrelerini kullanmayı düşünebilirsiniz.

Microsoft Visual Studio Debug Console showing extracted invoice data with invoice summary, dates, amounts, and final total of $2,230.00

Finansal belgeleri işlerken, özel terimlerle gelişmiş doğruluk için Finansal Dil Paketi'nden faydalanabilirsiniz. Ayrıca, büyük belge grupları için çıkarım performansını izlemek için ilerleme takibi faydalı olabilir.

PDF Dosyalarından Tablolar Nasıl Çıkarılır?

PDF dosyalarındaki tablolar, yerli bir yapıya sahip değildirler—sadece tablo gibi görünmek için konumlandırılmış metin içeriğidirler. IronPDF, tablosal verileri düzeni koruyarak çıkarır, böylece Excel veya metin dosyalarına işleyebilirsiniz. Bu, OCR çizim çıkarma ile benzerdir ancak tablosal içerik için özel olarak optimize edilmiştir. Bu örnek için, bu PDF'yi kullanacağız:

Sample invoice showing structured data with customer details, itemized products, and total amount of $180.00

Amacımız, IronPDF'nin tablosal verileri ayrıştırabilme yeteneğini göstererek tablonun içerisindeki verileri çıkarmaktır. Daha gelişmiş tablo çıkarma senaryoları için, karmaşık tablo yapılarını makine öğrenmesi kullanarak okuyan belgelerdeki tabloları okuma konusunu keşfedin.

using IronPdf;
using System;
using System.Text;
using System.Text.RegularExpressions;
var pdf = PdfDocument.FromFile("example.pdf");
string rawText = pdf.ExtractAllText();
// Split into lines for processing
string[] lines = rawText.Split('\n');
var csvBuilder = new StringBuilder();
foreach (string line in lines)
{
    if (string.IsNullOrWhiteSpace(line) || line.Contains("Page"))
        continue;
    string[] rawCells = Regex.Split(line.Trim(), @"\s+");
    string[] cells;
    // If the line starts with "Product", combine first two tokens as product name
    if (rawCells[0].StartsWith("Product") && rawCells.Length >= 5)
    {
        cells = new string[rawCells.Length - 1];
        cells[0] = rawCells[0] + " " + rawCells[1]; // Combine Product + letter
        Array.Copy(rawCells, 2, cells, 1, rawCells.Length - 2);
    }
    else
    {
        cells = rawCells;
    }
    // Keep header or table rows
    bool isTableOrHeader = cells.Length >= 2
                           && (cells[0].StartsWith("Item") || cells[0].StartsWith("Product")
                               || Regex.IsMatch(cells[0], @"^INV-\d+"));
    if (isTableOrHeader)
    {
        Console.WriteLine($"Row: {string.Join("|", cells)}");
        string csvRow = string.Join(",", cells).Trim();
        csvBuilder.AppendLine(csvRow);
    }
}
// Save as CSV for Excel import
File.WriteAllText("extracted_table.csv", csvBuilder.ToString());
Console.WriteLine("Table data exported to CSV");
using IronPdf;
using System;
using System.Text;
using System.Text.RegularExpressions;
var pdf = PdfDocument.FromFile("example.pdf");
string rawText = pdf.ExtractAllText();
// Split into lines for processing
string[] lines = rawText.Split('\n');
var csvBuilder = new StringBuilder();
foreach (string line in lines)
{
    if (string.IsNullOrWhiteSpace(line) || line.Contains("Page"))
        continue;
    string[] rawCells = Regex.Split(line.Trim(), @"\s+");
    string[] cells;
    // If the line starts with "Product", combine first two tokens as product name
    if (rawCells[0].StartsWith("Product") && rawCells.Length >= 5)
    {
        cells = new string[rawCells.Length - 1];
        cells[0] = rawCells[0] + " " + rawCells[1]; // Combine Product + letter
        Array.Copy(rawCells, 2, cells, 1, rawCells.Length - 2);
    }
    else
    {
        cells = rawCells;
    }
    // Keep header or table rows
    bool isTableOrHeader = cells.Length >= 2
                           && (cells[0].StartsWith("Item") || cells[0].StartsWith("Product")
                               || Regex.IsMatch(cells[0], @"^INV-\d+"));
    if (isTableOrHeader)
    {
        Console.WriteLine($"Row: {string.Join("|", cells)}");
        string csvRow = string.Join(",", cells).Trim();
        csvBuilder.AppendLine(csvRow);
    }
}
// Save as CSV for Excel import
File.WriteAllText("extracted_table.csv", csvBuilder.ToString());
Console.WriteLine("Table data exported to CSV");
Imports IronPdf
Imports System
Imports System.Text
Imports System.Text.RegularExpressions

Dim pdf = PdfDocument.FromFile("example.pdf")
Dim rawText As String = pdf.ExtractAllText()
' Split into lines for processing
Dim lines As String() = rawText.Split(ControlChars.Lf)
Dim csvBuilder As New StringBuilder()

For Each line As String In lines
    If String.IsNullOrWhiteSpace(line) OrElse line.Contains("Page") Then
        Continue For
    End If

    Dim rawCells As String() = Regex.Split(line.Trim(), "\s+")
    Dim cells As String()

    ' If the line starts with "Product", combine first two tokens as product name
    If rawCells(0).StartsWith("Product") AndAlso rawCells.Length >= 5 Then
        cells = New String(rawCells.Length - 2) {}
        cells(0) = rawCells(0) & " " & rawCells(1) ' Combine Product + letter
        Array.Copy(rawCells, 2, cells, 1, rawCells.Length - 2)
    Else
        cells = rawCells
    End If

    ' Keep header or table rows
    Dim isTableOrHeader As Boolean = cells.Length >= 2 AndAlso (cells(0).StartsWith("Item") OrElse cells(0).StartsWith("Product") OrElse Regex.IsMatch(cells(0), "^INV-\d+"))

    If isTableOrHeader Then
        Console.WriteLine($"Row: {String.Join("|", cells)}")
        Dim csvRow As String = String.Join(",", cells).Trim()
        csvBuilder.AppendLine(csvRow)
    End If
Next

' Save as CSV for Excel import
File.WriteAllText("extracted_table.csv", csvBuilder.ToString())
Console.WriteLine("Table data exported to CSV")
$vbLabelText   $csharpLabel

PDF'lerdeki tablolar genellikle bir grid gibi görünmeleri için konumlandırılmış metindir. Bu kontrol, bir satırın tablo satırına mı yoksa başlığa mı ait olduğunu belirlemeye yardımcı olur. Başlıkları, altbilgileri ve ilgisiz metni filtreleyerek, temiz tablosal verileri bir PDF'den çıkartabilir, CSV veya Excel için hazır hale getirebilirsiniz. Karmaşık düzenleri olan makbuzlar ve faturaları işlerken, AdvancedScan Uzantısı'na bir göz atın.

Bu iş akışı PDF formları, finansal belgeler ve raporlar için çalışır. Daha sonra PDF'lerden verileri xlsx dosyalarına dönüştürebilir veya tüm faydalı verileri içeren bir zip dosyasına birleştirebilirsiniz. Birleşik hücreler içeren karmaşık tablolar için, sütun konumlarına göre ayrıştırma mantığını ayarlamanız gerekebilir. veri çıkışı belgeleri yapılandırılmış sonuçlarla çalışmaya dair detaylı kılavuzluk sağlar.

Ürün, Miktar, Fiyat ve Hesaplanan Toplam değer sütunları ile ürün envanterini gösteren Excel elektronik tablosu

Gelişmiş tablo çıkarım doğruluğu için, tablo bölgelerini otomatik olarak algılamak üzere bilgisayarla görme tekniklerini kullanmayı düşünebilirsiniz. Bu yaklaşım, karmaşık düzenlerde önemli ölçüde sonuçları iyileştirebilir.

Form Alanı Verilerini Nasıl Çıkarırım?

IronPDF ayrıca form alanı verilerin çıkarımı ve modifikasyonunu yönetir, pasaport okuma yeteneklerine benzer şekilde yapılandırılmış belgeler için:

using IronPdf;
using System.Drawing;
using System.Linq;
var pdf = PdfDocument.FromFile("form_document.pdf");
// Extract form field data
var form = pdf.Form;
foreach (var field in form) // Removed '.Fields' as 'FormFieldCollection' is enumerable
{
    Console.WriteLine($"{field.Name}: {field.Value}");
    // Update form values if needed
    if (field.Name == "customer_name")
    {
        field.Value = "Updated Value";
    }
}
// Save modified form
pdf.SaveAs("updated_form.pdf");
using IronPdf;
using System.Drawing;
using System.Linq;
var pdf = PdfDocument.FromFile("form_document.pdf");
// Extract form field data
var form = pdf.Form;
foreach (var field in form) // Removed '.Fields' as 'FormFieldCollection' is enumerable
{
    Console.WriteLine($"{field.Name}: {field.Value}");
    // Update form values if needed
    if (field.Name == "customer_name")
    {
        field.Value = "Updated Value";
    }
}
// Save modified form
pdf.SaveAs("updated_form.pdf");
Imports IronPdf
Imports System.Drawing
Imports System.Linq

Dim pdf = PdfDocument.FromFile("form_document.pdf")
' Extract form field data
Dim form = pdf.Form
For Each field In form ' Removed '.Fields' as 'FormFieldCollection' is enumerable
    Console.WriteLine($"{field.Name}: {field.Value}")
    ' Update form values if needed
    If field.Name = "customer_name" Then
        field.Value = "Updated Value"
    End If
Next
' Save modified form
pdf.SaveAs("updated_form.pdf")
$vbLabelText   $csharpLabel

Bu kod, PDF'lerden form alanı değerlerini çıkarır ve bunları programlı olarak güncellemenize olanak tanır, bu da PDF formlarını işlemeyi ve belirli bilgi sınırlarını analiz veya rapor üretimi için çıkarmayı kolaylaştırır. Bu, müşteri girişini otomatize etme, anket işleme veya veri doğrulama gibi iş akışlarını otomatize etmeye yararlıdır. Kimlik belgesi işleme için, kimlik belgesi OCR en iyi uygulamalarını inceleyin.

Veri çıkarma sonuçlarını gösteren iki PDF formunun yan yana karşılaştırması - sol taraftaki orijinal formda 'John Doe' verisi, sağ taraftaki güncellenmiş formda 'Updated Value' başarılı veri çıkarma ve değişikliği gösteriyor

CheckBox ve radyo düğmeleri içeren formlarla çalışırken, özel alan türleri için barkod ve QR kod okuma benzeri özel mantık uygulamanız gerekebilir. OcrResult Sınıf belgeleri çeşitli sonuç türlerini yönetme konusunda kapsamlı bilgiler sağlar.

Sırada Ne Yapmalıyım?

IronPDF, .NET'te PDF veri çıkarımını pratik ve verimli bir hale getirir. Birçok PDF belgesinden, taranan PDF'ler dahil, resimleri, metni, tabloları, form alanlarını ve hatta ekleri çıkartabilirsiniz. Taranmış belgeler için, IronPDF ve IronOCR özelliklerini birleştirmek, kapsamlı belge işleme yetenekleri sunar.

Bilgi tabanı oluşturuyor, raporlama iş akışlarını otomatikleştiriyor veya finansal PDF'lerden veri çıkarıyorsanız, bu kütüphane işleri manuel kopyalamadan veya hata yapma olasılığı yüksek ayrıştırmadan kurtarır. Basit, hızlı ve Visual Studio projelerine doğrudan entegre olur. Dağıtım için, IronPDF Windows, Linux, Docker ve AWS ve Azure gibi bulut platformlarını da içeren çeşitli platformları destekler.

Bir deneyin - muhtemelen zaman kazanacak ve PDF'lerle çalışmanın getirdiği genellikle baş ağrılarına neden olan sorunlardan kurtulacaksınız. Yeni başlayanlar ve küçük ekipler için, lisanslama seçenekleri ihtiyaçlarınıza göre büyüyen esnek planlar içerir. Üretim dağıtımları için lisans anahtarı uygulamasını da inceleyebilirsiniz.

Uygulamalarınızda PDF veri çıkarımını uygulamaya hazır mısınız? IronPDF size göre bir .NET kütüphanesi gibi mi görünüyor? Tam işlevselliğe erişmek için ücretsiz denemenizi başlatın veya ticari kullanım için lisanslama seçeneklerimizi keşfedin. belgelerimize kapsamlı kılavuzlar ve API referansları için göz atın. Hızlı uygulama için, başlangıçta dakikalar içinde başlamanızı sağlayan demos ve kod örneklerimize göz atın.

Sıkça Sorulan Sorular

PDF belgelerinden veri çıkarmanın ana zorluğu nedir?

PDF belgeleri, içeriği belirli bir yerleşimde görüntülemek için tasarlanmıştır, bu nedenle programlanabilir veri çıkarımı, veri erişilebilirliğinden çok görünüme odaklanıldığından zordur.

IronOCR, .NET'te PDF veri çıkarımına nasıl yardımcı olabilir?

IronOCR, taranmış belgeler dahil PDF'lerden metin ve verileri çıkarmak için araçlar sunar; Optik Karakter Tanıma (OCR) kullanarak metin görüntülerini makine tarafından okunabilir verilere dönüştürür.

IronOCR, taranmış PDF belgelerini işleyebilir mi?

Evet, IronOCR, gelişmiş OCR teknolojisini kullanarak belgedeki görüntülerden metni tanıyıp çıkartarak taranmış PDF'leri işleyebilir.

PDF veri çıkarımı için IronOCR ile hangi programlama dili kullanılır?

IronOCR, C# ile kullanılmak üzere tasarlanmıştır ve .NET framework içinde PDF'lerden veri çıkarmak için mükemmel bir seçimdir.

IronOCR kullanarak PDF veri çıkarımı için kod örnekleri mevcut mu?

Evet, kılavuz IronOCR kullanarak PDF dosyalarından etkin bir şekilde veri çıkarmayı gösteren tam C# kod örneklerini içerir.

IronOCR, PDF belgelerinden tabloları ayrıştırabilir mi?

IronOCR, PDF belgelerinden tabloları ayrıştırma işlevi içerir, böylece geliştiricilerin yapılandırılmış verileri verimli bir şekilde çıkarmasını sağlar.

IronOCR, PDF'lerden hangi tür içerikleri çıkarabilir?

IronOCR, metinleri, tabloları ve taranmış görüntülerden verileri PDF'lerden çıkarabilir, bu da onu veri çıkarımı için çok yönlü bir araç yapar.

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

Daha Fazla Oku

Iron Destek Ekibi

Haftada 5 gün, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara