Hur man läser PDF-tabell i C#

Den här korta handledningsguiden om hur man läser tabellen PDF i C# och läser allt innehåll i den. Den ger en detaljerad beskrivning för att analysera alla tabeller i en PDF-fil och sedan komma åt varje enskild rad och cell i en viss tabell. För att läsa tabell från PDF C# består koden av några rader där käll-PDF-filen laddas och sedan tolkas alla tabeller för att läsa innehåll.

Steg för att läsa PDF-tabell i C#

  1. Lägg till en referens till Aspose.PDF for .NET för att läsa tabelldata i PDF:en
  2. Ladda käll-PDF-filen med klassobjektet Document
  3. Instantiera klassobjektet TableAbsorber och läs alla tabeller från den önskade PDF-sidan
  4. Iterera genom alla rader i mål-PDF-tabellen
  5. Iterera alla celler i varje rad och hämta alla textfragment
  6. Visa eller bearbeta varje textfragment i en cell

Ett systematiskt tillvägagångssätt följs i dessa steg för att läsa PDF-tabell i C#, där först PDF-filen laddas och sedan alla tabeller analyseras med hjälp av klassobjektet TableAbsorber. När alla tabeller har besökts i PDF-filen kan du få referensen till någon av tabellerna i den analyserade samlingen. Du kan komma åt valfri tabell, rad, cell och textfragment i en PDF-fil för att bearbeta eller visa den.

Kod för att läsa PDF-tabell i C#

using System;
using Aspose.Pdf;
using Aspose.Pdf.Text;
namespace ReadPDFTableInCSharp
{
class Program
{
static void Main(string[] args)
{
// Instantiate the license to avoid trial limitations while reading table data from PDF
License asposePdfLicense = new License();
asposePdfLicense.SetLicense("Aspose.pdf.lic");
// Load source PDF document having a table in it
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(@"PdfWithTable.pdf");
// Declare and initialize TableAbsorber class object for reading table from the PDF
Aspose.Pdf.Text.TableAbsorber tableAbsorber = new Aspose.Pdf.Text.TableAbsorber();
// Parse all the tables from the desired page in the PDF
tableAbsorber.Visit(pdfDocument.Pages[1]);
// Get reference to the first table in the parsed collection
AbsorbedTable absorbedTable = tableAbsorber.TableList[0];
// Iterate through all the rows in the PDF table
foreach (AbsorbedRow pdfTableRow in absorbedTable.RowList)
{
// Iterate through all the cells in the pdf table row
foreach (AbsorbedCell pdfTableCell in pdfTableRow.CellList)
{
// Fetch all the text fragments in the cell
TextFragmentCollection textFragmentCollection = pdfTableCell.TextFragments;
// Iterate through all the text fragments
foreach (TextFragment textFragment in textFragmentCollection)
{
// Display the text
Console.WriteLine(textFragment.Text);
}
}
}
System.Console.WriteLine("Done");
}
}
}

I denna exempelkod är det möjligt att använda C# parse PDF-tabell med hjälp av klassen TableAbsorber som används för att läsa tabeller. Men du kan också använda andra alternativ som TextAbsorber, ParagraphAbsorber, FontAbsorber och TextFragmentAbsorber för att komma åt olika delar av dokumentet. Du kan antingen iterera genom hela samlingen eller komma åt enskilda element med hjälp av arrayindex.

Vi har lärt oss hur man läser PDF-tabell i C# i det här ämnet. Men om du vill läsa PDF-bokmärken, se artikeln om hur man läser bokmärken i PDF med C#.

 Svenska