PDF הפך לאחד מפורמטי המסמכים הנפוצים ביותר במגוון תחומים. במקרים שונים, הוא משמש להפקת חשבוניות שבהן נראה שהנתונים נמצאים בצורת טבלה. במקרים כאלה, ייתכן שיהיה עליך לנתח את ה-PDF כדי לקרוא נתונים מהטבלאות באופן תכנותי. כדי להשיג זאת, המאמר מכסה כיצד לחלץ נתונים מטבלאות PDF באמצעות C#.
ספריית C# לחילוץ טבלאות מ-PDF
כדי לחלץ נתונים מהטבלאות בקבצי PDF, נשתמש ב-Aspose.PDF for .NET. זוהי ספרייה רבת עוצמה המספקת מגוון רחב של תכונות מניפולציה של PDF. אתה יכול להוריד את הספרייה או להתקין אותה באמצעות NuGet.
PM> Install-Package Aspose.PDF
חלץ נתונים מטבלאות PDF ב-C#
להלן השלבים לחילוץ נתונים מטבלאות ב-PDF באמצעות C#.
- טען את מסמך ה-PDF באמצעות המחלקה מסמך.
- עברו בלולאה בין הדפים ב-PDF באמצעות אוסף Document.Pages.
- בכל איטרציה, אתחול האובייקט TableAbsorber ובקר בדף הנבחר באמצעות שיטת TableAbsorber.Visit(Page).
- בלולאה מקוננת, חזור על רשימת הטבלאות באוסף TableAbsorber.TableList.
- עבור כל AbsorbedTable באוסף, חזור על אוסף השורות ב-AbsorbedTable.RowList.
- עבור כל AbsorbedRow באוסף, חזור על אוסף התאים ב-AbsorbedRow.CellList.
- לבסוף, עברו דרך אוסף TextFragments של כל AbsorbedCell והדפיסו את הטקסט.
דוגמת הקוד הבאה מראה כיצד לחלץ טקסט מטבלת 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 באמצעות המחלקה מסמך.
- בחר את Page הרצוי מאוסף Document.Pages.
- חלץ את הערת הריבוע של הדף.
- אתחול האובייקט TableAbsorber ובקר בדף באמצעות שיטת TableAbsorber.Visit(Page).
- בלולאה מקוננת, חזור על רשימת הטבלאות באוסף TableAbsorber.TableList.
- אם הטבלה נמצאת באזור, בצע את השלבים הבאים.
- חזור על אוסף השורות ב-AbsorbedTable.RowList.
- עבור כל AbsorbedRow באוסף, חזור על אוסף התאים ב-AbsorbedRow.CellList.
- לבסוף, עברו בלולאה באוסף TextFragments של כל AbsorbedCell והדפיסו את הטקסט.
דוגמת הקוד הבאה מראה כיצד לחלץ טבלה מאזור ספציפי של דף ה-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 ולחלץ את הנתונים שלה.