Hledat regulární výraz v souboru PDF
Zavedení
Při práci s velkými dokumenty PDF se může stát, že budete hledat specifické vzory nebo formáty, jako jsou data, telefonní čísla nebo jiná strukturovaná data. Ruční procházení PDF může být únavné, že? Zde se hodí použití regulárního výrazu (regex). V tomto tutoriálu prozkoumáme, jak hledat vzor regulárního výrazu v souboru PDF pomocí Aspose.PDF pro .NET. Tato příručka vás provede každým krokem, abyste jej mohli snadno implementovat do své aplikace .NET.
Předpoklady
Než se ponoříme do podrobného tutoriálu, pojďme si projít, co potřebujete mít:
- Aspose.PDF pro .NET: Tuto knihovnu musíte mít nainstalovanou. Pokud jste jej ještě nenainstalovali, můžetestáhněte si jej zde.
- IDE: Visual Studio nebo jakékoli jiné IDE kompatibilní s C#.
- .NET Framework: Ujistěte se, že váš projekt je nastaven s příslušnou verzí .NET Framework.
- Základní znalost C#: I když je tato příručka podrobná, základní znalost C# bude užitečná.
Importujte balíčky
Pro začátek budete muset do svého projektu importovat potřebné jmenné prostory z Aspose.PDF for .NET. Tyto balíčky jsou nezbytné pro práci s PDF a provádění vyhledávacích operací pomocí regulárních výrazů.
using Aspose.Pdf;
using Aspose.Pdf.Text;
using System;
Pojďme si proces hledání regulárních výrazů v souboru PDF pomocí Aspose.PDF rozdělit do několika kroků.
Krok 1: Nastavte adresář dokumentů
Každá operace PDF začíná určením, kde se váš dokument nachází. Budete muset definovat cestu k vašemu souboru PDF, který je uložen vdataDir
variabilní.
Krok 1.1: Definujte cestu k dokumentu
// Definujte cestu k dokumentu PDF
string dataDir = "YOUR DOCUMENT DIRECTORY";
Nahradit"YOUR DOCUMENT DIRECTORY"
se skutečnou cestou k vašemu souboru PDF. Tento krok je zásadní, protože odkazuje váš kód na soubor, se kterým chcete pracovat.
Krok 1.2: Otevřete dokument PDF
Dále musíte otevřít dokument PDF pomocíDocument
třídy z Aspose.PDF.
// Otevřete dokument
Document pdfDocument = new Document(dataDir + "SearchRegularExpressionAll.pdf");
Zde,"SearchRegularExpressionAll.pdf"
je ukázkový soubor PDF, ve kterém provedeme vyhledávání regulárních výrazů.
Krok 2: Nastavte TextFragmentAbsorber
Tady se děje kouzlo! TheTextFragmentAbsorber
class pomáhá při zachycení fragmentů textu, které odpovídají konkrétnímu vzoru nebo regulárnímu výrazu.
Nastavíme absorbér, aby našel vzory pomocí regulárního výrazu. V tomto případě hledáme vzor let jako „1999-2000“.
// Vytvořte objekt TextAbsorber a najděte všechny fráze odpovídající regulárnímu výrazu
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\\d{4}-\\d{4}"); // Jako 1999-2000
Regulární výraz\\d{4}-\\d{4}
hledá vzor čtyř číslic následovaných pomlčkou a dalšími čtyřmi číslicemi, což je typické pro roky.
Krok 3: Povolte vyhledávání regulárních výrazů
Chcete-li zajistit, aby operace vyhledávání interpretovala vzor jako regulární výraz, musíte nakonfigurovat možnosti vyhledávání pomocí příkazuTextSearchOptions
třída.
// Nastavte možnost textového vyhledávání pro určení použití regulárního výrazu
TextSearchOptions textSearchOptions = new TextSearchOptions(true);
textFragmentAbsorber.TextSearchOptions = textSearchOptions;
NastaveníTextSearchOptions
natrue
zajišťuje, že absorber používá vyhledávání založené na regulárních výrazech spíše než prostý text.
Krok 4: Přijměte absorbér textu
V této fázi použijete absorbér textu na dokument PDF, aby mohl provést operaci vyhledávání. To se provádí zavoláním naAccept
metoda naPages
objekt dokumentu PDF.
// Přijměte absorbér pro všechny stránky
pdfDocument.Pages.Accept(textFragmentAbsorber);
Tento příkaz zpracuje všechny stránky PDF a hledá jakýkoli text, který odpovídá regulárnímu výrazu.
Krok 5: Extrahujte a zobrazte výsledky
Po dokončení vyhledávání je třeba extrahovat výsledky. TheTextFragmentAbsorber
ukládá tyto výsledky do aTextFragmentCollection
. Tuto kolekci můžete procházet, abyste získali přístup a zobrazili každý odpovídající textový fragment.
Krok 5.1: Načtěte extrahované textové fragmenty
// Získejte extrahované fragmenty textu
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;
Nyní, když jste shromáždili fragmenty, je čas je projít a zobrazit příslušné podrobnosti, jako je text, pozice, podrobnosti o písmu a další.
Krok 5.2: Smyčka skrz fragmenty
// Projděte 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);
}
Pro každéhoTextFragment
, vytisknou se podrobnosti, jako je velikost písma, název písma a poloha. To nejen pomáhá při hledání textu, ale také vám dává jeho přesné formátování a umístění.
Závěr
Tady to máš! Vyhledávání vzorů v souboru PDF pomocí regulárních výrazů je neuvěřitelně výkonné, zejména pro strukturovaný text, jako jsou data, telefonní čísla a podobné vzory. Aspose.PDF for .NET poskytuje bezproblémový způsob, jak takové operace snadno provádět. Nyní můžete využít sílu regulárních výrazů k automatizaci vyhledávání textu PDF a zefektivnit tak váš pracovní postup.
FAQ
Mohu hledat více vzorů v jednom PDF?
Ano, můžete spustit víceTextFragmentAbsorber
objekty, každý s různými vzory regulárních výrazů, ve stejném PDF.
Podporuje Aspose.PDF vyhledávání vzorů bez rozlišení malých a velkých písmen?
Absolutně! Můžete nakonfigurovatTextSearchOptions
aby vyhledávání nerozlišovalo malá a velká písmena.
Existuje omezení velikosti souboru PDF, ve kterém mohu prohledávat?
Neexistuje žádný přísný limit, ale výkon se může lišit v závislosti na velikosti PDF a složitosti vzoru regulárních výrazů.
Mohu zvýraznit nalezený text v PDF?
Ano, Aspose.PDF vám umožňuje zvýraznit nebo dokonce nahradit text, jakmile je nalezen pomocí absorbéru.
Jak se vypořádám s chybami, pokud vzor nebyl nalezen?
Pokud nejsou nalezeny žádné shody,TextFragmentCollection
bude prázdný. Tento scénář můžete zvládnout jednoduchou kontrolou před procházením výsledků.