개발도구/ETC

documents4j 라이브러리 (DOCX -> PDF 변환)

펌킨고구마 2022. 1. 16. 11:01
728x90
반응형

documents4j 라이브러리를 이용해서 docx 파일을 pdf로 바꿀 수 있는데, 그 기능을 확인하려고 한다.

https://documents4j.com/

 

- documents4j 라이브러리란 ?

 문서를 다른 문서 형식으로 변환하기 위한 Java 라이브러리이라고 한다. 

 

 이 라이브러리에 대한 자세한 설명은 위에 링크에 들어가 보면 나와있겠지.

 나는 확인하는 게 먼저라 흐린 눈으로 넘겼다. 영어 사이트 넘 어려워 

 

 

정확히 어떻게 사용하실지에 대해 듣지 못했지만 , 아마도 사용 중인 프로젝트에 넣어 사용하실 것으로 보여, 현재 작업 중인 프로젝트 내에서 확인해볼 예정

찾아봤을 때 많이들 maven을 이용해 해당 라이브러리를 추가하는것으로 보이지만....

내가 사용할 프로젝트는 maven을 사용하지 않고 있기 때문에, 그냥 jar파일로 추가하여 사용할 예정

 

라이브러리 다운로드는 여기서 다운로드하였다.

https://mvnrepository.com/artifact/com.documents4j

 

Documents4j의 최신 버전은 현재(2021.08.03 기준 )  1.1.7이지만, 혹시 몰라서 1.0.3 버전으로 다운로드하였다.

검색해볼 때 1.0.3 이 많이 보이길래 그냥 그렇게 함..(머쓱)

 

 

먼저 테스트할 수 있는 java 파일을 만들었다. 

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;

import com.documents4j.api.DocumentType;
import com.documents4j.api.IConverter;
import com.documents4j.job.LocalConverter;

public class Test {
	
    public static void main(String[] args ) {
        	       	
               File inputWord = new File("Tests.docx");
               File outputFile = new File("Tests.pdf");
               try  {
                   InputStream docxInputStream = new FileInputStream(inputWord);
                   OutputStream outputStream = new FileOutputStream(outputFile);
                   IConverter converter = LocalConverter.builder().build();
                   converter.convert(docxInputStream).as(DocumentType.DOCX).to(outputStream).as(DocumentType.PDF).execute();
                   outputStream.close();
               } catch (Exception e) {
                   e.printStackTrace();
               }
        }

}

이 파일을 돌리면서 오류가 나면 필요한 라이브러리를 넣는 식으로 해결했다.

결국 넣은 라이브러리는 아래 이미지만큼 넣었다.

이렇게 한 개씩 추가하다 보니 이만큼이나 추가하게 되었고, 그 결과 

 

이렇게 PDF로 변환 완료!

 

아 참고로 이  라이브러리는 MS Office가 설치된 컴퓨터에서만 작동한다고 한다.

 

 

728x90
반응형
LIST