חלץ טבלאות PDF

PDF הפך לאחד מפורמטי המסמכים הנפוצים ביותר במגוון תחומים. במקרים שונים, הוא משמש להפקת חשבוניות שבהן נראה שהנתונים נמצאים בצורת טבלה. במקרים כאלה, ייתכן שיהיה עליך לנתח את ה-PDF כדי לקרוא נתונים מהטבלאות באופן תכנותי. כדי להשיג זאת, המאמר מכסה כיצד לחלץ נתונים מטבלאות PDF באמצעות C#.

ספריית C# לחילוץ טבלאות מ-PDF

כדי לחלץ נתונים מהטבלאות בקבצי PDF, נשתמש ב-Aspose.PDF for .NET. זוהי ספרייה רבת עוצמה המספקת מגוון רחב של תכונות מניפולציה של PDF. אתה יכול להוריד את הספרייה או להתקין אותה באמצעות NuGet.

PM> Install-Package Aspose.PDF

חלץ נתונים מטבלאות PDF ב-C#

להלן השלבים לחילוץ נתונים מטבלאות ב-PDF באמצעות C#.

דוגמת הקוד הבאה מראה כיצד לחלץ טקסט מטבלת PDF ב-C#.

// טען מסמך PDF מקור
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document("sample.pdf"); 

// עברו בלולאה בין הדפים                      
foreach (var page in pdfDocument.Pages)
{
	// צרו בולם שולחן ובקרו בעמוד
	Aspose.Pdf.Text.TableAbsorber absorber = new Aspose.Pdf.Text.TableAbsorber();
	absorber.Visit(page);
	
	// עברו בלולאה דרך כל שולחן נספג 
	foreach (AbsorbedTable table in absorber.TableList)
	{
		Console.WriteLine("Table");
		
		// עברו בלולאה בכל שורה בטבלה
		foreach (AbsorbedRow row in table.RowList)
		{
			// עברו בלולאה דרך כל תא בשורה
			foreach (AbsorbedCell cell in row.CellList)
			{       
				// עברו בלולאה בין קטעי הטקסט
				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();
		}
	}
}

חלץ טבלה מאזור ספציפי של PDF

להלן השלבים לחילוץ טבלה מחלק מסוים של הדף ב-PDF באמצעות C#.

דוגמת הקוד הבאה מראה כיצד לחלץ טבלה מאזור ספציפי של דף ה-PDF.

// טען מסמך PDF מקור
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document("sample.pdf"); 

// בחר את הדף וחלץ את ההערה המרובעת שלו
var page = pdfDocument.Pages[1];
var squareAnnotation =
	page.Annotations.FirstOrDefault(ann => ann.AnnotationType == Annotations.AnnotationType.Square)
	as Annotations.SquareAnnotation;

// צרו בולם שולחן ובקרו בעמוד
Aspose.Pdf.Text.TableAbsorber absorber = new Aspose.Pdf.Text.TableAbsorber();
absorber.Visit(page);

// עברו בלולאה בכל טבלה שנספגה ברשימה 
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)
	{
		// עברו בלולאה בכל שורה בטבלה
		foreach (AbsorbedRow row in table.RowList)
		{
			// עברו בלולאה דרך כל תא בשורה
			foreach (AbsorbedCell cell in row.CellList)
			{
				// עברו בלולאה בין קטעי הטקסט והדפיסו את הטקסט
				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();
		}
	}
}

ספריית C# PDF בחינם לחילוץ טבלאות

אתה יכול לקבל [רישיון זמני] בחינם27 ולחלץ נתונים מטבלאות בקבצי PDF ללא כל הגבלה.

חקור את ספריית C# PDF

אתה יכול לחקור יותר על ספריית C# PDF באמצעות תיעוד. כמו כן, אתה יכול לפרסם את השאילתות שלך בפורום שלנו.

סיכום

במאמר זה, למדת כיצד לחלץ נתונים מטבלאות ב-PDF באמצעות C#. יתר על כן, ראית כיצד לחלץ טבלה מאזור ספציפי של הדף ב-PDF. המדריך שלב אחר שלב ודוגמת הקוד הראו כמה קל לעבד את טבלת ה-PDF ולחלץ את הנתונים שלה.

ראה גם