Wyszukaj wyrażenie regularne w pliku PDF
Wstęp
Pracując z dużymi dokumentami PDF, możesz znaleźć się w sytuacji, w której będziesz szukać określonych wzorców lub formatów, takich jak daty, numery telefonów lub inne ustrukturyzowane dane. Ręczne przeglądanie pliku PDF może być żmudne, prawda? W tym miejscu przydaje się użycie wyrażenia regularnego (regex). W tym samouczku pokażemy, jak wyszukiwać wzorzec wyrażenia regularnego w pliku PDF przy użyciu Aspose.PDF dla .NET. Ten przewodnik przeprowadzi Cię przez każdy krok, dzięki czemu będziesz mógł łatwo zaimplementować go w swojej aplikacji .NET.
Wymagania wstępne
Zanim przejdziemy do szczegółowej instrukcji, omówmy, co jest potrzebne:
- Aspose.PDF dla .NET: Musisz mieć zainstalowaną tę bibliotekę. Jeśli jeszcze jej nie zainstalowałeś, możeszpobierz tutaj.
- IDE: Visual Studio lub inne środowisko IDE zgodne z C#.
- .NET Framework: Upewnij się, że Twój projekt jest skonfigurowany z wykorzystaniem odpowiedniej wersji .NET Framework.
- Podstawowa znajomość języka C#: Chociaż niniejszy przewodnik jest szczegółowy, podstawowa znajomość języka C# będzie pomocna.
Importuj pakiety
Na początek musisz zaimportować niezbędne przestrzenie nazw z Aspose.PDF dla .NET do swojego projektu. Te pakiety są niezbędne do pracy z plikami PDF i wykonywania operacji wyszukiwania za pomocą wyrażeń regularnych.
using Aspose.Pdf;
using Aspose.Pdf.Text;
using System;
Podzielmy proces wyszukiwania wyrażeń regularnych w pliku PDF za pomocą Aspose.PDF na kilka kroków.
Krok 1: Skonfiguruj katalog dokumentów
Każda operacja PDF zaczyna się od określenia, gdzie znajduje się Twój dokument. Musisz zdefiniować ścieżkę do pliku PDF, który jest przechowywany wdataDir
zmienny.
Krok 1.1: Zdefiniuj ścieżkę dokumentu
// Zdefiniuj ścieżkę do swojego dokumentu PDF
string dataDir = "YOUR DOCUMENT DIRECTORY";
Zastępować"YOUR DOCUMENT DIRECTORY"
z rzeczywistą ścieżką do pliku PDF. Ten krok jest kluczowy, ponieważ wskazuje kodowi plik, z którym chcesz pracować.
Krok 1.2: Otwórz dokument PDF
Następnie należy otworzyć dokument PDF za pomocąDocument
klasa z Aspose.PDF.
// Otwórz dokument
Document pdfDocument = new Document(dataDir + "SearchRegularExpressionAll.pdf");
Tutaj,"SearchRegularExpressionAll.pdf"
to przykładowy plik PDF, w którym przeprowadzimy wyszukiwanie za pomocą wyrażeń regularnych.
Krok 2: Skonfiguruj TextFragmentAbsorber
To tutaj dzieje się magia!TextFragmentAbsorber
Klasa ta pomaga w wychwytywaniu fragmentów tekstu, które pasują do określonego wzorca lub wyrażenia regularnego.
Skonfigurujmy absorber tak, aby znajdował wzorce za pomocą wyrażenia regularnego. W tym przypadku szukamy wzorca lat, takiego jak „1999-2000”.
// Utwórz obiekt TextAbsorber, aby znaleźć wszystkie frazy pasujące do wyrażenia regularnego
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\\d{4}-\\d{4}"); // Tak jak 1999-2000
Wyrażenie regularne\\d{4}-\\d{4}
szuka wzoru składającego się z czterech cyfr, po których następuje myślnik i kolejne cztery cyfry, co jest typowe dla zakresów lat.
Krok 3: Włącz wyszukiwanie wyrażeń regularnych
Aby mieć pewność, że operacja wyszukiwania zinterpretuje wzorzec jako wyrażenie regularne, należy skonfigurować opcje wyszukiwania za pomocąTextSearchOptions
klasa.
// Ustaw opcję wyszukiwania tekstu, aby określić użycie wyrażenia regularnego
TextSearchOptions textSearchOptions = new TextSearchOptions(true);
textFragmentAbsorber.TextSearchOptions = textSearchOptions;
UstawianieTextSearchOptions
Dotrue
zapewnia, że absorber korzysta z wyszukiwania opartego na wyrażeniach regularnych, a nie na zwykłym tekście.
Krok 4: Zaakceptuj Absorber Tekstu
Na tym etapie stosujesz absorber tekstu do dokumentu PDF, aby mógł on wykonać operację wyszukiwania. Wykonuje się to poprzez wywołanieAccept
metoda naPages
obiekt dokumentu PDF.
// Zaakceptuj absorber dla wszystkich stron
pdfDocument.Pages.Accept(textFragmentAbsorber);
Polecenie to przetwarza wszystkie strony dokumentu PDF, wyszukując tekst odpowiadający wyrażeniu regularnemu.
Krok 5: Wyodrębnij i wyświetl wyniki
Po zakończeniu wyszukiwania należy wyodrębnić wyniki.TextFragmentAbsorber
przechowuje te wyniki wTextFragmentCollection
Możesz przeglądać tę kolekcję w pętli, aby uzyskać dostęp do każdego pasującego fragmentu tekstu i wyświetlić go.
Krok 5.1: Pobierz wyodrębnione fragmenty tekstu
// Pobierz wyodrębnione fragmenty tekstu
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;
Teraz, gdy zebrałeś już fragmenty, czas przejrzeć je i wyświetlić istotne szczegóły, takie jak tekst, położenie, szczegóły czcionki i inne.
Krok 5.2: Przejrzyj fragmenty
// Przejrzyj fragmenty
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);
}
Dla każdegoTextFragment
, szczegóły takie jak rozmiar czcionki, nazwa czcionki i pozycja są drukowane. To nie tylko pomaga w znalezieniu tekstu, ale także podaje jego dokładne formatowanie i lokalizację.
Wniosek
Oto masz! Wyszukiwanie wzorców w pliku PDF za pomocą wyrażeń regularnych jest niezwykle potężne, szczególnie w przypadku tekstu strukturalnego, takiego jak daty, numery telefonów i podobne wzorce. Aspose.PDF dla .NET zapewnia bezproblemowy sposób wykonywania takich operacji z łatwością. Teraz możesz wykorzystać moc wyrażeń regularnych, aby zautomatyzować wyszukiwanie tekstu PDF, zwiększając wydajność swojego przepływu pracy.
Najczęściej zadawane pytania
Czy mogę wyszukiwać wiele wzorów w jednym pliku PDF?
Tak, możesz uruchomić wieleTextFragmentAbsorber
obiektów, każdy z innymi wzorcami wyrażeń regularnych, w tym samym pliku PDF.
Czy Aspose.PDF obsługuje wyszukiwanie wzorców bez względu na wielkość liter?
Oczywiście! Możesz skonfigurowaćTextSearchOptions
aby wyszukiwanie nie uwzględniało wielkości liter.
Czy istnieje ograniczenie rozmiaru pliku PDF, w którym mogę przeszukiwać?
Nie ma ścisłego limitu, ale wydajność może się różnić w zależności od rozmiaru pliku PDF i złożoności wzorca wyrażenia regularnego.
Czy mogę zaznaczyć znaleziony tekst w pliku PDF?
Tak, Aspose.PDF pozwala na podświetlanie lub nawet zastępowanie tekstu po jego znalezieniu za pomocą absorbera.
Jak poradzić sobie z błędami, jeśli wzorzec nie zostanie znaleziony?
Jeśli nie znaleziono żadnych pasujących wyników,TextFragmentCollection
będzie pusty. Możesz poradzić sobie z tym scenariuszem za pomocą prostego sprawdzenia przed pętleniem wyników.