W jednym z artykułów omawialiśmy już jak redagować słowa w dokumentach jako programista .NET. Strategia ta jest wykorzystywana na wiele sposobów do usuwania poufnych treści, ukrywania lub usuwania prywatnych informacji, takich jak adresy e-mail lub numery identyfikacyjne. W tym artykule omówiono sposób wyszukiwania słów w dokumentach Word DOC/DOCX w Javie. Oddzielnie omówimy, jak znaleźć i zamienić tekst, słowa lub frazy za pomocą różnych technik przy użyciu Java API do redagowania.

Poniżej zostaną omówione następujące tematy:

Java API do wyszukiwania słów i zastępowania tekstu

GroupDocs udostępnia interfejs API redakcji języka Java, który umożliwia znajdowanie i zastępowanie zawartości plików obsługiwanych przez MS Word oraz innych dokumentów w różnych innych formatach plików. Oprócz redagowania tekstu i rasteryzacji, interfejs API obsługuje metadane, adnotacje, arkusze kalkulacyjne, a także funkcje redagowania obrazów. Obsługiwane formaty plików dokumentów programu Word, arkuszy kalkulacyjnych, prezentacji, obrazów i dokumentów PDF są dostępne w dokumentacji.

Pobierz lub skonfiguruj

Możesz pobrać plik JAR z sekcji pobierania lub po prostu pobrać najnowsze konfiguracje repozytorium i zależności dla pliku pom.xml aplikacji Java opartych 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>

Do procesu redagowania nie jest wymagany program MS Word ani żadne inne oprogramowanie innych firm. Zacznijmy teraz od różnych podejść do wyszukiwania i zastępowania tekstu. Poniżej znajduje się zrzut ekranu dokumentu programu Word, który jest używany w poniższych przykładach. Możesz użyć tych samych metod dla innych formatów dokumentów, z bardzo niewielkimi lub żadnymi zmianami w kodzie źródłowym.

Dokument do redagowania tekstu

Znajdź i zamień słowa lub frazy za pomocą języka Java

Poniższe kroki wyjaśniają, jak znaleźć, a następnie zamienić wystąpienia słowa/wyrażenia w dokumencie programu Word w aplikacji Java.

  • Załaduj plik DOC/DOCX przy użyciu klasy Redactor.
  • Znajdź dokładną frazę lub słowo, korzystając z klas ExactPhraseRedaction i ReplacementOptions.
  • Użyj metody Apply narzędzia Redactor, aby zastosować redakcję.
  • Aby zapisać plik w innej lokalizacji po wprowadzeniu zmian, użyj strumienia wyjściowego.
  • Zapisz zmiany redakcyjne za pomocą metody save.

Poniższy kod wyszukuje i zastępuje słowo „John Doe” w powyższym dokumencie programu Word przy użyciu języka Java. Zastępuje wszystkie wystąpienia „John Doe” słowem „[ocenzurowane]”.

// Znajdź dokładną frazę i zastąp ją innym tekstem za pomocą Javy
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions("[censored]")));
// Jeśli chcesz zapisać zredagowany plik w innej lokalizacji pod inną nazwą.
FileOutputStream stream = new FileOutputStream("path/exactPhrase.docx");
RasterizationOptions rasterOptions = new RasterizationOptions();
rasterOptions.setEnabled(false);
redactor.save(stream, rasterOptions);

Dane wyjściowe kodu są następujące.

Redaguj, używając dokładnego wyrażenia

Wyszukiwanie i zastępowanie tekstu z uwzględnieniem wielkości liter w Javie

Wygląda na to, że ostrożnie podchodzisz do wielkości liter w słowie i chcesz zastąpić tylko to słowo, które pasuje tylko do wyszukiwania z uwzględnieniem wielkości liter. Poniższy kod zastępuje istnienie dokładnego dopasowania wielkości liter w słowie „John Doe” w Javie.

// Znajdź dokładną frazę (z uwzględnieniem wielkości liter) i zastąp ją innym tekstem przy użyciu języka Java
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new ExactPhraseRedaction("John Doe", true /*isCaseSensitive*/, new ReplacementOptions("[censored]")));
redactor.save();

Dane wyjściowe kodu są następujące.

Redakcja uwzględniająca wielkość liter

Zastąp tekst za pomocą wyrażeń regularnych (RegEx) w Javie

Jeśli nie chcesz zmieniać dokładnego słowa, ale jakiś wzorzec, który istnieje w twoim dokumencie, możesz użyć wyrażeń regularnych. Poniższe kroki umożliwiają znalezienie i zastąpienie dowolnego wzorca tekstu za pomocą wyrażeń regularnych (RegEx) w aplikacjach Java.

  • Załaduj dokument używając klasy Redactor.
  • Utwórz RegEx za pomocą RegexRedaction.
  • Podaj tekst za pomocą ReplacementOptions, aby zastąpić dopasowanie RegEx.
  • Użyj metody Apply zamień wszystkie dopasowania wyrażeń regularnych.
  • Użyj metody zapisu, aby uzyskać zredagowany dokument.

Poniższy kod pokazuje, jak przeprowadzić wyszukiwanie słów w pliku programu Word przy użyciu RegEx i zastąpić je innym tekstem przy użyciu języka Java.

// Znajdź tekst za pomocą wyrażenia regularnego i zastąp go innym tekstem za pomocą języka Java
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();

Poniżej przedstawiono dane wyjściowe powyższego kodu:

Redakcja RegEx

Zastąp tekst kolorowym polem w Javie

Jeśli nie chcesz zastępować treści i po prostu chcesz ją ukryć, interfejs API umożliwia dopasowanie tekstu poprzez narysowanie na nim ramki. Poniższy kod Java ukrywa tekst za pomocą czarnego prostokąta.

// Znajdź tekst i ukryj go, rysując nad nim prostokąt za 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();

Dane wyjściowe powyższego kodu są następujące.

Ukryj tekst za pomocą pola

Uzyskaj bezpłatną licencję API

Możesz uzyskać bezpłatną tymczasową licencję, aby korzystać z API bez ograniczeń ewaluacyjnych.

Wniosek

Podsumowując, nauczyłeś się, jak przeprowadzać wyszukiwanie słów w celu znalezienia tekstu w dokumentach programu Word przy użyciu dokładnego wyszukiwania fraz tekstowych, wyszukiwania z rozróżnianiem wielkości liter, wyszukiwania przy użyciu wyrażeń regularnych, a także ukrywania tekstu zamiast jego zastępowania. Możesz użyć tych różnych technik, aby zastąpić wyniki na różne sposoby w dokumentach MS Word.

Aby uzyskać więcej informacji i dowiedzieć się więcej o interfejsie API, odwiedź dokumentację. W przypadku pytań skontaktuj się z nami za pośrednictwem forum.

Zobacz też