Extrahera kolumntext i PDF-fil
Introduktion
Arbetar du med PDF-filer och behöver extrahera text i ett specifikt kolumnformat? Oavsett om du behandlar fakturor, rapporter eller strukturerade dokument kan det vara svårt att extrahera text från en PDF-fil. Det är här Aspose.PDF för .NET går in för att förenkla processen. I den här handledningen går vi igenom hur du enkelt extraherar kolumner med text från en PDF-fil.
Förutsättningar
Innan vi dyker in i koden, låt oss täcka de väsentliga sakerna du behöver:
- Aspose.PDF för .NET: Se till att du har den senaste versionen av Aspose.PDF för .NET installerad. Om inte, kan duladda ner den här.
- Utvecklingsmiljö: Du behöver Visual Studio eller annan .NET-utvecklingsmiljö för att arbeta med koden.
- PDF-dokument: Ha ett exempel på PDF-dokument till hands, helst ett med textkolumner, eftersom vi kommer att extrahera text från det.
Om du inte har installerat Aspose.PDF för .NET än, kan du ta engratis provperiod ellerköpa en licens för alla funktioner. Du kan också ansöka om entillfällig licens om det behövs.
Importera namnområden
För att använda Aspose.PDF för .NET i ditt projekt måste du importera följande namnrymder:
using System.IO;
using Aspose.Pdf;
using Aspose.Pdf.Text;
using System;
Steg-för-steg-guide: Extrahera textkolumner från en PDF
Låt oss nu dela upp varje del av koden för att bättre förstå hur den fungerar. Följ med när vi går steg för steg och förklarar varje segment av processen.
Steg 1: Ladda PDF-dokumentet
Det första du behöver göra är att ladda din PDF-fil iDocument
objekt. Så här interagerar Aspose.PDF med ditt dokument.
string dataDir = "YOUR DOCUMENT DIRECTORY";
Document pdfDocument = new Document(dataDir + "ExtractTextPage.pdf");
I det här steget definierar vi helt enkelt katalogen där ditt PDF-dokument lagras. Ersätta"YOUR DOCUMENT DIRECTORY"
med sökvägen till din lokala PDF-fil. DeDocument
objekt laddar PDF:en i minnet, vilket gör den tillgänglig för vidare bearbetning.
Steg 2: Ställ in Text Fragment Absorber
Därefter använder vi enTextFragmentAbsorber
för att absorbera eller fånga all text från PDF-filen. Denna absorberklass är designad för att extrahera textfragment från specifika områden i din PDF, vilket gör den idealisk för att extrahera textkolumner.
TextFragmentAbsorber tfa = new TextFragmentAbsorber();
pdfDocument.Pages.Accept(tfa);
TextFragmentCollection tfc = tfa.TextFragments;
Här skapar vi en instans avTextFragmentAbsorber
och tillämpa den på alla sidor i PDF-filen medAccept()
. DeTextFragmentCollection
lagrar den extraherade texten, och från denna samling kan vi manipulera eller extrahera text efter behov.
Steg 3: Justera teckenstorleken för den extraherade texten
När du har fångat textfragmenten kanske du vill minska deras teckenstorlek, särskilt när originaltexten är för stor. I det här exemplet minskar vi teckensnittsstorleken med 70 %.
foreach (TextFragment tf in tfc)
{
// Minska teckenstorleken med 70 %
tf.TextState.FontSize = tf.TextState.FontSize * 0.7f;
}
Denna kod går igenom var och enTextFragment
i samlingen och minskar dess teckenstorlek med 70 %. Att justera teckenstorleken kan göra den extraherade texten lättare att hantera, särskilt om du formaterar den för olika ändamål.
Steg 4: Spara dokumentet i en minnesström
Efter att ha modifierat texten sparar vi PDF-filen i enMemoryStream
. Detta gör att vi kan behålla dokumentet i minnet för vidare bearbetning utan att behöva skriva tillbaka det till disken.
Stream st = new MemoryStream();
pdfDocument.Save(st);
pdfDocument = new Document(st);
Här sparar vi PDF:en i en minnesström och laddar sedan om dokumentet. Den här metoden är användbar när du arbetar med stora filer och vill undvika onödiga diskoperationer.
Steg 5: Extrahera all text med Text Absorber
Nu när vi har förberett PDF:en är det dags att extrahera texten. Vi använderTextAbsorber
för att hämta all text från dokumentet.
TextAbsorber textAbsorber = new TextAbsorber();
pdfDocument.Pages.Accept(textAbsorber);
String extractedText = textAbsorber.Text;
I detta steg,TextAbsorber
absorberar all text från PDF:en och den extraherade texten lagras iextractedText
sträng. Det är här magin händer - dina textkolumner är nu i vanlig textformat!
Steg 6: Spara den extraherade texten till en fil
Slutligen sparar vi den extraherade texten i en.txt
fil för enkel åtkomst och vidare användning.
dataDir = dataDir + "ExtractColumnsText_out.txt";
System.IO.File.WriteAllText(dataDir, extractedText);
Console.WriteLine("\nColumns text extracted successfully from Pages of PDF Document.\nFile saved at " + dataDir);
Denna kod skriver den extraherade texten till en ny.txt
filen och sparar den i din angivna katalog. Ett meddelande visas i konsolen för att bekräfta att processen lyckades.
Slutsats
Där har du det! Att extrahera kolumner med text från en PDF-fil med Aspose.PDF för .NET är enklare än du kanske tror. Med bara några rader kod kan du ladda en PDF, extrahera specifik text, justera formateringen och spara resultaten i en textfil.
Den här tekniken är otroligt användbar för att bearbeta strukturerade dokument som tabeller, rapporter eller annat innehåll organiserat i kolumner. Oavsett om du behöver automatisera datautvinning eller bearbeta bulkdokument, tillhandahåller Aspose.PDF verktygen för att få det att hända effektivt.
FAQ’s
Kan jag extrahera text från specifika sidor i en PDF?
Ja! Du kan ändraTextFragmentAbsorber
för att rikta in sig på specifika sidor med hjälp avpdfDocument.Pages[pageIndex].Accept(tfa);
metod.
Är det möjligt att extrahera text från endast en kolumn i en PDF med flera kolumner?
Ja, men du måste arbeta med koordinaterna för textfragmenten med hjälp avTextFragment.Rectangle
för att rikta in sig på specifika områden i dokumentet.
Hur kan jag förbättra noggrannheten i textextraktion?
För bättre noggrannhet, se till att PDF-filens struktur är väldefinierad och undvik dokument med komplexa layouter. Du kan också finjusteraTextFragmentAbsorber
för att extrahera text baserat på teckensnittsstilar, storlekar eller regioner.
Stöder Aspose.PDF textextraktion från skannade dokument?
Ja, men du måste använda OCR-teknik (Optical Character Recognition). Aspose tillhandahåller verktyg för detta också.
Hur hanterar jag stora PDF-filer med tusentals sidor?
För stora PDF-filer, bearbeta dokumentet i bitar genom att extrahera text från några sidor åt gången för att undvika hög minnesanvändning.