이 기사를 통해 텍스트 파일, Word 파일, PDF 파일 및 기타 문서를 Java 기반 응용 프로그램에서 비교할 수 있습니다. 이 기능을 사용하여 송장, 계약서, 프레젠테이션, AutoCAD 디자인, 가격표 또는 프로그래밍 파일을 비교할 수 있습니다. 또한 확인된 변경 사항을 강조 표시하고 변경 사항을 수락하거나 거부할 수 있는 권한이 있습니다. Java용 문서 비교 API를 사용하여 GroupDocs에서 출시한 것과 유사한 자체 문서 비교 도구를 구축할 수도 있습니다.

아래에서는 다음 주제를 살펴봅니다.

자바 문서 비교 API

전제 조건으로 다운로드 섹션에서 GroupDocs.Comparison for Java를 얻을 수 있습니다. 또한 maven 기반 애플리케이션의 경우 pom.xml에 다음을 추가하면 됩니다.

저장소 및 종속성

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-comparison</artifactId>
        <version>20.4</version> 
</dependency>

Java를 사용하여 Word 파일 비교 및 차이점 표시

아래 단계에서는 몇 줄의 Java 코드로 두 Word 문서를 비교하는 방법을 보여줍니다. 결과적으로 식별된 변경 사항을 강조 표시하는 결과 문서를 얻게 됩니다.

  • 소스 문서 경로로 Comparer 개체를 초기화합니다.
  • add 메서드를 사용하여 비교할 두 번째 문서를 추가합니다.
  • compare 메서드를 호출하여 비교 결과를 얻습니다. 비교 메소드는 출력 문서의 이름을 매개변수로 사용합니다.
// Compare two Word files from the provided location on disk
Comparer comparer = new Comparer("source.docx");
try {
    comparer.add("target.docx");
    comparer.compare("comparison.docx");
}
finally {
    comparer.dispose();
}

여기에 위의 코드에 의해 생성된 결과 Word 문서가 표시되며 여기에는 비교된 두 Word 문서의 강조 표시된 차이점이 포함됩니다. 삭제된 콘텐츠는 빨간색으로 표시되고 추가된 콘텐츠는 파란색으로 표시되지만 녹색은 수정된 콘텐츠를 표시합니다.

word-file-text-comparison-and-show-dirffer

스트림을 사용하여 텍스트용 Word 파일 비교

유사하게 문서를 두 번째 문서와 비교하기 위해 Comparer 클래스에 스트림으로 전달할 수 있습니다. 다음은 명확한 아이디어를 제공하는 Java 코드입니다.

// Compare two Word file using Stream
Comparer comparer = new Comparer(new FileInputStream("source.docx"));
try {
    comparer.add(new FileInputStream("target.docx"));
    comparer.compare(new FileOutputStream("result.docx"));
} 
finally {
    comparer.dispose();
}

Java를 사용하여 Word 파일의 비교 변경 사항 수락 또는 거부

식별된 차이점을 성공적으로 강조 표시한 후에는 변경 사항을 수락하거나 거부할 수 있습니다. 예를 들어 변경 사항을 수락하거나 거부합니다. 각 변경 사항을 유사한 코드로 하나씩 표시하고 요구 사항에 따라 각 변경 사항을 수락/거부할지 결정할 수 있습니다.

// Accept or Reject the identified changes of Word document in Java
Comparer comparer = new Comparer(source);
try {
    comparer.add(target);
    comparer.compare();
    ChangeInfo\[\] changes = comparer.getChanges();
    System.out.println("changes.length: " + changes.length + ".");
    // Accept or Reject the changes
    for (int n = 0; n < changes.length; n++) {
    	if (n % 2 == 0) {
    		changes\[n\].setComparisonAction(ComparisonAction.ACCEPT);
    	}
    	else {
    		changes\[n\].setComparisonAction(ComparisonAction.REJECT);
    	}
    }
    // Apply your decisions to get the resultant document.
    comparer.applyChanges(outputFileName, new SaveOptions(), new ApplyChangeOptions(changes));
}
finally {
    comparer.dispose();
}

Java를 사용하여 텍스트 파일 비교 및 차이점 표시

Comparer 클래스를 사용하여 모든 텍스트 파일을 비교할 수도 있습니다. 다음은 Java에서 두 텍스트 파일을 비교하는 유사한 코드입니다. 단계는 다른 두 문서를 비교하는 것과 정확히 동일합니다.

  • 텍스트 파일을 Comparer 클래스에 전달하는 것으로 시작합니다.
  • add 메소드를 사용하여 두 번째 파일을 추가합니다.
  • 비교 메서드를 호출합니다.
// Compare two text files to identify and highlight changes.
Comparer comparer = new Comparer("source.txt");
try {
    comparer.add("target.txt");
    comparer.compare("comparison.txt");
}
finally {
    comparer.dispose();
}

다음은 위의 코드를 사용하여 두 개의 텍스트 파일을 매칭한 비교 결과를 보여주는 출력 문서이다.

Java를 사용하여 텍스트 파일 비교

Java를 사용하여 텍스트 차이에 대한 PDF 파일 비교

위의 동일한 코드를 사용하고 파일 확장자를 “.pdf"로 변경하여 PDF 파일을 비교할 수 있습니다. 참고로 아래 코드는 두 개의 pdf 파일을 비교하고 Java에서 차이점을 보여줍니다.

// Compare two PDF file using Stream
Comparer comparer = new Comparer(new FileInputStream("source.pdf"));
comparer.add(new FileInputStream("target.pdf"));
comparer.compare(new FileOutputStream("result.pdf"));

아래는 PDF 파일을 비교한 결과입니다.

PDF 파일 텍스트 비교

또한보십시오

다른 많은 오픈 소스 예제는 GitHub Repository에서 공개적으로 사용할 수 있습니다. 시작하기 가이드를 사용하여 예제를 다운로드하고 빠르게 실행할 수 있습니다. 질문이 있는 경우 문서를 보거나 포럼에서 언제든지 문의하십시오.