Java에서 단어 문서 비교

MS Word 문서의 비교는 문서의 두 버전 간의 차이점을 알기 위해 수행됩니다. MS Word는 두 문서의 내용을 비교할 수 있는 기본 제공 옵션을 제공합니다. 그러나 문서의 수가 증가함에 따라 문서 비교를 수동으로 수행하기가 어려워집니다. 이 프로세스를 자동화하기 위해 이 기사에서는 Java를 사용하여 두 개의 MS Word(DOC/DOCX) 문서를 비교하는 방법을 다룹니다.

MS Word 문서를 비교하는 Java API

Aspose.Words for Java는 MS Word 문서를 생성, 읽기, 수정 및 변환할 수 있는 강력한 문서 조작 API입니다. 또한 콘텐츠의 서식을 고려하거나 무시하면서 두 개의 Word 문서를 비교할 수 있습니다. API를 다운로드하거나 Maven 구성을 사용하여 설치할 수 있습니다.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-words</artifactId>
    <version>20.9</version>
    <classifier>jdk17</classifier>
</dependency>

Java를 사용하여 MS Word 문서 비교

다음은 Aspose.Words for Java API를 사용하여 간단한 Word 문서 비교를 수행하는 단계입니다.

다음 코드 샘플은 Java를 사용하여 두 MS Word 문서를 비교하는 방법을 보여줍니다.

Document docA = new Document(dataDir + "DocumentA.doc");
Document docB = new Document(dataDir + "DocumentB.doc");
docA.compare(docB, "user", new Date()); // docA now contains changes as revisions

Java Word 문서 비교 - 서식 무시

문서의 내용에 다른 서식이 적용된 경우가 있을 수 있습니다. 이러한 경우 서식, 머리글/바닥글, 각주, 표, 주석 등을 무시하고 텍스트만 비교하는 것이 좋습니다. 다음은 두 MS Word 문서를 비교할 때 문서의 서식을 무시하는 단계입니다.

다음 코드 샘플은 Java를 사용하여 내용의 서식을 무시하고 MS Word 문서를 비교하는 방법을 보여줍니다.

// 전체 예제 및 데이터 파일을 보려면 https://github.com/aspose-words/Aspose.Words-for-Java로 이동하십시오.
String dataDir = Utils.getDataDir(CompareTwoWordDocumentswithCompareOptions.class);

com.aspose.words.Document docA = new com.aspose.words.Document(dataDir + "DocumentA.doc");
com.aspose.words.Document docB = new com.aspose.words.Document(dataDir + "DocumentB.doc");

com.aspose.words.CompareOptions options = new com.aspose.words.CompareOptions();
options.setIgnoreFormatting(true);
options.setIgnoreHeadersAndFooters(true);
options.setIgnoreCaseChanges(true);
options.setIgnoreTables(true);
options.setIgnoreFields(true);
options.setIgnoreComments(true);
options.setIgnoreTextboxes(true);
options.setIgnoreFootnotes(true);

// 이제 DocA에는 변경 사항이 개정판으로 포함됩니다.
docA.compare(docB, "user", new Date(), options);
if (docA.getRevisions().getCount() == 0)
    System.out.println("Documents are equal");
else
    System.out.println("Documents are not equal");

비교 차이에 대한 대상 Word 문서 설정

Aspose.Words for Java를 사용하면 비교하는 동안 소스 Word 문서를 지정할 수도 있습니다. 이를 위해 MS Word의 “변경 사항 표시” 옵션과 관련된 CompareOptions.setTarget() 속성을 사용할 수 있습니다. 다음 코드 샘플은 비교에서 대상 문서를 지정하는 방법을 보여줍니다.

Document docA = new Document(dataDir + "TestFile.doc");
Document docB = new Document(dataDir + "TestFile - Copy.doc");

CompareOptions options = new CompareOptions();
options.setIgnoreFormatting(true);
// "문서 비교" 대화 상자의 Microsoft Word "변경 사항 표시" 옵션과 관련됩니다.
options.setTarget(ComparisonTargetType.NEW);

docA.compare(docB, "user", new Date(), options);

Java에서 Word 파일을 비교하도록 세분성 설정

두 MS Word 문서를 비교할 때 변경 사항의 세분성을 설정할 수도 있습니다. 이는 CompareOptions.setGranularity() 속성을 사용하여 수행할 수 있습니다. 다음은 가능한 세분성 옵션입니다.

다음 코드 샘플은 Java를 사용하여 MS Word 문서를 비교할 때 세분성을 설정하는 방법을 보여줍니다.

DocumentBuilder builderA = new DocumentBuilder(new Document());
DocumentBuilder builderB = new DocumentBuilder(new Document());

builderA.writeln("This is A simple word");
builderB.writeln("This is B simple words");

CompareOptions co = new CompareOptions();
co.setGranularity(Granularity.CHAR_LEVEL);

builderA.getDocument().compare(builderB.getDocument(), "author", new Date(), co);

결론

이 기사에서는 Java를 사용하여 다양한 시나리오에서 두 개의 MS Word 문서를 비교하는 방법을 살펴보았습니다. 문서를 사용하여 Aspose.Words for Java에 대해 자세히 알아볼 수 있습니다.

무료로 사용해 보세요

Aspose는 API를 무료로 사용해 볼 수 있는 임시 라이선스를 제공합니다. Java용 Aspose.Words를 평가할 수 있습니다.

또한보십시오