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

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

IronPDF kullanarak .NET'te PDF'lerden metin, tablolar, formlar ve görüntüler çıkarmak için sadece birkaç kod satırı yeterlidir—NuGet üzerinden yükleyin, PDF'inizi yükleyin ve çalışmaya başlamak için ExtractAllText() çağrısını yapın. 5 dakikadan kısa bir sürede başlayabilirsiniz.

PDF belgeler iş dünyasında her yerdedir: faturalar, raporlar, sözleşmeler ve kılavuzlar. Ancak, bunlardan programatik olarak hayati bilgi almak zor olabilir. PDF'ler, verilerin erişilebilirliği yerine nasıl göründüğüne odaklanır. C#'da 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örüntüler ve ekleri doğrudan giriş PDF belgelerinden alabilirsiniz. Fatura işleme otomatikleştiriliyor, bir bilgi tabanı oluşturuyor veya raporlar oluşturuyorsanız, bu kütüphane size büyük ölçüde zaman kazandırır. Taranmış PDF'lerle çalışırken, görüntü tabanlı içeriği ele almak için PDF OCR metin çıkarma yetenekleri de ihtiyaçınız olabilir.

Bu kılavuz, metinsel içerik, tablo verileri ve form alanı değerlerini çıkarmanın pratik örneklerini ve her kod snippet'inden sonra açıklamalarla birlikte bu örnekleri kendi projelerinize nasıl uyarlayabileceğinizi adım adım gösterir. Ayrıca diğer belge türleri ile çalışıyorsanız, tarama belge okuma veya TIFF aramalı PDF'ye dönüştürmeyi keşfetmek size yardımcı olabilir.

IronPDF ile Nasıl Başlarım?

IronPDF'in kurulumu NuGet Paket Yöneticisi üzerinden birkaç saniye sürer. Paket Yöneticisi Konsolunuzu açın ve çalıştırın:

Install-Package IronPDF
Install-Package IronPDF
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronPDF
$vbLabelText   $csharpLabel

Daha gelişmiş kurulum senaryoları için NuGet paketleri belgelerini kontrol edin. Kurulum tamamlandıktan sonra, giriş PDF belgelerini işlemeye hemen başlayabilirsiniz. IronPDF'in API basitliğini gösteren minimal bir .NET örneği burada:

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 yükler ve her bit metni çıkarır. IronPDF, karmaşık PDF yapılarını, form verilerini ve genellikle diğer kütüphanelerle sorun yaratan kodlamaları otomatik olarak ele alır. PDF belgelerden çı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 keşfetmek isteyebilirsiniz.

Pratik ipucu: Çıkarılan metni, daha sonra işlem yapmak üzere 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 metin ihtiyaçınız olan herhangi bir PDF için iyi çalışır. Tablolar içeren senaryolar için, daha yapılandırılmış veri çıkarma için belgelerdeki tabloları okuma hakkında bilgi edinin.

Çıkarılan Metin Neye Benzer?

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

Belirli Sayfalardan Verileri Nasıl Çıkarabilirim?

Gerçek dünya uygulamaları genellikle kesin veri çıkarma gerektirir. IronPDF, PDF içindeki belirli sayfalardan değerli bilgileri hedeflemek için birçok yöntem sunar. Bu yaklaşım, görüntünün bölgeye özgü çıkarımına benzer, ancak PDF'ler için. Bu örnek için, aşağıdaki PDF'i kullanacağız:

2024 Yıllık Raporunu gösteren bir PDF görüntüleyici, fatura numaraları, tarihleri ve tutarları içeren bir fatura özet tablosu ile birlikte departman performansı ve mali genel bakış bölümleri

Aşağıdaki kod, bu PDF içindeki belirli sayfalardan verileri çıkartarak sonuçları konsolumuza döndürür. Çok sayfalı belgelerle uğraşırken, benzer zorluklar için çok sayfalı TIFF işleme tekniklerini de 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 çıkarma, anahtar bilgiyi arama ve bunları veri dosyalarında veya bir bilgi tabanında saklama için hazırlamanın nasıl yapıldığını gösterir. ExtractTextFromPage() yöntemi, belgenin okuma sırasını korur, bu da onu belge analizi ve içerik indeksleme görevleri için mükemmel hale getirir. Daha iyi doğruluk için, düşük kaliteli PDF'lerle çalışırken görüntü optimizasyonu filtreleri kullanmayı düşünebilirsiniz.

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

Mali belgeleri işlerken, özel terimler üzerinde gelişmiş doğruluk için Finansal Dil Paketinden faydalanabilirsiniz. Ayrıca, büyük belge grupları için çıkarma performansını izlemek için ilerleme takibi yapmak yardımcı olabilir.

PDF'lerden Tabloları Nasıl Çıkarırım?

PDF dosyalarındaki tablolar, yerli bir yapıya sahip değildir — yalnızca tablo gibi görünmeleri için yerleştirilmiş metin içeriğidirler. IronPDF, tablolama verilerini çıkartırken düzeni korur, böylece Excel veya metin dosyalarına işleyebilirsiniz. Bu, tablolama içeriği için özel olarak optimize edilmiş, OCR çizim çıkarıma benzerdir. Bu örnek için, bu PDF'i kullanacağız:

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

Amacımız, IronPDF'nin tablo verilerini çözümleme yeteneğini göstererek tablo içinde bulunan verileri çıkarmaktır. Daha gelişmiş tablo çıkarma senaryoları için, karmaşık tablo yapıları için makine öğrenimi kullanan belgelerdeki tabloları okuma yazısını 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 ızgara gibi görünen yerleştirilmiş metinlerdir. Bu kontrol, bir satırın tablo satırı veya başlığına ait olup olmadığını belirlemeye yardımcı olur. Başlıklar, alt bilgi ve ilgili olmayan metinleri filtreleyerek PDF'ten temiz tablo verileri çıkarabilir ve CSV veya Excel için hazır hale getirebilirsiniz. Karmaşık düzenli makbuzlar ve faturalar için işleme yapmak için AdvancedScan Extension eklentisine 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ında birleştirebilirsiniz. Birleşik hücrelerle karmaşık tablolar için, sütun pozisyonlarına göre çözümleme mantığını ayarlamanız gerekebilir. Veri çıktısı belgelendirmesi, yapılandırılmış sonuçlarla çalışma konusunda ayrıntılı rehberlik sağlar.

Ürün envanterinde Madde, Miktar, Fiyat ve Hesaplanan Toplam değerleri için sütunlar içeren Excel tablosu

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

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

IronPDF ayrıca yapılandırılmış belgeler için pasaport okuma yeteneklerine benzer şekilde form alanı veri çıkarmayı ve değiştirmeyi de ele alır:

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, böylece PDF formlarını kolayca işleyebilir ve analiz veya rapor oluşturma için bilgilerin sınırlarını belirleyebilirsiniz. Bu, müşteri açılışı, anket işleme veya veri doğrulama gibi iş akışlarını otomatikleştirmede faydalıdır. Kimlik belgesi işleme için, kimlik belgesi OCR en iyi uygulamalarını inceleyin.

İki PDF formunun veri çıkarım sonuçlarını gösteren yan yana karşılaştırma - soldaki orijinal formda 'John Doe' verisi, sağdaki güncellenmiş formda 'Updated Value', başarılı veri çıkarımı ve değişimini gösteriyor

Onay kutuları ve radyo düğmeleri içeren formlarla çalışırken, özel alan türleri için barkod ve QR okuma gibi özel mantık uygulamanız gerekebilir. OcrResult Class dokumentasyonu, çeşitli sonuç türlerini işleme konusunda kapsamlı ayrıntılar sağlar.

Sıradaki Adım Ne Olmalı?

IronPDF, .NET ortamında PDF veri çıkarılmasını pratik ve verimli hale getirir. Taradığınız PDF'leri içeren çeşitli PDF belgelerinden görüntüler, metinler, tablolar, form alanları ve hatta ekler çıkarabilirsiniz. Tarama belgeleri için IronPDF'yi IronOCR özellikleri ile birleştirmek, kapsamlı belge işleme yetenekleri sağlar.

İster bir bilgi tabanı oluşturuyor, ister raporlama iş akışlarını otomatikleştiriyor, isterse finansal PDF'lerden veri çıkarıyor olun, bu kütüphane size manuel kopyalama veya hata eğilimli çözümleme olmadan işi yapmanın araçlarını sunar. Basit, hızlıdır ve doğrudan Visual Studio projelerine entegre edilir. Dağıtım için IronPDF, Windows, Linux, Docker ve AWS ve Azure gibi bulut platformlarını destekler.

Bir deneme yapın—PDF'lerle çalışmanın getirdiği genellikle baş ağrılarını önleyip zaman kazanacaksınız. Başlangıçlar ve küçük ekipler için, lisanslama seçenekleri, ihtiyaçlarınıza göre büyüyen esnek planlar içerir. Ayrıca, üretim dağıtımları için lisans anahtarı uygulamasına göz atabilirsiniz.

Uygulamalarınıza PDF veri çıkarmayı uygulamaya hazır mısınız? IronPDF, sizin için doğru .NET kütüphanesi gibi mi görünüyor? Ücretsiz denemenizi başlatın tam işlevselliğe erişmek için veya ticari kullanım için lisanslama seçeneklerimizi keşfedin. Kapsamlı rehberler ve API referansları için belgelerimizi ziyaret edin. Hızlı bir uygulama için, demolarımızı ve kod örneklerimizi kontrol ederek birkaç dakika içinde başlamış olabilirsiniz.

Sıkça Sorulan Sorular

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

PDF belgeleri, öncelikle içeriği belirli bir düzen içerisinde görüntülemek için tasarlanmıştır, görünüme odaklanılması nedeniyle programatik veri çıkarımı zordur.

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

IronOCR, taranmış belgeler dahil PDF'lerden metin ve veri çıkarmak için araçlar sağlar; metin görüntülerini makine tarafından okunabilir verilere dönüştürmek için optik karakter tanıma (OCR) kullanır.

IronOCR taranmış PDF belgelerini işleyebilir mi?

Evet, IronOCR, belgede yer alan görüntülerden metin tanıma ve çıkartmak için gelişmiş OCR teknolojisini kullanarak taranmış PDF'leri işleyebilir.

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

IronOCR, PDF'lerden veri çıkarmak için .NET çerçevesinde çalışan geliştiriciler için mükemmel bir seçenek olmasını sağlayarak C# ile kullanım için tasarlanmıştır.

IronOCR kullanarak PDF veri çıkarımı için örnek kodlar mevcut mu?

Evet, rehber C# kod örnekleri içermekte olup, IronOCR kullanarak PDF dosyalarından etkili bir şekilde veri çıkarmayı nasıl gerçekleştireceğinizi gösterir.

IronOCR, PDF belgelerinden tabloları çözümleyebilir mi?

IronOCR, PDF belgelerinden tabloları çözümleme işlevselliğini içerir, bu da geliştiricilere yapılandırılmış veriyi verimli bir şekilde çıkartma imkanı tanır.

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

IronOCR, PDF'lerden metin, tablolar ve taranmış görüntülerden veri gibi çeşitli içerik türlerini çıkartabilir, bu da onu veri çıkarımı için çok yönlü bir araç haline getirir.

Kannaopat Udonpant
Yazılım Mühendisi
Yazılım Mühendisi olmadan önce, Kannapat Japonya'daki Hokkaido Üniversitesi'nden Çevresel Kaynaklar alanında doktora yaptı. Derecesini tamamlarken, Biyoprodüksiyon Mühendisliği Bölümü'nün bir parçası olan Taşıt Robotik Laboratuvarı'na da üye oldu. 2022'de, Iron Software mühendislik ekibine katılmak iç...
Daha Fazlasını Oku

Iron Destek Ekibi

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