기사 중 하나에서 .NET 개발자로서 문서의 단어를 수정하는 방법에 대해 이미 논의했습니다. 이 전략은 민감한 콘텐츠를 삭제하고 이메일 주소나 식별 번호와 같은 개인 정보를 숨기거나 제거하는 데 여러 가지 방법으로 사용됩니다. 이 문서에서는 Java의 Word DOC/DOCX 문서에서 단어 검색을 수행하는 방법에 대해 설명합니다. 교정을 위해 Java API를 사용하여 다른 기술로 텍스트, 단어 또는 구문을 찾고 대체하는 방법에 대해서는 별도로 논의할 것입니다.

아래에서 다룰 주제는 다음과 같습니다.

단어 검색 및 텍스트 바꾸기를 위한 Java API

GroupDocs는 Java 교정 API를 제공하여 MS Word 지원 파일 및 기타 다양한 파일 형식의 문서 내용을 찾고 바꿀 수 있습니다. 텍스트 수정 및 래스터화 외에도 API는 메타데이터, 주석, 스프레드시트 및 이미지 수정 기능을 지원합니다. Word 문서, 스프레드시트, 프리젠테이션, 이미지 및 PDF 문서의 지원되는 파일 형식은 설명서에서 사용할 수 있습니다.

다운로드 또는 구성

다운로드 섹션에서 JAR 파일을 다운로드하거나 maven 기반 Java 애플리케이션의 pom.xml에 대한 최신 리포지토리 및 종속성 구성을 얻을 수 있습니다.

<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>

교정 프로세스에는 MS Word 또는 기타 타사 소프트웨어가 필요하지 않습니다. 이제 텍스트 검색 및 바꾸기를 처리하는 다양한 접근 방식부터 시작하겠습니다. 다음은 아래 예제에서 사용된 Word 문서의 스크린샷입니다. 소스 코드를 거의 또는 전혀 변경하지 않고 다른 문서 형식에도 동일한 방법을 사용할 수 있습니다.

텍스트를 수정할 문서

Java를 사용하여 단어 또는 구 찾기 및 바꾸기

다음 단계는 Java 응용 프로그램 내의 Word 문서에서 단어/문구 발생을 찾아 바꾸는 방법을 설명합니다.

  • Redactor 클래스를 사용하여 DOC/DOCX 파일을 로드합니다.
  • ExactPhraseRedactionReplacementOptions 클래스를 사용하여 정확한 구 또는 단어를 찾습니다.
  • Redactor의 apply 메소드를 사용하여 리댁션을 적용합니다.
  • 변경 후 다른 위치에 파일을 저장하려면 출력 스트림을 사용하십시오.
  • save 메소드를 사용하여 교정 변경 사항을 저장합니다.

다음 코드는 Java를 사용하여 위의 Word 문서에서 “John Doe"라는 단어를 찾아서 바꿉니다. “John Doe"의 모든 항목을 “[censored]“라는 단어로 바꿉니다.

// 정확한 구문을 찾아 Java를 사용하여 다른 텍스트로 바꿉니다.
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions("[censored]")));
// 수정된 파일을 다른 이름으로 다른 위치에 저장하려는 경우.
FileOutputStream stream = new FileOutputStream("path/exactPhrase.docx");
RasterizationOptions rasterOptions = new RasterizationOptions();
rasterOptions.setEnabled(false);
redactor.save(stream, rasterOptions);

코드의 출력은 다음과 같습니다.

정확한 구문을 사용하여 교정

대소 문자 구분 단어 검색 및 Java에서 텍스트 바꾸기

단어의 정확한 대소문자에 대해 신중하고 대소문자 구분 검색과만 일치하는 단어만 바꾸려고 합니다. 다음 코드는 Java에서 “John Doe"라는 단어의 정확한 대소문자 일치를 대체합니다.

// 정확한 구문(대소문자 구분)을 찾아 Java를 사용하여 다른 텍스트로 바꿉니다.
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new ExactPhraseRedaction("John Doe", true /*isCaseSensitive*/, new ReplacementOptions("[censored]")));
redactor.save();

코드의 출력은 다음과 같습니다.

대소문자 구분 편집

Java에서 정규식(RegEx)을 사용하여 텍스트 바꾸기

정확한 단어를 변경하지 않고 문서에 존재하는 일부 패턴을 변경하려는 경우 정규식을 사용할 수 있습니다. 다음 단계를 통해 Java 애플리케이션 내에서 정규식(RegEx)을 사용하여 텍스트 패턴을 찾고 바꿀 수 있습니다.

  • Redactor 클래스를 사용하여 문서를 로드합니다.
  • RegexRedaction을 사용하여 RegEx를 생성합니다.
  • RegEx 일치를 대체하려면 ReplacementOptions를 사용하여 텍스트를 제공하십시오.
  • 적용 방법을 사용하여 모든 정규식 일치를 바꿉니다.
  • 수정된 문서를 가져오려면 save 메서드를 사용하세요.

다음 코드는 RegEx를 사용하여 Word 파일에서 단어 검색을 수행하고 Java를 사용하여 다른 텍스트로 바꾸는 방법을 보여줍니다.

// 정규 표현식을 사용하여 텍스트를 찾고 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();

다음은 위 코드의 출력입니다.

RegEx 교정

Java에서 텍스트를 색상 상자로 바꾸기

콘텐츠를 교체하지 않고 숨기려는 경우 API를 사용하면 콘텐츠 위에 상자를 그려서 텍스트 일치를 덮을 수 있습니다. 다음 Java 코드는 검은색 사각형 상자로 텍스트를 숨깁니다.

// Java를 사용하여 텍스트 위에 사각형을 그려서 텍스트를 찾고 숨깁니다.
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new ExactPhraseRedaction("John Doe", true, new ReplacementOptions(java.awt.Color.BLACK)));
redactor.save();

위 코드의 출력은 다음과 같습니다.

상자를 사용하여 텍스트 숨기기

무료 API 라이선스 받기

평가 제한 없이 API를 사용하기 위해 무료 임시 라이센스를 받을 수 있습니다.

결론

요약하면 정확한 텍스트 구문 검색, 대/소문자 구분 검색, 정규식을 사용한 검색, 마지막으로 텍스트를 바꾸는 대신 숨김을 사용하여 Word 문서에서 텍스트를 찾기 위해 단어 검색을 수행하는 방법을 배웠습니다. 이러한 다양한 기술을 사용하여 MS Word 문서 내에서 결과를 다양한 방식으로 바꿀 수 있습니다.

API에 대한 자세한 내용과 학습은 문서를 참조하십시오. 문의 사항이 있는 경우 포럼을 통해 문의하십시오.

또한보십시오