Nahradit text v regulárním výrazu v souboru PDF

Zavedení

Aspose.PDF for .NET je úžasný nástroj, který umožňuje vývojářům snadno manipulovat se soubory PDF. Jednou z jeho výkonných funkcí je schopnost vyhledávat text na základě regulárních výrazů a nahrazovat jej. Pokud jste někdy museli pracovat s PDF, kde jste potřebovali změnit konkrétní textové vzory, jako jsou data, telefonní čísla nebo kódy – to je přesně to, co hledáte. V tomto tutoriálu vás provedu procesem nahrazení textu pomocí regulárních výrazů v souboru PDF. Rozdělíme to do snadno srozumitelných kroků, abyste mohli tuto funkci hladce integrovat do svých projektů.

Předpoklady

Než se ponoříte do kódu, ujistěte se, že máte vše nastaveno:

  1. Aspose.PDF pro .NET: Budete potřebovat nejnovější verzi Aspose.PDF pro .NET. Můžete si jej stáhnoutzde.
  2. IDE: Visual Studio nebo jakékoli jiné integrované vývojové prostředí (IDE) kompatibilní s .NET.
  3. .NET Framework: Ujistěte se, že máte nainstalované rozhraní .NET Framework 4.0 nebo novější.
  4. Dokument PDF: Ukázkový soubor PDF, ve kterém chcete vyhledávat a nahrazovat text.

Jakmile budete mít vše na svém místě, můžete začít!

Importujte balíčky

První věc, kterou musíme udělat, je importovat požadované balíčky. To zajišťuje, že máme přístup ke všem potřebným třídám a metodám z Aspose.PDF.

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

To nám umožňuje pracovat s dokumenty PDF a zpracovávat textové fragmenty v dokumentu.

Pojďme si nyní projít procesem krok za krokem. Postupujte podle toho, jak pracujeme na nahrazení textu na základě regulárních výrazů.

Krok 1: Načtěte dokument PDF

Nejprve musíte načíst dokument PDF, kde budete nahrazovat text. To se provádí pomocíDocument třídy z Aspose.PDF.

string dataDir = "YOUR DOCUMENT DIRECTORY";
Document pdfDocument = new Document(dataDir + "SearchRegularExpressionPage.pdf");

V tomto kroku vyměňte"YOUR DOCUMENT DIRECTORY"se skutečnou cestou, kde je uložen váš soubor PDF. Tento kód otevře PDF a načte jej dopdfDocument objekt, se kterým budeme v dalších krocích manipulovat.

Krok 2: Definujte regulární výraz

Nyní, když máte načtený dokument, je dalším krokem definovat regulární výraz, který bude hledat textové vzory, které vás zajímají. Pokud například chcete nahradit rozsah roku jako „1999-2000 ,“ můžete použít regulární výraz\d{4}-\d{4}.

TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\\d{4}-\\d{4}"); 

Tento řádek nastavuje aTextFragmentAbsorber který vyhledá libovolné čtyřmístné číslo, po kterém následuje pomlčka a poté další čtyřmístné číslo. Regulární výraz můžete upravit podle potřeby, aby odpovídal vašemu konkrétnímu případu použití.

Krok 3: Povolte možnost vyhledávání regulárních výrazů

Aspose.PDF umožňuje doladit způsob vyhledávání textu. V tomto případě povolíme párování regulárních výrazů pomocíTextSearchOptions třída.

TextSearchOptions textSearchOptions = new TextSearchOptions(true);
textFragmentAbsorber.TextSearchOptions = textSearchOptions;

Nastavením této možnosti natrue, povolíte použití regulárních výrazů pro vyhledávání v PDF.

Krok 4: Naneste absorbér na konkrétní stránku

Dále použijemeTextFragmentAbsorber na konkrétní stránku dokumentu. Tento příklad se vztahuje na první stránku.

pdfDocument.Pages[1].Accept(textFragmentAbsorber);

Tato metoda extrahuje všechny textové fragmenty, které odpovídají regulárnímu výrazu, z první stránky dokumentu. Pokud chcete prohledat celý dokument, můžete procházet všechny stránky.

Krok 5: Projděte a nahraďte text

Nyní přichází ta zábavná část! Projdeme extrahované části textu, nahradíme text a přizpůsobíme vlastnosti, jako je velikost písma, typ písma a barva.

TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;

foreach (TextFragment textFragment in textFragmentCollection)
{
    textFragment.Text = "New Phrase"; // Nahraďte novým textem
    textFragment.TextState.Font = FontRepository.FindFont("Verdana");
    textFragment.TextState.FontSize = 22;
    textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Blue);
    textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
}

Zde procházíte každý fragment textu, který odpovídá regulárnímu výrazu. U každé shody je text nahrazen"New Phrase". Můžete také upravit písmo na „Verdana“, nastavit velikost písma na 22 a změnit barvu textu a pozadí.

Krok 6: Uložte aktualizovaný dokument PDF

Jakmile provedete všechny změny, je čas uložit upravený dokument PDF.

dataDir = dataDir + "ReplaceTextonRegularExpression_out.pdf";
pdfDocument.Save(dataDir);

Tím se uloží aktualizované PDF se všemi nahrazenými texty do nového souboru s názvemReplaceTextonRegularExpression_out.pdf.

Krok 7: Ověřte změny

Nakonec, abyste potvrdili, že vše fungovalo, vytiskněte zprávu do konzole:

Console.WriteLine("\nText replaced successfully based on a regular expression.\nFile saved at " + dataDir);

Tato zpráva potvrdí, že proces nahrazení textu byl úspěšný, a zobrazí umístění, kam byl nový PDF uložen.

Závěr

Úspěšně jste nahradili text v souboru PDF na základě regulárních výrazů pomocí Aspose.PDF pro .NET! Ať už automatizujete zpracování dokumentů nebo jen čistíte některé zastaralé informace, tato funkce je neuvěřitelně výkonná. Pomocí několika řádků kódu můžete provádět složité změny textu ve velkých dokumentech během několika sekund.

FAQ

Mohu použít více regulárních výrazů v jednom dokumentu?

Ano, můžete vytvořit víceTextFragmentAbsorber objekty, každý s jinými regulárními výrazy, a aplikovat je na dokument.

Je Aspose.PDF for .NET kompatibilní s .NET Core?

Ano, Aspose.PDF pro .NET podporuje jak .NET Framework, tak .NET Core.

Mohu nahradit text na více stránkách najednou?

Absolutně! Místo použití absorbéru na jednu stránku můžete procházet všemi stránkami nebo jej dokonce aplikovat na celý dokument najednou.

Co když chci hledat text, v němž se nerozlišují malá a velká písmena?

Regulární výraz můžete upravit tak, aby nerozlišoval malá a velká písmena, pomocí příslušných příznaků regulárního výrazu nebo vyladěním možností vyhledávání.

Mohu nahradit obrázky v souboru PDF?

Ano, Aspose.PDF for .NET také podporuje nahrazování a manipulaci s obrázky v dokumentech PDF.