Ekstrak Tabel PDF

PDF telah menjadi salah satu format dokumen yang paling banyak digunakan di banyak bidang. Dalam berbagai kasus, ini digunakan untuk menghasilkan faktur di mana data tampak dalam bentuk tabel. Dalam kasus seperti itu, Anda mungkin perlu mengurai PDF untuk membaca data dari tabel secara terprogram. Untuk mencapai ini, artikel ini membahas cara mengekstrak data dari tabel PDF menggunakan C#.

C# API untuk Mengekstrak Tabel dari PDF

Untuk mengekstrak data dari tabel dalam file PDF, kami akan menggunakan Aspose.PDF for .NET. Ini adalah API yang kuat yang menyediakan berbagai fitur manipulasi PDF. Anda dapat mengunduh API atau menginstalnya menggunakan NuGet.

PM> Install-Package Aspose.PDF

Ekstrak Data dari Tabel PDF di C#

Berikut ini adalah langkah-langkah untuk mengekstrak data dari tabel dalam PDF menggunakan C#.

Contoh kode berikut menunjukkan cara mengekstrak teks dari tabel PDF di C#.

// Muat dokumen PDF sumber
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document("sample.pdf"); 

// Ulangi halaman                      
foreach (var page in pdfDocument.Pages)
{
	// Buat penyerap tabel dan kunjungi halaman
	Aspose.Pdf.Text.TableAbsorber absorber = new Aspose.Pdf.Text.TableAbsorber();
	absorber.Visit(page);
	
	// Ulangi setiap tabel yang diserap 
	foreach (AbsorbedTable table in absorber.TableList)
	{
		Console.WriteLine("Table");
		
		// Ulangi setiap baris dalam tabel
		foreach (AbsorbedRow row in table.RowList)
		{
			// Ulangi setiap sel dalam baris
			foreach (AbsorbedCell cell in row.CellList)
			{       
				// Ulangi fragmen teks
				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();
		}
	}
}

Ekstrak Tabel dari Area Halaman Tertentu

Berikut ini adalah langkah-langkah untuk mengekstrak tabel dari bagian halaman tertentu dalam PDF menggunakan C#.

Contoh kode berikut menunjukkan cara mengekstrak tabel dari wilayah tertentu di halaman PDF.

// Muat dokumen PDF sumber
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document("sample.pdf"); 

// Pilih halaman dan ekstrak anotasi perseginya
var page = pdfDocument.Pages[1];
var squareAnnotation =
	page.Annotations.FirstOrDefault(ann => ann.AnnotationType == Annotations.AnnotationType.Square)
	as Annotations.SquareAnnotation;

// Buat penyerap tabel dan kunjungi halaman
Aspose.Pdf.Text.TableAbsorber absorber = new Aspose.Pdf.Text.TableAbsorber();
absorber.Visit(page);

// Ulangi setiap tabel yang diserap dalam daftar 
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)
	{
		// Ulangi setiap baris tabel
		foreach (AbsorbedRow row in table.RowList)
		{
			// Ulangi setiap sel dalam baris
			foreach (AbsorbedCell cell in row.CellList)
			{
				// Ulangi fragmen teks dan cetak teks
				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();
		}
	}
}

Dapatkan Lisensi Gratis

Anda dapat menggunakan Aspose.PDF for .NET tanpa batasan evaluasi menggunakan lisensi sementara.

Kesimpulan

Pada artikel ini, Anda telah mempelajari cara mengekstrak data dari tabel dalam PDF menggunakan C#. Selanjutnya, Anda telah melihat cara mengekstrak tabel dari wilayah tertentu pada halaman dalam PDF. Anda dapat mempelajari lebih lanjut tentang C# PDF API menggunakan dokumentasi. Selain itu, Anda dapat memposting pertanyaan Anda di forum kami.

Lihat juga