Apache POI HWPF
Microsoft Word 바이너리 문서 처리
오픈 소스 Java 라이브러리를 통해 DOC 파일을 생성, 읽기, 조작 및 변환합니다.
Apache POI HWPF는 Microsoft Word DOC 파일 형식용 Apache POI 포트입니다. 추가 라이브러리 없이 DOC 파일을 읽고 쓸 수 있는 기능을 제공합니다. 또한 이전 Word 6 및 Word 95 파일 형식에 대한 제한된 읽기 전용 지원을 제공합니다. 이 단계에서 HWPF는 주로 서식 있는 텍스트와 관련이 있습니다. 기본 텍스트 추출, 특정 텍스트 추출, 머리글 및 바닥글에 대한 액세스, 텍스트 기능 변경을 제공합니다.
개발자는 단락을 조작하고, 텍스트에 다양한 스타일을 추가하고, 표를 추가하고, 텍스트를 추출하는 등의 기능을 통해 MS-Word 문서를 쉽게 만들 수 있습니다.
Apache POI HWPF 시작하기
먼저 시스템에 JDK(Java Development Kit)가 설치되어 있어야 합니다. 이미 가지고 있는 경우 Apache POI의 다운로드 페이지로 이동하여 아카이브에서 최신 안정 릴리스를 얻으십시오. 필요한 라이브러리가 Java 프로그램에 링크될 수 있는 디렉토리에서 ZIP 파일의 컨텐츠를 추출하십시오. 그게 다야!
Maven 기반 Java 프로젝트에서 Apache POI를 참조하는 것은 훨씬 더 간단합니다. pom.xml에 다음 종속성을 추가하고 IDE가 Apache POI Jar 파일을 가져와 참조하도록 하기만 하면 됩니다.
Apache POI Maven 종속성
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>4.0.0</version>
</dependency>
Java API를 사용하여 Word 문서 작성 및 수정
Apache POI HWPF를 사용하면 프로그래머가 DOC 파일 형식으로 새 Word 문서를 만들 수 있습니다. API를 통해 개발자는 필요에 따라 기존 Word 문서를 수정할 수도 있습니다. API는 또한 Word 문서에 단락 추가, 텍스트 정렬 및 글꼴 스타일 적용 등을 지원합니다.
DOC 파일 수정 - 자바
// open an empty doc file, using APACHE POI we cannot create .doc file format from scratch
HWPFDocument doc = new HWPFDocument(new FileInputStream("empty.doc"));
Range range = doc.getRange();
// inset text
CharacterRun run = range.insertAfter("File Format Developer Guide - " +
"Learn about computer files that you come across in " +
"your daily work at: www.fileformat.com ");
OutputStream out = new FileOutputStream("document.pdf");
// save document
doc.write(out);
out.close();
Java를 사용하여 Word 문서를 다른 형식으로 변환
pache POI HWPF를 사용하면 소프트웨어 개발자가 Microsoft Word 문서를 지원되는 모든 파일 형식으로 쉽게 변환할 수 있습니다. 현재 Java 개발자는 Word 문서를 HTML, FO 및 텍스트 형식으로 변환할 수 있습니다. org.apache.poi.hwpf.converter 패키지에는 Word-to-HTML 및 Word-to-FO 변환기가 포함되어 있습니다.
DOC를 HTML로 변환
// load document
HWPFDocumentCore wordDocument = WordToHtmlUtils.loadDoc(new FileInputStream("document.doc"));
Document newDocument = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
// initialize WordToHtmlConverter
WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(newDocument );
// process document
wordToHtmlConverter.processDocument( wordDocument );
StringWriter stringWriter = new StringWriter();
Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty( OutputKeys.INDENT, "yes" );
transformer.setOutputProperty( OutputKeys.ENCODING, "utf-8" );
transformer.setOutputProperty( OutputKeys.METHOD, "html" );
transformer.transform(
new DOMSource( wordToHtmlConverter.getDocument() ),
new StreamResult( stringWriter ) );
// get html
String html = stringWriter.toString();
DOC 파일에서 텍스트 읽기
Apache POI HWPF는 Microsoft Word DOC 파일 형식에서 텍스트를 읽을 수 있는 WordExtractor 클래스를 제공합니다. 몇 줄의 코드만으로 파일에서 텍스트를 추출할 수 있습니다.
DOC 파일에서 텍스트 추출
// load DOC file
FileInputStream fis = new FileInputStream(new File("document.doc"));
// open file
HWPFDocument doc = new HWPFDocument(fis);
// read text
WordExtractor extractor = new WordExtractor(doc);
// display text
System.out.println(extractor.getText());
DOC에 사용자 정의 머리글 및 바닥글 추가
Apache POI HWPF를 사용하면 Java 개발자가 Word 문서 내에서 사용자 정의 머리글과 바닥글을 만들 수 있습니다. Apache POI HWPF는 "보통 기능"으로 설명됩니다. 기본 텍스트 추출, 특정 텍스트 추출, 머리글 및 바닥글에 대한 액세스, 텍스트 기능 변경을 지원합니다. getText() 메서드를 사용하여 모든 단락에서 텍스트를 가져오거나 getParagraphText()를 사용하여 각 단락에서 차례로 텍스트를 가져올 수 있습니다.
Word DOC 파일에서 사용자 지정 머리글 및 바닥글 관리
// The path to the documents directory.
String dataDir = Utils.getDataDir(ApacheHeaders.class);
POIFSFileSystem fs = null;
fs = new POIFSFileSystem(new FileInputStream(dataDir + "MyHeader.doc"));
HWPFDocument doc = new HWPFDocument(fs);
int pageNumber = 1;
HeaderStories headerStore = new HeaderStories(doc);
String header = headerStore.getHeader(pageNumber);
System.out.println("Header Is: " + header);