Šablony se široce používají ke generování personalizovaných dokumentů nahrazením klíčů šablon příslušnými hodnotami. Tento článek popisuje, jak najít a nahradit text a slova v dokumentech PDF v Java. Samostatně probereme, jak provádět vyhledávání slov a frází, vyhledávání slov s rozlišením velkých a malých písmen, nahrazování nalezeného textu pomocí regulárních výrazů. Nakonec se naučíme, jak skrýt hledanou část textu pomocí Javy.

Níže budou popsána následující témata:

Java Redaction API pro nahrazení textu

GroupDocs poskytuje Java API pro použití různých typů redakcí. Umožňuje redigovat, skrýt nebo odstranit obsah a dokonce i metadata dokumentů, prezentací, tabulek, souborů PDF a obrázků v rámci aplikace. Další podrobnosti o rozhraní API naleznete v jeho dokumentaci.

Stáhnout nebo Konfigurovat

Soubor JAR si můžete stáhnout z části ke stažení, nebo si můžete stáhnout nejnovější úložiště a konfigurace závislostí pro pom.xml vašich Java aplikací založených na maven.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>https://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-redaction</artifactId>
        <version>21.12</version> 
</dependency>

Jednou z dobrých věcí je, že není třeba instalovat žádný editor PDF nebo jakýkoli jiný software třetích stran pro úpravu PDF. Níže je uveden obsah dokumentu PDF, který je použit v níže uvedených příkladech pro redigování. Stejný přístup bude fungovat pro jiné formáty dokumentů s téměř žádným rozdílem ve zdrojovém kódu.

Najít a nahradit slovo nebo frázi v PDF v Java

Tuto funkci můžete použít ke skrytí jakýchkoli soukromých dat a také k vytvoření nového přizpůsobeného dokumentu z libovolné šablony. Následující krok vysvětluje, jak najít jakékoli slovo/frázi v dokumentu PDF a nahradit je jiným textem v aplikaci Java.

  • Načtěte soubor PDF pomocí třídy Redactor.
  • Najděte přesnou frázi nebo slovo pomocí ExactPhraseRedaction a [ReplacementOptions](https://apireference.groupdocs. com/redaction/java/com.groupdocs.redaction.redactions/ReplacementOptions).
  • Aplikujte redigování pomocí metody apply().
  • Uložte nový dokument se změnami pomocí metody save().

Následující kód najde a nahradí slova v souboru PDF pomocí Java. Přesněji řečeno, skryje všechny výskyty „John Doe“ tím, že jej nahradí slovem „[censored]“.

// Najděte přesnou frázi v PDF a nahraďte ji jiným textem pomocí Java
final Redactor redactor  = new Redactor("path/document.pdf");
redactor.apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions("[censored]")));
// Uložte redigovaný soubor na jiné místo s jiným názvem.
FileOutputStream stream = new FileOutputStream("path/exactPhrase.pdf");
RasterizationOptions rasterOptions = new RasterizationOptions();
rasterOptions.setEnabled(false);
redactor.save(stream, rasterOptions);

Výstup výše uvedeného kódu je následující.

Najděte a nahraďte text nebo frázi rozlišující malá a velká písmena v PDF pomocí Java

Můžete provádět vyhledávání a redigování rozlišující velká a malá písmena. Následující kód nahrazuje výskyt slova „John Doe“, ale nikoli „Jan Doe“ v dokumentu PDF pomocí Java, rozlišující velká a malá písmena.

// Najděte přesnou frázi v PDF (rozlišují se malá a velká písmena) a nahraďte ji jiným textem pomocí Javy
final Redactor redactor  = new Redactor("path/document.pdf");
redactor.apply(new ExactPhraseRedaction("John Doe", true /*isCaseSensitive*/, new ReplacementOptions("[censored]")));
redactor.save();

Výstup kódu je následující.

Nahraďte text v PDF regulárními výrazy (RegEx) v Java

Podobně můžete nahradit jakýkoli konkrétní textový vzor pomocí regulárních výrazů. Následující kroky vám umožní redigovat PDF po vyhledávání pomocí regulárního výrazu (RegEx) ve vašich aplikacích Java.

  • Načtěte dokument PDF pomocí třídy Redactor.
  • Najděte shodu s regulárním výrazem pomocí třídy RegexRedaction s [ReplacementOptions](https://apireference.groupdocs.com/ redaction/java/com.groupdocs.redaction.redactions/ReplacementOptions).
  • Použijte změny v dokumentu pomocí metody apply().
  • Uložte redigovaný dokument pomocí vhodné metody save().

Následující kód Java ukazuje, jak najít určitý textový vzor v dokumentu PDF pomocí RegEx a později jej nahradit/skrýt jiným textem.

// Najděte text v PDF pomocí regulárního výrazu a nahraďte jej jiným textem pomocí Javy
final Redactor redactor  = new Redactor("path/document.pdf");
redactor.apply(new RegexRedaction("\\d{2}\\s*\\d{2}[^\\d]*\\d{6}", new ReplacementOptions("[censored]")));
redactor.save();

Výstup výše uvedeného kódu je následující.

Nahraďte text barevným rámečkem v Java

Pokud chcete pouze skrýt hledané důvěrné informace ve vašem souboru PDF, můžete jej jednoduše překrýt. API umožňuje skrýt hledaný text. Následující kód umístí černý obdélník přes zmíněný soukromý text v Java.

// Najděte text v PDF a skryjte jej nakreslením obdélníku pomocí Java
final Redactor redactor  = new Redactor("path/document.pdf");
redactor.apply(new ExactPhraseRedaction("John Doe", true, new ReplacementOptions(java.awt.Color.BLACK)));
redactor.save();

Výstup výše uvedeného kódu je následující.

Získejte bezplatnou licenci API

Můžete získat bezplatnou dočasnou licenci, abyste mohli používat API bez omezení hodnocení.

Závěr

Abych to shrnul, naučili jsme se, jak najít určitý text v souborech PDF pomocí různých technik vyhledávání. Později jsme redigovali soubory PDF nahrazením nebo skrytím textu v aplikacích v Java. Přesněji řečeno, provedli jsme jednoduché vyhledávání slov, frází, vyhledávání s rozlišováním malých a velkých písmen a pomocí RegEx v Java. Nakonec jsme změnili výsledky vyhledávání buď jiným textem, nebo jsme jej jednoduše skryli barvou.

Další podrobnosti o rozhraní API naleznete v dokumentaci. V případě dotazů nás kontaktujte prostřednictvím fóra.

Viz také