Microsoft Word 자동화 — Java를 사용하여 Word 문서 생성, 편집 또는 변환

Word 자동화를 사용하면 Microsoft Office를 사용하지 않고도 새 Word 문서를 만들고 기존 문서를 편집 또는 수정하거나 다른 형식으로 변환할 수 있습니다. MS Word의 사용자 인터페이스를 통해 수행할 수 있는 모든 작업은 자동화를 사용하여 프로그래밍 방식으로 수행할 수도 있습니다. 이 기사에서는 Java를 사용하여 Word 문서를 생성, 편집 또는 변환하기 위해 MS Word를 자동화하는 방법을 배웁니다.

이 기사에서는 다음 주제를 다룹니다.

Word 문서를 생성, 편집 또는 변환하는 Java Word Automation API

Word 자동화를 위해 Aspose.Words for Java API를 사용합니다. 프로그래밍 방식으로 Word 문서를 생성, 편집 또는 분석할 수 있는 완전하고 기능이 풍부한 Word 자동화 솔루션입니다. API의 JAR을 다운로드하거나 Maven 기반 Java 애플리케이션에 다음 pom.xml 구성을 추가하십시오.

<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>21.11</version>
    <type>pom</type>
</dependency>

Java를 사용하여 Word 문서 만들기

다음 단계에 따라 프로그래밍 방식으로 Word 문서를 만들 수 있습니다.

  • 먼저 Document 클래스의 인스턴스를 만듭니다. 이 클래스는 Word 문서를 나타냅니다.
  • 다음으로 Document 개체를 인수로 사용하여 DocumentBuilder 클래스의 인스턴스를 만듭니다. 이 클래스는 텍스트, 이미지 및 기타 콘텐츠를 삽입하고 글꼴, 단락 및 섹션 서식을 지정하는 메서드를 제공합니다.
  • 그런 다음 DocumentBuilder 개체를 사용하여 일부 텍스트, 단락, 표 또는 이미지를 추가하는 요소를 삽입/작성합니다.
  • 마지막으로 출력 파일 경로와 함께 Document.save() 메서드를 호출하여 생성된 파일을 저장합니다.

다음 코드 샘플은 Java를 사용하여 Word 문서(DOCX)를 만드는 방법을 보여줍니다.

// 문서를 엽니다.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// 다음 요소의 글꼴 설정
Font font = builder.getFont();
font.setSize(25);
font.setBold(true);
font.setColor(Color.BLACK);
font.setName("Arial");

// 텍스트 삽입
builder.writeln("Welcome!");

// 다음 요소의 글꼴 설정
font.setSize(12);
font.setBold(false);

// 단락 삽입
builder.writeln("Aspose.Words for Java is a class library that enables your applications to perform a great range of document processing tasks.\r\n"
    + "\r\n"
    + "Aspose.Words supports most of the popular document formats such as DOC, DOCX, RTF, HTML, Markdown, PDF, XPS, EPUB, and others.\r\n"
    + "\r\n"
    + "With Aspose.Words for Java, you can generate, modify, convert, render, and print documents without third-party applications or Office Automation.");
builder.writeln();

font.setBold(true);
builder.writeln("This is a sample table");

font.setBold(false);
// 표 삽입
Table table = builder.startTable();
builder.insertCell();
table.autoFit(AutoFitBehavior.AUTO_FIT_TO_CONTENTS);

builder.getCellFormat().setVerticalAlignment(CellVerticalAlignment.CENTER);

builder.write("This is row 1 cell 1");
builder.insertCell();
builder.write("This is row 1 cell 2");
builder.endRow();
builder.insertCell();
builder.write("This is row 2 cell 1");
builder.insertCell();
builder.write("This is row 2 cell 2");
builder.endRow();
builder.endTable();
builder.writeln();

// 이미지 삽입
builder.insertImage("C:\\Files\\Words\\words_java.jpg");

// 페이지 나누기 삽입 
builder.insertBreak(BreakType.PAGE_BREAK);             
// 페이지 나누기 이후의 모든 요소는 다음 페이지에 삽입됩니다.

// 문서 저장
doc.save("C:\\Files\\Words\\document.docx");
Java를 사용하여 Word 문서 만들기

Java를 사용하여 Word 문서를 만듭니다.

Java를 사용하여 Word 문서 편집 또는 수정

이전 섹션에서는 Word 문서를 만들었습니다. 이제 문서의 내용을 수정하고 변경해 보겠습니다. 다음 단계에 따라 프로그래밍 방식으로 Word 문서를 편집할 수 있습니다.

  • 먼저 Document 클래스를 사용하여 입력 파일 경로를 인수로 사용하여 Word 문서를 로드합니다.
  • 그런 다음 해당 인덱스로 특정 섹션에 액세스합니다.
  • 그런 다음 Run 클래스의 객체로 첫 번째 단락 내용에 액세스합니다. Run 클래스는 동일한 글꼴 형식을 가진 일련의 문자를 나타냅니다. 문서의 모든 텍스트는 텍스트 실행으로 저장됩니다.
  • 그런 다음 액세스한 단락에 대해 업데이트할 텍스트를 설정합니다.
  • 마지막으로 출력 파일 경로와 함께 Document.save() 메서드를 호출하여 업데이트된 파일을 저장합니다.

다음 코드 샘플은 Java를 사용하여 Word 문서(DOCX)를 편집하는 방법을 보여줍니다.

// 문서 로드
Document doc = new Document("C:\\Files\\Words\\document.docx");

// 단락에 액세스
Run paragraph = doc.getSections().get(0).getBody().getFirstParagraph().getRuns().get(0);
paragraph.setText("This is updated text");  

// 문서 저장
doc.save("C:\\Files\\Words\\Document_updated.docx");
Java를 사용하여 Word 문서 편집 또는 수정

Java를 사용하여 Word 문서를 편집하거나 수정합니다.

Java를 사용하여 Word 문서에서 텍스트 찾기 및 바꾸기

API의 찾기 및 바꾸기 메커니즘을 사용하여 Word 문서의 내용을 업데이트할 수도 있습니다. 다음 단계에 따라 프로그래밍 방식으로 이 작업을 수행할 수 있습니다.

  • 먼저 Document 클래스를 사용하여 입력 파일 경로를 인수로 사용하여 Word 문서를 로드합니다.
  • 다음으로 FindReplaceOptions 클래스의 인스턴스를 만듭니다.
  • 그런 다음 검색 문자열, 바꾸기 문자열 및 FindReplaceOptions 개체를 인수로 사용하여 replace() 메서드를 호출합니다. 이 방법은 검색 문자열의 모든 발생을 대체 문자열로 대체합니다.
  • 마지막으로 출력 파일 경로와 함께 Document.save() 메서드를 호출하여 업데이트된 파일을 저장합니다.

다음 코드 샘플은 Java를 사용하여 Word 문서(DOCX)에서 특정 텍스트를 찾고 바꾸는 방법을 보여줍니다.

// 문서 로드
Document doc = new Document("C:\\Files\\Words\\document.docx");

// 찾기 및 바꾸기를 사용하여 업데이트
// Replace 메서드를 사용하여 검색 문자열을 지정하고 문자열을 바꿉니다.
doc.getRange().replace("Aspose.Words", "Hello", new FindReplaceOptions());

// 문서 저장
doc.save("C:\\Files\\Words\\Document_updated.docx");
Java를 사용하여 Word 문서에서 텍스트 찾기 및 바꾸기

Java를 사용하여 Word 문서에서 텍스트 찾기 및 바꾸기

Java를 사용하여 Word 문서 변환

아래 단계에 따라 프로그래밍 방식으로 Word 문서를 PDF, XPS, EPUB, HTML, JPG, PNG 등과 같은 다른 형식으로 변환할 수 있습니다.

  • 먼저 Document 클래스를 사용하여 입력 파일 경로를 인수로 사용하여 Word 문서를 로드합니다.
  • 다음으로 Document 개체를 인수로 사용하여 PdfSaveOptions 클래스의 인스턴스를 만듭니다. 이 클래스는 문서를 PDF에 저장할 때 추가 옵션을 제공합니다.
  • 그런 다음 PdfSaveOptions.CompliancePdfCompliance.PDF17로 설정하여 출력 문서에 대한 PDF 표준 준수 수준을 지정합니다.
  • 마지막으로 출력 파일 경로와 PdfSaveOptions 개체를 인수로 사용하여 Document.save() 메서드를 호출하여 PDF 파일을 저장합니다.

다음 코드 샘플은 Java를 사용하여 Word 문서(DOCX)를 PDF로 변환하는 방법을 보여줍니다.

// 문서 로드
Document doc = new Document("C:\\Files\\Words\\document.docx");

// PDF17에 PDFSaveOption 준수 제공
PdfSaveOptions options = new PdfSaveOptions();
options.setCompliance(PdfCompliance.PDF_17);

// 워드를 PDF로 변환
doc.save("C:\\Files\\Words\\output.pdf", options);
Word 문서를 PDF로 변환합니다.

Java를 사용하여 Word 문서 변환

Java를 사용하여 Word 문서 구문 분석

다음 단계에 따라 프로그래밍 방식으로 Word 문서를 구문 분석하고 콘텐츠를 일반 텍스트로 추출할 수 있습니다.

  • Document 클래스를 사용하여 입력 파일 경로를 인수로 사용하여 Word 문서를 로드합니다.
  • Document.save() 메서드를 호출하여 Word 문서를 텍스트 파일로 저장합니다. 이 메서드는 출력 파일의 경로를 인수로 사용합니다.

다음 코드 샘플은 Java를 사용하여 Word 문서(DOCX)를 구문 분석하는 방법을 보여줍니다.

// 디스크에서 문서를 로드합니다.
Document doc = new Document("C:\\Files\\Words\\document.docx");

// 일반 텍스트로 저장 
doc.save("C:\\Files\\Words\\output.txt");
Word 문서에서 텍스트를 추출합니다.

Java를 사용하여 Word 문서를 구문 분석합니다.

무료 라이선스 받기

임시 무료 라이선스를 신청하여 평가 제한 없이 API를 사용해 보세요.

결론

이 기사에서는 Java를 사용하여 Word 문서를 생성, 편집 또는 변환하기 위해 Word를 자동화하는 방법을 배웠습니다. 또한 프로그래밍 방식으로 Word 문서에서 텍스트를 찾고 바꾸는 방법을 살펴보았습니다. 또한 문서를 사용하여 Aspose.Words for Java API에 대해 자세히 알아볼 수 있습니다. 모호한 부분이 있는 경우 포럼을 통해 언제든지 문의해 주십시오.

또한보십시오