Keressen és kapjon szöveget

Bevezetés

Előfordult már, hogy konkrét szöveget kellett kivonnia egy PDF-ből, de trükkösnek találta? A PDF-fájlok néha zárt tárolóknak tűnhetnek, ami megnehezíti a szükséges információk megszerzését. De itt van a jó hír: az Aspose.PDF for .NET segítségével könnyedén kereshet szöveget, és bármilyen PDF-fájlból visszakereshet. Ez a nagy teljesítményű könyvtár mindent tartalmaz, amire szüksége van a .NET-alkalmazások PDF-fájljainak kezeléséhez, így a szövegek kivonatolása gyerekjáték. Ebben az oktatóanyagban végigvezetjük a PDF-fájlból történő szöveg keresésének és kibontásának folyamatán az Aspose.PDF for .NET használatával. Akár szövegelemző eszközt épít, akár csak automatizálnia kell a PDF-jelentésekből való adatkinyerést, jó helyen jár!

Előfeltételek

Mielőtt belevágnánk a kódba, győződjön meg arról, hogy mindent beállított:

  1. Aspose.PDF for .NET: Le kell töltenie és telepítenie kell az Aspose.PDF for .NET fájlt. A letöltési oldalról szerezheti beitt.
  2. .NET-környezet: Győződjön meg arról, hogy a fejlesztőgépen be van állítva a .NET-keretrendszer vagy a .NET Core.
  3. Alapszintű C## ismeretek: A C# ismerete és a .NET projektekkel való munka némi ismerete ajánlott.
  4. PDF-dokumentum: egy minta PDF-fájl, amelyből szöveget kinyerünk. Ebben a példában azt fogjuk használniSearchAndGetTextFromAll.pdf.

Csomagok importálása

Mielőtt bármilyen kódot írna, importálnia kell a szükséges névtereket a projektbe, hogy működjön az Aspose.PDF fájllal.

using System.IO;
using Aspose.Pdf;
using Aspose.Pdf.Text;
using System;

Ezek a névterek hozzáférést biztosítanak a PDF dokumentum objektum modelljéhez, és lehetővé teszik számunkra a fájlon belüli szövegek kezelését.

Bontsuk le a folyamatot egyszerű lépésekre, hogy könnyedén követhesse.

1. lépés: Állítsa be a dokumentumkönyvtárat

Először is meg kell adnia annak a könyvtárnak az elérési útját, ahol a PDF található. Ez segít az alkalmazásnak megtalálni azt a fájlt, amelyből ki szeretné bontani a szöveget.

// A dokumentumok könyvtárának elérési útja.
string dataDir = "YOUR DOCUMENT DIRECTORY";
  • AdataDir változónak arra a könyvtárra kell mutatnia, ahol aSearchAndGetTextFromAll.pdf fájl tárolva van.
  • Cserélje ki"YOUR DOCUMENT DIRECTORY" a tényleges elérési úttal a gépen.

2. lépés: Nyissa meg a PDF-dokumentumot

Ezután megnyitjuk a PDF dokumentumot az Aspose.PDF segítségévelDocument objektum.

// Nyissa meg a dokumentumot
Document pdfDocument = new Document(dataDir + "SearchAndGetTextFromAll.pdf");
  • Új példányt hozunk létre aDocument osztályba a PDF teljes fájlútvonalának átadásával.
  • Ez betölti a PDF-fájlt a memóriába, és készen áll a feldolgozásra.

3. lépés: Hozzon létre egy szövegelnyelőt

ATextFragmentAbsorber Az objektum meghatározott szöveg keresésére szolgál a PDF-ben. Ebben az esetben a „szöveg” szót fogjuk keresni.

// Hozzon létre TextAbsorber objektumot a bemeneti keresési kifejezés összes példányának megtalálásához
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("text");
  • ATextFragmentAbsorber a karakterlánccal inicializálódik"text". Ez azt jelenti, hogy megkeresi a „text” szó minden előfordulását a PDF-dokumentumban.

4. lépés: Fogadja el az Absorber for All Pages

Most utasítjuk a PDF dokumentumot, hogy fogadja el az elnyelőt, és keresse meg a szöveget az összes oldalán.

// Fogadja el az összes oldal elnyelőjét
pdfDocument.Pages.Accept(textFragmentAbsorber);
  • AAccept módszert alkalmazzák a dokumentum oldalaira. Ezzel az összes oldalon megkeresi a megadott szöveget.

5. lépés: Szövegtöredékek kibontása

Miután az abszorber beszkennelte a dokumentumot, visszakereshetjük a kinyert szövegrészleteket.

// Szerezze be a kivont szövegrészleteket
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;
  • ATextFragments tulajdona aTextFragmentAbsorber a keresési kifejezésnek megfelelő összes szövegrészlet gyűjteményét adja vissza.

6. lépés: Ismételje meg a szövegrészleteket

Most, hogy megvan a szövegrészletek gyűjteménye, végignézzük őket, és kibontjuk a részleteket.

// Hurok át a töredékeken
foreach (TextFragment textFragment in textFragmentCollection)
{
    Console.WriteLine("Text : {0} ", textFragment.Text);
    Console.WriteLine("Position : {0} ", textFragment.Position);
    Console.WriteLine("XIndent : {0} ", textFragment.Position.XIndent);
    Console.WriteLine("YIndent : {0} ", textFragment.Position.YIndent);
    Console.WriteLine("Font - Name : {0}", textFragment.TextState.Font.FontName);
    Console.WriteLine("Font - IsAccessible : {0} ", textFragment.TextState.Font.IsAccessible);
    Console.WriteLine("Font - IsEmbedded : {0} ", textFragment.TextState.Font.IsEmbedded);
    Console.WriteLine("Font - IsSubset : {0} ", textFragment.TextState.Font.IsSubset);
    Console.WriteLine("Font Size : {0} ", textFragment.TextState.FontSize);
    Console.WriteLine("Foreground Color : {0} ", textFragment.TextState.ForegroundColor);
}
  • Aforeach ciklus mindegyiken keresztül iterálTextFragment a gyűjteményben.
  • Az egyes töredékek különféle tulajdonságait nyomtatjuk ki, például a tényleges szöveget, az oldalon elfoglalt helyét, a betűtípus részleteit és a betűméretet.
  • AXIndent ésYIndent A tulajdonságok megadják a PDF-en belüli szövegrészlet pontos koordinátáit.

Következtetés

És megvan! Néhány sornyi kóddal sikeresen megkerestük és kivontuk a szöveget egy PDF-fájlból az Aspose.PDF for .NET segítségével. Az Aspose.PDF rugalmassága lehetővé teszi a PDF-ek számos módon történő kezelését, így kiváló választás azoknak a fejlesztőknek, akiknek robusztus PDF-megoldásokra van szükségük .NET-környezetekben. Könnyedén kiterjesztheti ezt a példát más szavak keresésére, további részletek kinyerésére, vagy akár a PDF-tartalom módosítására az igényei szerint. Remélhetőleg ez az útmutató világos és egyértelmű megközelítést adott a PDF-ekkel való munkavégzéshez. Próbáld ki saját PDF-eddel!

GYIK

Kereshetek több szóra egyszerre?

Igen, módosíthatja aTextFragmentAbsorber több kifejezés kereséséhez a keresési karakterlánc megfelelő módosításával.

Mi van akkor, ha a szöveg több sort is átível?

Az Aspose.PDF akkor is felismeri és kibontja a szöveget, ha az több sort is átível. Ezeket a töredékeket egyenként is kezelheti.

Hogyan menthetem el a kicsomagolt szöveget fájlba?

A kibontott szöveget fájlba írhatja szabványos C# fájl I/O műveletekkel, mint plStreamWriter.

Támogatja az Aspose.PDF a szöveg kivonatát a beolvasott PDF-ekből?

Az Aspose.PDF nem támogatja az OCR-t. A beszkennelt PDF-ek esetében szükség van egy OCR-eszközre a szöveg felismeréséhez.

Hogyan kezelhetem a titkosított PDF-eket?

Ha a PDF-fájl jelszóval védett, az Aspose.PDF használatával feloldhatja a zárolást, ha megadja a jelszót a dokumentum betöltésekor.