Zoeken en tekstpagina ophalen in PDF-bestand
Invoering
Heb je ooit gemerkt dat je specifieke tekst in een PDF-document moest zoeken en deze moest extraheren voor verder gebruik? Misschien bouw je een app die documenten verwerkt en nauwkeurige gegevensextractie vereist, of misschien moet je PDF’s gewoon efficiënt parseren. Wat je geval ook is, je bent hier aan het juiste adres! In deze tutorial duiken we in hoe je tekst van een pagina in een PDF-bestand kunt zoeken en ophalen met Aspose.PDF voor .NET. Of je nu een beginner of een doorgewinterde ontwikkelaar bent, deze gids leidt je op een conversatievolle en boeiende manier door elke stap. Klaar om te beginnen? Laten we beginnen!
Vereisten
Voordat we beginnen met coderen, willen we er zeker van zijn dat je alles hebt wat je nodig hebt:
- Aspose.PDF voor .NET-bibliotheek: U kunt het downloaden vanhier of ontvang een gratis proefversie via dezelfde link. Voor aankopen gaat u naar deAspose-winkel.
- .NET Framework: U hebt een werkende .NET-ontwikkelomgeving nodig, zoals Visual Studio.
- Een PDF-bestand: U hebt een voorbeeld-PDF-bestand nodig waarin we de tekst kunnen zoeken en extraheren. Voor deze tutorial gaan we ervan uit dat het bestand de naam
SearchAndGetTextPage.pdf
.
Pakketten importeren
Allereerst moeten we de benodigde namespaces importeren om te werken met Aspose.PDF voor .NET. Zorg ervoor dat deze bovenaan uw code staan.
using System.IO;
using Aspose.Pdf;
using Aspose.Pdf.Text;
using System
Nu we de vereisten hebben behandeld, gaan we de code stap voor stap doornemen. Elke stap is duidelijk beschreven, zodat u hem gemakkelijk kunt volgen.
Stap 1: Stel het pad naar uw documentenmap in
Voordat u met uw PDF kunt werken, moet u het pad definiëren waar uw PDF-document is opgeslagen. Dit zorgt ervoor dat het programma toegang heeft tot het bestand.
string dataDir = "YOUR DOCUMENT DIRECTORY";
- dataDir: Dit is het pad naar de map waar uw PDF-bestanden zijn opgeslagen. Vervangen
"YOUR DOCUMENT DIRECTORY"
met het werkelijke pad waar de PDF zich bevindt.
Stap 2: Het PDF-document laden
De volgende stap is om het PDF-document in het geheugen te laden, zodat u ermee kunt werken. Dit is hoe:
Document pdfDocument = new Document(dataDir + "SearchAndGetTextPage.pdf");
- Document: Dit is de Aspose.PDF-klasse die het PDF-bestand laadt.
- pdfDocument: De variabele waar uw PDF-bestand wordt opgeslagen nadat het is geladen.
Stap 3: Maak een Text Absorber-object
DeTextFragmentAbsorber
class kunt u zoeken naar specifieke tekst in de PDF. Laten we een instantie van deze klasse maken om alle instanties van een bepaalde zoekterm te vinden.
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("Figure");
- TextFragmentAbsorber: Deze klasse is verantwoordelijk voor het vinden en extraheren van tekst uit de PDF.
- ‘Afbeelding’: Vervang dit door de tekst waarnaar u in de PDF wilt zoeken.
Stap 4: Pas de Text Absorber toe op de gehele PDF
Zodra de tekstabsorber is ingesteld, moet u het programma opdracht geven om alle pagina’s van de PDF te doorzoeken.
pdfDocument.Pages.Accept(textFragmentAbsorber);
- Accept(): Deze methode past de tekstabsorber toe op de PDF en scant elke pagina op de door u opgegeven tekst.
Stap 5: Haal de geëxtraheerde tekst op en doorloop deze
Nu we de PDF hebben gescand, is het tijd om de resultaten op te halen en weer te geven. We zullen door de geëxtraheerde tekstfragmenten heen lopen.
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;
- TextFragmentCollection: Deze verzameling bevat alle exemplaren van de tekstfragmenten die door de tekstabsorber zijn gevonden.
Stap 6: Loop door elk fragment en extraheer gegevens
We gaan nu door detextFragmentCollection
en verschillende eigenschappen van elk tekstsegment extraheren, zoals de positie, lettertypedetails en kleur.
foreach (TextFragment textFragment in textFragmentCollection)
{
foreach (TextSegment textSegment in textFragment.Segments)
{
Console.WriteLine("Text : {0} ", textSegment.Text);
Console.WriteLine("Position : {0} ", textSegment.Position);
Console.WriteLine("XIndent : {0} ", textSegment.Position.XIndent);
Console.WriteLine("YIndent : {0} ", textSegment.Position.YIndent);
Console.WriteLine("Font - Name : {0}", textSegment.TextState.Font.FontName);
Console.WriteLine("Font - IsAccessible : {0} ", textSegment.TextState.Font.IsAccessible);
Console.WriteLine("Font - IsEmbedded : {0} ", textSegment.TextState.Font.IsEmbedded);
Console.WriteLine("Font - IsSubset : {0} ", textSegment.TextState.Font.IsSubset);
Console.WriteLine("Font Size : {0} ", textSegment.TextState.FontSize);
Console.WriteLine("Foreground Color : {0} ", textSegment.TextState.ForegroundColor);
}
}
- TextFragment: Elk fragment bevat delen van de gevonden tekst.
- TextSegment: Elk fragment kan meerdere segmenten bevatten, die verschillende delen van de tekst vertegenwoordigen.
- TextState: Geeft gedetailleerde informatie over het lettertype, de grootte en de kleur van de tekst.
In deze lus printen we details uit, zoals de eigenlijke tekst, de positie ervan (X- en Y-coördinaten), het lettertype, of het lettertype in de PDF is ingesloten en de voorgrondkleur van de tekst.
Conclusie
En daar heb je het! Je hebt nu succesvol gezocht naar en tekst geëxtraheerd uit een PDF-bestand met Aspose.PDF voor .NET. Het is ongelooflijk hoeveel flexibiliteit je hebt met deze bibliotheek. Of je nu specifieke tekst in een groot document wilt zoeken, deze wilt extraheren of de eigenschappen ervan wilt analyseren, Aspose.PDF maakt het een fluitje van een cent. En met de code die we hebben behandeld, ben je goed uitgerust om het aan te passen aan jouw behoeften.
Veelgestelde vragen
Kan ik naar meerdere zinnen tegelijk zoeken?
Ja, u kunt de code aanpassen om naar meerdere zinnen te zoeken door meerdere zinnen te makenTextFragmentAbsorber
objecten.
Hoe kan ik tekst van een specifieke pagina halen?
U kunt een specifieke pagina targeten door deTextFragmentAbsorber
naar een enkele pagina in plaats van het hele document. Bijvoorbeeld:pdfDocument.Pages[1].Accept(textFragmentAbsorber);
.
Is Aspose.PDF voor .NET gratis?
Aspose.PDF is een commercieel product, maar u kunt het gebruiken met eengratis proefperiode.
Kan ik afbeeldingen uit de PDF halen met Aspose.PDF?
Ja, Aspose.PDF laat je naast tekst ook afbeeldingen extraheren. Controleer dedocumentatie voor meer informatie.
Wat als ik meer hulp of ondersteuning nodig heb?
U kunt altijd hulp krijgen van deAspose Ondersteuningsforum.