PDF Tablolarını Çıkarın

PDF, çok sayıda alanda en yaygın kullanılan belge biçimlerinden biri haline geldi. Çeşitli durumlarda, verilerin tablo şeklinde göründüğü faturalar oluşturmak için kullanılır. Bu gibi durumlarda, tablolardan programlı olarak veri okumak için PDF’yi ayrıştırmanız gerekebilir. Bunu başarmak için makale, C# kullanarak PDF tablolarından nasıl veri çıkarılacağını kapsar.

Tabloları PDF’den Çıkarmak için C# API

PDF dosyalarındaki tablolardan veri çıkarmak için Aspose.PDF for .NET kullanacağız. Çok çeşitli PDF işleme özellikleri sağlayan güçlü bir API’dir. API’yi indirebilir veya NuGet kullanarak yükleyebilirsiniz.

PM> Install-Package Aspose.PDF

C# ile PDF Tablolarından Veri Çıkarma

Aşağıda, C# kullanarak bir PDF’deki tablolardan veri ayıklama adımları yer almaktadır.

Aşağıdaki kod örneği, C# dilinde PDF tablosundan nasıl metin çıkarılacağını gösterir.

// Kaynak PDF belgesini yükle
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document("sample.pdf"); 

// Sayfalar arasında döngü                      
foreach (var page in pdfDocument.Pages)
{
	// Bir tablo emici oluşturun ve sayfayı ziyaret edin
	Aspose.Pdf.Text.TableAbsorber absorber = new Aspose.Pdf.Text.TableAbsorber();
	absorber.Visit(page);
	
	// Emilen her tablodan döngü yapın 
	foreach (AbsorbedTable table in absorber.TableList)
	{
		Console.WriteLine("Table");
		
		// Tablodaki her satırda döngü yapın
		foreach (AbsorbedRow row in table.RowList)
		{
			// Satırdaki her hücrede döngü yapın
			foreach (AbsorbedCell cell in row.CellList)
			{       
				// Metin parçaları arasında döngü
				foreach (TextFragment fragment in cell.TextFragments)
				{
					var sb = new StringBuilder();
					foreach (TextSegment seg in fragment.Segments)
						sb.Append(seg.Text);
					Console.Write($"{sb.ToString()}|");
				}                           
			}
			Console.WriteLine();
		}
	}
}

Sayfanın Belirli Bir Alanından Tablo Çıkarma

Aşağıda, C# kullanarak bir PDF’de sayfanın belirli bir bölümünden tablo çıkarmak için izlenecek adımlar yer almaktadır.

Aşağıdaki kod örneği, tablonun PDF sayfasının belirli bir bölgesinden nasıl çıkarılacağını gösterir.

// Kaynak PDF belgesini yükle
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document("sample.pdf"); 

// Sayfayı seçin ve kare ek açıklamasını çıkarın
var page = pdfDocument.Pages[1];
var squareAnnotation =
	page.Annotations.FirstOrDefault(ann => ann.AnnotationType == Annotations.AnnotationType.Square)
	as Annotations.SquareAnnotation;

// Tablo emici oluşturun ve sayfayı ziyaret edin
Aspose.Pdf.Text.TableAbsorber absorber = new Aspose.Pdf.Text.TableAbsorber();
absorber.Visit(page);

// Listedeki emilen her tabloda döngü yapın 
foreach (AbsorbedTable table in absorber.TableList)
{
	var isInRegion = (squareAnnotation.Rect.LLX < table.Rectangle.LLX) &&
	(squareAnnotation.Rect.LLY < table.Rectangle.LLY) &&
	(squareAnnotation.Rect.URX > table.Rectangle.URX) &&
	(squareAnnotation.Rect.URY > table.Rectangle.URY);

	if (isInRegion)
	{
		// Tablonun her satırında döngü yapın
		foreach (AbsorbedRow row in table.RowList)
		{
			// Satırdaki her hücrede döngü yapın
			foreach (AbsorbedCell cell in row.CellList)
			{
				// Metin parçaları arasında dolaşın ve metni yazdırın
				foreach (TextFragment fragment in cell.TextFragments)
				{
					var sb = new StringBuilder();
					foreach (TextSegment seg in fragment.Segments)
					{
						sb.Append(seg.Text);
					}
					var text = sb.ToString();
					Console.Write($"{text}|");
				}
			}
			Console.WriteLine();
		}
	}
}

Ücretsiz Lisans Alın

Aspose.PDF for .NET’i bir geçici lisans kullanarak değerlendirme sınırlamaları olmaksızın kullanabilirsiniz.

Çözüm

Bu makalede, C# kullanarak bir PDF’deki tablolardan veri çıkarmayı öğrendiniz. Ayrıca, PDF’de sayfanın belirli bir bölgesinden nasıl tablo çıkarılacağını gördünüz. Belgeleri kullanarak C# PDF API hakkında daha fazlasını keşfedebilirsiniz. Ayrıca, sorularınızı forumumuza gönderebilirsiniz.

Ayrıca bakınız