V jednom z článků jsme již diskutovali jak redigovat slova v dokumentech jako .NET vývojář. Tato strategie se používá mnoha způsoby k vymazání citlivého obsahu, skrytí nebo odstranění soukromých informací, jako jsou e-mailové adresy nebo identifikační čísla. Tento článek popisuje, jak provádět vyhledávání slov v dokumentech Word DOC/DOCX v Java. Samostatně probereme, jak najít a nahradit text, slova nebo fráze různými technikami pomocí Java API pro redigování.
Níže budou popsána následující témata:
- Java API pro vyhledávání slov a nahrazování textu
- Najít a nahradit slova nebo fráze
- Hledání a nahrazování textu ve slovech s rozlišením malých a velkých písmen
- Nahradit text pomocí regulárních výrazů (RegEx)
- Nahraďte text barevným rámečkem
Java API pro vyhledávání slov a nahrazování textu
GroupDocs poskytuje Java redaction API, které umožňuje vyhledávat a nahrazovat obsah souborů podporovaných MS Word a dalších dokumentů různých jiných formátů souborů. Kromě redakce textu a rasterizace podporuje API funkce metadat, anotací, tabulek a také funkce redakce obrázků. podporované formáty souborů dokumentů Word, tabulek, prezentací, obrázků a dokumentů PDF jsou k dispozici v 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>
Pro proces redakce není vyžadován MS Word nebo jakýkoli jiný software třetích stran. Začněme nyní různými přístupy, jak se vypořádat s hledáním a nahrazováním textu. Následuje snímek obrazovky dokumentu aplikace Word, který je použit v níže uvedených příkladech. Stejné metody můžete použít i pro jiné formáty dokumentů s velmi malou nebo žádnou změnou ve zdrojovém kódu.
![Dokument pro úpravu textu](images/original-doc.png#center)
Najít a nahradit slova nebo fráze pomocí Java
Následující kroky vysvětlují, jak najít a poté nahradit výskyty slova/fráze v dokumentu aplikace Word v aplikaci Java.
- Načtěte soubor DOC/DOCX pomocí třídy Redactor.
- Najděte přesnou frázi nebo slovo pomocí tříd ExactPhraseRedaction a ReplacementOptions.
- Chcete-li použít redigování, použijte metodu aplikace Redactor.
- Chcete-li soubor po provedení změn uložit na jiné místo, použijte výstupní proud.
- Uložte změny redigování pomocí metody uložení.
Následující kód najde a nahradí slovo „John Doe“ ve výše uvedeném dokumentu aplikace Word pomocí jazyka Java. Nahrazuje všechny výskyty „John Doe“ slovem „[censored]“.
// Najděte přesnou frázi a nahraďte ji jiným textem pomocí Java
final Redactor redactor = new Redactor("path/document.docx");
redactor.apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions("[censored]")));
// Pokud chcete redigovaný soubor uložit na jiné místo s jiným názvem.
FileOutputStream stream = new FileOutputStream("path/exactPhrase.docx");
RasterizationOptions rasterOptions = new RasterizationOptions();
rasterOptions.setEnabled(false);
redactor.save(stream, rasterOptions);
Výstup kódu je následující.
![Upravte pomocí přesné fráze](images/Exact-Phrase-Replacement.png#center)
Hledání a nahrazování textu v Java s rozlišením malých a velkých písmen
Zdá se, že jste opatrní ohledně přesné velikosti písmen slova a chcete nahradit pouze slovo, které odpovídá pouze vašemu vyhledávání s rozlišováním velkých a malých písmen. Následující kód nahrazuje existenci přesné shody velkých a malých písmen slova „John Doe“ v Java.
// Najděte přesnou frázi (rozlišují se malá a velká písmena) a nahraďte ji jiným textem pomocí Javy
final Redactor redactor = new Redactor("path/document.docx");
redactor.apply(new ExactPhraseRedaction("John Doe", true /*isCaseSensitive*/, new ReplacementOptions("[censored]")));
redactor.save();
Výstup kódu je následující.
![Redakce rozlišující malá a velká písmena](images/Case-Sensitive-Exact-Phrase-Redaction.png#center)
Nahraďte text pomocí regulárních výrazů (RegEx) v Java
Pokud nechcete změnit přesné slovo, ale nějaký vzor, který ve vašem dokumentu existuje, můžete použít regulární výrazy. Následující kroky vám umožní najít a nahradit jakýkoli vzor textu pomocí regulárních výrazů (RegEx) ve vašich aplikacích Java.
- Načtěte dokument pomocí třídy Redactor.
- Vytvořte RegEx pomocí RegexRedaction.
- Zadejte text pomocí ReplacementOptions k nahrazení shody regulárních výrazů.
- Použijte metodu použít nahradit všechny shody regulárních výrazů.
- K získání redigovaného dokumentu použijte metodu uložení.
Následující kód ukazuje, jak provést vyhledávání slov v souboru Word pomocí RegEx a nahradit jej jiným textem pomocí Java.
// Najděte text pomocí regulárního výrazu a nahraďte jej jiným textem pomocí Javy
final Redactor redactor = new Redactor("path/document.docx");
redactor.apply(new RegexRedaction("\\d{2}\\s*\\d{2}[^\\d]*\\d{6}", new ReplacementOptions("[censored]")));
redactor.save();
Následuje výstup výše uvedeného kódu:
![Redakce RegEx](images/Regex-Redaction.png#center)
Nahraďte text barevným rámečkem v Java
Pokud nechcete svůj obsah nahradit a chcete jej pouze skrýt, rozhraní API vám umožňuje pokrýt shodu textu nakreslením rámečku. Následující kód Java skryje text s černým obdélníkovým rámečkem.
// Najděte text a skryjte jej nakreslením obdélníku pomocí Java
final Redactor redactor = new Redactor("path/document.docx");
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í.
![Skrýt text pomocí pole](images/Colored-Box-Redaction.png#center)
Získejte bezplatnou licenci API
Můžete získat bezplatnou dočasnou licenci, abyste mohli používat API bez omezení hodnocení.
Závěr
Suma sumárum, naučili jste se, jak provádět vyhledávání slov, abyste našli text v dokumentech aplikace Word pomocí hledání přesných textových frází, hledání citlivých na velká a malá písmena, hledání pomocí regulárních výrazů a v neposlední řadě skrytí textu místo jeho nahrazení. Tyto různé techniky můžete použít k nahrazení nálezů různými způsoby v dokumentech MS Word.
Další podrobnosti a informace o rozhraní API naleznete v dokumentaci. V případě dotazů nás kontaktujte prostřednictvím fóra.