Reguláris kifejezés keresése PDF fájlban

Bevezetés

Amikor nagy PDF-dokumentumokkal foglalkozik, előfordulhat, hogy meghatározott minták vagy formátumok, például dátumok, telefonszámok vagy más strukturált adatok után keres. A PDF manuális átfutása fárasztó lehet, igaz? Itt jön jól a reguláris kifejezés (regex) használata. Ebben az oktatóanyagban megvizsgáljuk, hogyan kereshet reguláris kifejezésmintát egy PDF-fájlban az Aspose.PDF for .NET használatával. Ez az útmutató végigvezeti Önt az egyes lépéseken, így könnyen megvalósíthatja azokat .NET-alkalmazásában.

Előfeltételek

Mielőtt belemerülnénk a lépésről lépésre bemutatott oktatóanyagba, nézzük meg, mit kell a helyén tartani:

  • Aspose.PDF for .NET: telepítenie kell ezt a könyvtárat. Ha még nem telepítette, megtehetitöltse le itt.
  • IDE: Visual Studio vagy bármely más C#-kompatibilis IDE.
  • .NET-keretrendszer: Győződjön meg arról, hogy projektje a .NET-keretrendszer megfelelő verziójával van beállítva.
  • Alapvető C# ismerete: Bár ez az útmutató részletes, a C# alapvető ismerete hasznos lesz.

Csomagok importálása

Először is importálnia kell a szükséges névtereket az Aspose.PDF for .NET fájlból a projektbe. Ezek a csomagok elengedhetetlenek a PDF-ekkel való munkavégzéshez és a regex használatával végzett keresési műveletek végrehajtásához.

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

Bontsuk le több lépésre a reguláris kifejezések keresésének folyamatát egy PDF-fájlban az Aspose.PDF használatával.

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

Minden PDF-művelet a dokumentum helyének meghatározásával kezdődik. Meg kell határoznia a PDF-fájl elérési útját, amely adataDir változó.

1.1. lépés: Határozza meg a dokumentum elérési útját

// Határozza meg a PDF-dokumentum elérési útját
string dataDir = "YOUR DOCUMENT DIRECTORY";

Cserélje ki"YOUR DOCUMENT DIRECTORY" a PDF-fájl tényleges elérési útjával. Ez a lépés kulcsfontosságú, mivel a kódot arra a fájlra irányítja, amellyel dolgozni szeretne.

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

Ezután meg kell nyitnia a PDF dokumentumot aDocument osztály az Aspose.PDF-ből.

// Nyissa meg a dokumentumot
Document pdfDocument = new Document(dataDir + "SearchRegularExpressionAll.pdf");

Itt,"SearchRegularExpressionAll.pdf" a minta PDF-fájl, amelyben a regex keresést végezzük.

2. lépés: A TextFragmentAbsorber beállítása

Itt történik a varázslat! ATextFragmentAbsorber osztály segít olyan szövegrészletek rögzítésében, amelyek megfelelnek egy adott mintának vagy reguláris kifejezésnek.

Állítsuk be az abszorbert úgy, hogy egy regex segítségével mintákat keressen. Ebben az esetben olyan évek mintáját keressük, mint például “1999-2000”.

// Hozzon létre TextAbsorber objektumot a reguláris kifejezésnek megfelelő kifejezések megtalálásához
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\\d{4}-\\d{4}"); // Mint 1999-2000

A reguláris kifejezés\\d{4}-\\d{4} négy számjegyből álló mintát keres, amelyet egy kötőjel és további négy számjegy követ, ami jellemző az évtartományokra.

3. lépés: Engedélyezze a Reguláris kifejezések keresését

Annak érdekében, hogy a keresési művelet reguláris kifejezésként értelmezze a mintát, konfigurálnia kell a keresési beállításokat a következővelTextSearchOptions osztály.

// Állítsa be a szöveges keresési beállítást a reguláris kifejezés használatának megadásához
TextSearchOptions textSearchOptions = new TextSearchOptions(true);
textFragmentAbsorber.TextSearchOptions = textSearchOptions;

Beállítása aTextSearchOptions hogytrue biztosítja, hogy az abszorber reguláris kifejezés alapú keresést használjon egyszerű szöveg helyett.

4. lépés: Fogadja el a szövegelnyelőt

Ebben a szakaszban alkalmazza a szövegelnyelőt a PDF-dokumentumra, hogy az elvégezhesse a keresési műveletet. Ez úgy történik, hogy felhívja aAccept módszer aPages a PDF dokumentum objektuma.

// Fogadja el az elnyelőt minden oldalhoz
pdfDocument.Pages.Accept(textFragmentAbsorber);

Ez a parancs feldolgozza a PDF összes oldalát, és megkeresi a reguláris kifejezésnek megfelelő szöveget.

5. lépés: Bontsa ki és jelenítse meg az eredményeket

A keresés befejezése után ki kell bontania az eredményeket. ATextFragmentAbsorber ezeket az eredményeket aTextFragmentCollection. A gyűjteményben végigpörgetve elérheti és megjelenítheti az egyes egyező szövegrészleteket.

5.1. lépés: A kivont szövegtöredékek lekérése

// Szerezze be a kivont szövegrészleteket
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;

Most, hogy összegyűjtötte a töredékeket, ideje végiglapozni őket, és megjeleníteni a releváns részleteket, például a szöveget, pozíciót, betűtípus részleteit és egyebeket.

5.2. lépés: Hurok a töredékeken keresztül

// 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);
}

MindegyikreTextFragment, kinyomtatja az olyan részleteket, mint a betűméret, a betűtípus neve és pozíciója. Ez nem csak a szöveg megtalálásában segít, hanem pontos formázást és helyét is megadja.

Következtetés

Megvan! A PDF-fájlokban reguláris kifejezésekkel való minták keresése hihetetlenül hatékony, különösen strukturált szövegek, például dátumok, telefonszámok és hasonló minták esetén. Az Aspose.PDF for .NET zökkenőmentes módot biztosít az ilyen műveletek egyszerű végrehajtására. Mostantól kihasználhatja a reguláris kifejezések erejét a PDF-szövegkeresés automatizálására, így a munkafolyamat hatékonyabbá válik.

GYIK

Kereshetek több mintát egy PDF-ben?

Igen, többször is futtathatóTextFragmentAbsorber objektumok, mindegyik más-más regex-mintával, ugyanazon a PDF-en.

Támogatja az Aspose.PDF a kis- és nagybetűket nem érzékeny minták keresését?

Teljesen! Beállíthatja aTextSearchOptions hogy a keresést érzéketlenné tegye a kis- és nagybetűket.

Van-e korlátozás a PDF-fájl méretére, amelyben kereshetek?

Nincs szigorú korlátozás, de a teljesítmény a PDF méretétől és a reguláris kifejezés mintájának összetettségétől függően változhat.

Kiemelhetem a talált szöveget a PDF-ben?

Igen, az Aspose.PDF lehetővé teszi a szöveg kiemelését vagy akár lecserélését, ha az abszorber segítségével megtalálta.

Hogyan kezelhetem a hibákat, ha a minta nem található?

Ha nem található egyezés, aTextFragmentCollection üres lesz. Ezt a forgatókönyvet egy egyszerű ellenőrzéssel kezelheti, mielőtt végignézné az eredményeket.