서론
회사 프로젝트를 진행하던 중 hwp파일을 파싱하여 내부 데이터를 처리해야할 일이 생겼다.
역시 한국 독자규격인 hwp답게 자료가 더럽게 없었다... 결국 gpt의 도움을 받아 파싱에 성공했다
갓 gpt...
아래 순서대로 진행하면 된다.
1. 라이브러리 추가
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-parsers</artifactId>
<version>1.28</version>
</dependency>
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.12.1</version>
</dependency>
위 두 라이브러리를 추가해준다.
tika-parsers는 여러 문서에대한 파싱기능을 제공해주는 라이브러리이고
xerces는 파싱 과정에서 필요한 라이브러리이다.
2. 소스코드
private static void readHWPContents() {
File file = new File("읽을 한글파일 경로");
try (FileInputStream fis = new FileInputStream(file)) {
// Tika 인스턴스 생성
BodyContentHandler handler = new BodyContentHandler();
Metadata metadata = new Metadata();
ParseContext pContext = new ParseContext();
// HWP 파서 생성
HwpV5Parser hwpParser = new HwpV5Parser();
// 파일 파싱
hwpParser.parse(fis, handler, metadata, pContext);
// 결과 출력
System.out.println("Document Body:");
System.out.println(handler.toString());
// 메타데이터 출력
System.out.println("Metadata:");
String[] metadataNames = metadata.names();
for (String name : metadataNames) {
System.out.println(name + ": " + metadata.get(name));
}
} catch (IOException | TikaException | SAXException e) {
e.printStackTrace();
}
}
위 코드블럭과 같이 파일을 읽고 HwpV5Parser를 통해 파싱해준 후 handler를 통해 출력된 데이터를 사용하면 된다.
추가로 구글링 중 한글파일을 처리할 수 있는 라이브러리를 발견했다.
아래 라이브러리를 사용하면 실제로 읽은 한글파일을 java단에서 수정할 수 있을것 같다.
GitHub - neolord0/hwplib: hwp library for java
hwp library for java. Contribute to neolord0/hwplib development by creating an account on GitHub.
github.com
'웹 개발 > Java' 카테고리의 다른 글
[Java] 하위 항목들을 jar파일로 만들기 (0) | 2024.05.13 |
---|