IRONSOFTWAREHOME

Belgelerdeki Tabloları C# ile Nasıl Okursunuz?

Curtis Chau
Curtis Chau
Updated: 29 Haziran 2026

IronOCR, C# geliştiricilerinin hem temel hücrelere sahip basit tabloları hem de birleştirilmiş hücreler içeren faturalara benzer karmaşık yapıları, ReadDocumentAdvanced yöntemi ile ele alarak, PDF'lerde ve görüntülerdeki tablolardan verileri gelişmiş makine öğrenimi modelleri kullanarak çıkarmalarını sağlar.

Basit Tesseract kullanarak tablolardan veri çıkarmak zordur çünkü metin genellikle hücrelerde bulunur ve belge boyunca seyrek bir şekilde dağılmıştır. Ancak, kütüphanemiz, tablo verilerini doğru bir şekilde algılamak ve çıkarmak için eğitilmiş ve optimize edilmiş bir makine öğrenimi modeli içerir. Finansal raporlar, envanter listeleri veya fatura verileri işliyorsanız, IronOCR yapılandırılmış verileri verimli bir şekilde çözümlemek için araçlar sağlar.

Basit tablolar için, standart OcrInput sınıfı kullanarak doğrudan tablo algılamaya güvenin. Daha karmaşık yapılar için, özel ReadDocumentAdvanced yöntemimiz etkili bir şekilde tabloları ayrıştırarak güçlü sonuçlar sunar ve veri sağlar. Bu gelişmiş yöntem, makine öğrenimini, tablo düzenlerini, birleşik hücreleri ve geleneksel OCR'un genellikle zorlandığı karmaşık biçimlendirmeleri anlamak için kullanır.

Hızlı Başlangıç: Bahsedilen Bir Çağrıda Karmaşık Tablo Hücreleri Çıkarın

Dakikalar içinde çalışmaya başlayın—bu örnek, tek bir IronOCR çağrısının ReadDocumentAdvanced kullanarak, karmaşık bir belgeden detaylı tablo hücresi verisi nasıl sağladığını gösterir.
Gelişmiş tablo algılama uygulayarak bir PDF yükleyip, hücre bilgilerini doğrudan listeleme yoluyla kullanım kolaylığını gösterir.

  1. 1Install IronOCR with NuGet Package Manager

    PM > Install-Package IronOcr

  2. 2Bu kod parçacığını kopyalayın ve çalıştırın.

    var cells = new IronTesseract().ReadDocumentAdvanced(new OcrInput().LoadPdf("invoiceTable.pdf")).Tables.First().CellInfos;
    C#
  3. 3Canlı ortamınızda test için dağıtım yapın

    Ücretsiz deneme ile bugün projenizde IronOCR kullanmaya başlayın
    arrow pointer

IronOCR kullanarak tabloları okumaya başlama adımlarınızı aşağıda adım adım gösteriyoruz:


Basit Tablolardan Nasıl Veri Çıkarılır?

ReadDataTables özelliğinin true olarak ayarlanması, Tesseract kullanarak tablo algılamayı etkinleştirir. Bu yaklaşım, birleşik hücreler olmadan açık hücre sınırlarına sahip basit tablolar için iyi çalışır. Bu özelliği test etmek için, indirme linki burada: 'simple-table.pdf' ile basit bir tablo PDF'si oluşturdum. Birleşik hücreler olmadan basit tablolar bu yöntemle algılanabilir. Daha karmaşık tablolar için aşağıda açıklanan yönteme bakın.

Standart tablo algılama yöntemi özellikle şunlar için etkilidir:

  • Elektronik tablolardan elde edilen veriler
  • Tutarlı satır/sütun yapısına sahip temel veri tabloları
  • Tabular veri içeren raporlar
  • Basit envanter listeleri

PDF OCR metin çıkarma genel olarak çalışıyorsanız, bu yöntem IronOCR'un daha geniş belge işleme kabiliyetleriyle sorunsuz bir şekilde entegre olur.

using IronOcr;
using System;
using System.Data;

// Instantiate OCR engine
var ocr = new IronTesseract();

// Enable table detection
ocr.Configuration.ReadDataTables = true;

using var input = new OcrPdfInput("simple-table.pdf");
var result = ocr.Read(input);

// Retrieve the data
var table = result.Tables[0].DataTable;

// Print out the table data
foreach (DataRow row in table.Rows)
{
    foreach (var item in row.ItemArray)
    {
        Console.Write(item + "\t");
    }
    Console.WriteLine();
}

Karmaşık Fatura Tablolarını Nasıl Okuyabilirim?

İş ortamlarında bulabileceğiniz daha yaygın karmaşık tablolardan biri faturalar. Faturalar, birleşik hücreler, değişken sütun genişlikleri ve iç içe yapıların olduğu veri satırları ve sütunlarına sahip karmaşık tablolardır. IronOCR ile, onları etkili bir şekilde ele almak için ReadDocumentAdvanced yöntemini kullanıyoruz. Süreç, belgeyi taramak, tablo yapısını tanımlamak ve verileri çıkarmak içerir. Bu örnekte, IronOCR'un faturadaki bilgilerin tümünü nasıl aldığını göstermek için 'invoiceTable.pdf' dosyasını kullanıyoruz.

ReadDocumentAdvanced yöntemi, temel IronOCR paketinin yanında IronOcr.Extensions.AdvancedScan paketinin yüklenmesini gerektirir. Bu uzantı, özellikle karmaşık belge düzenleri için eğitilmiş gelişmiş makine öğrenimi yetenekleri sağlar.

Lütfen dikkate alın:

Gelişmiş taramanın .NET Framework'te kullanılması, projenin x64 mimarisinde çalışmasını gerektirir. Proje yapılandırmasına gidin ve bu seçeneği başarabilmek için '32-bit Tercih Et' seçeneğini kaldırın. Aşağıdaki sorun giderme kılavuzunda daha fazla bilgi edinin: ".NET Framework'te Gelişmiş Tarama." )}]

using IronOcr;
using System.Linq;

// Instantiate OCR engine
var ocr = new IronTesseract();

using var input = new OcrInput();
input.LoadPdf("invoiceTable.pdf");

// Perform OCR
var result = ocr.ReadDocumentAdvanced(input);

var cellList = result.Tables.First().CellInfos;

Bu yöntem, belgenin metin verilerini iki kategoriye ayırır: biri kenarlarla çevrili diğeri ise kenarlarla çevrili değil. Kenarlıklı içerik için, kütüphane daha fazla alt bölümlere ayırır ve tablonun yapısına göre analiz eder. Yöntem, şu konularda üstündür:

  • Çeşitli açıklamalara sahip fatura satır kalemleri
  • Çoklu sütun fiyat dökümleri
  • Gönderim ve fatura adres blokları
  • Vergi ve toplam hesaplama bölümleri
  • Başlık ve alt bilgi bilgileri

Sonuçlar aşağıda gösterilmiştir. Bu yöntem, kenarlarla çevrili bilgiler üzerine odaklandığı için, birden fazla satıra yayılmış birleşik hücreler tek bir hücre olarak kabul edilecektir.

Çıkarılan Veriler Nasıl Görünür?

Iron Software OCR, sevkiyat faturasındaki tablo verilerini yapılandırılmış hiyerarşik biçime çıkarıyor

Çıkarılan Tablo Hücrelerini Nasıl Organize Eder ve İşlerim?

Şu anki uygulamada, çıkarılan hücreler henüz düzgün bir şekilde organize edilmemiştir. Ancak, her hücre de X ve Y koordinatları, boyutları ve daha fazlası gibi değerli bilgiler içerir. Bu veriler kullanılarak, çeşitli amaçlar için bir yardımcı sınıf oluşturabiliriz. Hücre bilgileri şunları içerir:

  • Konumlandırma için doğru X/Y koordinatları
  • Genişlik ve yükseklik boyutları
  • Metin içeriği
  • Güvenlik puanları
  • Hücre ilişkileri

Bu ayrıntılı bilgiler, tablo yapısını programlı olarak yeniden oluşturmanıza ve veri çıkarmak için özel mantık uygulamanıza olanak tanır. Bu koordinatları kullanarak aynı zamanda, sonraki işlemlerde hedeflenen OCR işlemleri için belirli bölgeleri tanımlayabilirsiniz.

İşte bazı temel yardımcı yöntemler:

using System;
using System.Collections.Generic;
using System.Linq;

// A helper class to process table data by sorting cells based on coordinates
public static class TableProcessor
{
    // Method to organize cells by their coordinates (Y top to bottom, X left to right)
    public static List<CellInfo> OrganizeCellsByCoordinates(List<CellInfo> cells)
    {
        // Sort cells by Y (top to bottom), then by X (left to right)
        var sortedCells = cells
            .OrderBy(cell => cell.CellRect.Y)
            .ThenBy(cell => cell.CellRect.X)
            .ToList();

        return sortedCells;
    }

    // Example method demonstrating how to process multiple tables
    public static void ProcessTables(Tables tables)
    {
        foreach (var table in tables)
        {
            var sortedCells = OrganizeCellsByCoordinates(table.CellInfos);

            Console.WriteLine("Organized Table Cells:");

            // Initialize previous Y coordinate
            int previousY = sortedCells.Any() ? sortedCells.First().CellRect.Y : 0;

            foreach (var cell in sortedCells)
            {
                // Print a new line if the Y-coordinate changes, indicating a new row
                if (Math.Abs(cell.CellRect.Y - previousY) > cell.CellRect.Height * 0.8)
                {
                    Console.WriteLine();  // Start a new row
                    previousY = cell.CellRect.Y;
                }

                // Print the cell text followed by a tab
                Console.Write($"{cell.CellText}\t");
            }

            Console.WriteLine("\n--- End of Table ---");  // End of a table
        }
    }

    // Method to extract a specific row by the given index
    public static List<CellInfo> ExtractRowByIndex(TableInfo table, int rowIndex)
    {
        if (table == null || table.CellInfos == null || !table.CellInfos.Any())
        {
            throw new ArgumentException("Table is empty or invalid.");
        }

        var sortedCells = OrganizeCellsByCoordinates(table.CellInfos);
        List<List<CellInfo>> rows = new List<List<CellInfo>>();

        // Group cells into rows based on Y coordinates
        int previousY = sortedCells.First().CellRect.Y;
        List<CellInfo> currentRow = new List<CellInfo>();

        foreach (var cell in sortedCells)
        {
            if (Math.Abs(cell.CellRect.Y - previousY) > cell.CellRect.Height * 0.8)
            {
                // Store the completed row and start a new one
                rows.Add(new List<CellInfo>(currentRow));
                currentRow.Clear();

                previousY = cell.CellRect.Y;
            }

            currentRow.Add(cell);
        }

        // Add the last row if it wasn't added yet
        if (currentRow.Any())
        {
            rows.Add(currentRow);
        }

        // Retrieve the specified row
        if (rowIndex < 0 || rowIndex >= rows.Count)
        {
            throw new IndexOutOfRangeException($"Row index {rowIndex} is out of range.");
        }

        return rows[rowIndex];
    }
}

Tablo Çıkarma için En İyi Uygulamalar

IronOCR ile tablo çıkarma çalışırken, bu en iyi uygulamaları göz önünde bulundurun:

  1. Belge Kalitesi: Daha yüksek çözünürlüklü belgeler daha iyi sonuçlar verecektir. Taranmış belgeler için, minimum 300 DPI olduğundan emin olun.

  2. Ön İşleme: Düşük kaliteli veya eğik tablolar içeren belgeler için, işleme başlamadan önce IronOCR'un görsel düzeltme özelliklerini kullanmayı düşünün.

  3. Performans: Birden fazla tablo içeren büyük belgeler için, sayfaları paralel olarak işlemek için çoklu iş parçacığı ve eşzamanlı destek kullanmayı düşünün.

  4. Çıktı Seçenekleri: Tablo verilerini çıkardıktan sonra, sonuçları çeşitli formatlarda dışa aktarabilirsiniz. Veri çıkış seçenekleri ve işlenmiş belgelerinizden aranabilir PDF'ler oluşturmayı öğrenin.

  5. Akış İşleme: Web uygulamaları veya hafızada tutulan belgelerle çalışılan senaryolar için, dosya sistemi işlemlerinden kaçınmak amacıyla PDF akışları için OCR kullanmayı düşünün.

Özet

IronOCR, hem standart Tesseract tabanlı algılama hem de gelişmiş makine öğrenimi yöntemleri aracılığıyla güçlü tablo çıkarma yetenekleri sağlar. Standart yaklaşım basit tablolar için iyi çalışırken, ReadDocumentAdvanced yöntemi faturalar gibi karmaşık belgelerde mükemmeldir. Verilen yardımcı yöntemlerle, çıkarılan verileri özel ihtiyaçlarınıza göre düzenleyebilir ve işleyebilirsiniz.

Belge işleme iş akışlarınızı geliştirmek ve .NET uygulamalarınızda optik karakter tanımanın tüm potansiyelini değerlendirmek için daha fazla IronOCR özelliğini keşfedin.

Sıkça Sorulan Sorular

PDF'lerden ve görüntülerden tabloları C# ile nasıl çıkarabilirim?

IronOCR, C# geliştiricilerinin PDF'lerden ve görüntülerden tablo verilerini gelişmiş makine öğrenimi modelleri kullanarak çıkarmalarını sağlar. Basit tablolar için, ReadDataTables özelliği true olarak ayarlanmış OcrInput sınıfını kullanın. Birleşik hücreler içeren karmaşık tablolar için, daha doğru sonuçlar için ReadDocumentAdvanced yöntemini kullanın.

Basit ve karmaşık tablo çıkarma arasındaki fark nedir?

IronOCR'deki basit tablo çıkarma, Tesseract ile ReadDataTables özelliğini kullanır ve net hücre sınırlarına sahip temel tablolar için iyi çalışır. Karmaşık tablo çıkarma, birleşik hücreler, faturalar ve karmaşık biçimlendirmeleri ele almak için makine öğrenimini kullanan ReadDocumentAdvanced yöntemini gerektirir.

Karmaşık tablolardan verileri nasıl hızlıca çıkarabilirim?

IronOCR'nin ReadDocumentAdvanced yöntemini bir çağrıda kullanın: var cells = new IronTesseract().ReadDocumentAdvanced(new OcrInput().LoadPdf('invoiceTable.pdf')).Tables.First().CellInfos; Bu, tablo düzenlerini ve karmaşık biçimlendirmeleri anlamak için makine öğrenimini kullanır.

Basit tablo algılamasıyla en iyi çalışan belge türleri nelerdir?

IronOCR'nin basit tablo algılama yöntemi, özellikle e-tablo dışa aktarmaları, tutarlı satır/sütun yapısına sahip temel veritabloları, tablosal veriler içeren raporlar ve birleşik hücreleri olmayan basit envanter listeleriyle iyi çalışır.

Temel tablolar için tablo algılamayı nasıl etkinleştiririm?

IronOCR içinde temel tablolar için tablo algılamayı etkinleştirmek için ReadDataTables özelliğini true olarak ayarlayın. Bu, Tesseract'ın tablo algılama yeteneklerini kullanır ve net hücre sınırlarına sahip, birleşik hücreleri olmayan tablolar için iyi çalışır.

Kütüphane karmaşık yerleşimlerle fatura ve mali raporları işleyebilir mi?

Evet, IronOCR'nin ReadDocumentAdvanced yöntemi, karmaşık belgeleri işlemek için özel olarak tasarlanmıştır, örneğin faturalar ve mali raporlar gibi. Birleşik hücreler ve karmaşık biçimlendirmelerle tablo verilerini algılamak ve çıkarmak için eğitilmiş makine öğrenimi modellerini kullanır.

Is it possible to organize extracted table cells based on coordinates using IronOCR?

Yes, IronOCR provides detailed information for each extracted cell, including its coordinates. You can use this data to organize cells programmatically by sorting them based on X and Y coordinates, allowing for precise reconstruction of the table structure.

What document quality is recommended for optimal results when using IronOCR for table extraction?

For optimal results, it is recommended to use documents with a minimum resolution of 300 DPI. Higher quality documents improve the accuracy of the OCR process and result in better table extraction outcomes.

Can IronOCR process tables in multi-page documents effectively?

Yes, IronOCR can process tables in multi-page documents effectively. It supports parallel processing using multithreading and async support to handle large documents with multiple tables efficiently.

What output options does IronOCR provide after extracting table data?

IronOCR provides several output options after extracting table data, including exporting results in various formats and creating searchable PDFs. Explore its data output options to suit your needs.

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