개발 창고/NodeJS

PDF 이미지 추출하기

로이제로 2022. 11. 28. 22:00
반응형

※ 해당 글은 아래 Library를 참조하여 작성되었습니다.

https://github.com/mablay/pdf-export-images

 

GitHub - mablay/pdf-export-images: Export images from PDF files via CLI

Export images from PDF files via CLI. Contribute to mablay/pdf-export-images development by creating an account on GitHub.

github.com

 

/**
* @file     index.js
* @install  npm i pdf-export-images
* @desc     PDF에서 이미지 추출
*/
// Step. PDF 이미지 추출 라이브러리 선언 (Import)
import { exportImages } from 'pdf-export-images';

// Step. "test.pdf"에서 이미지 추출해서 "./output" 폴더에 순서대로 저장
// 조건 #1. output 폴더가 있어야 한다.
// 조건 #2. pdf내 이미지는 이미지여야 한다.
exportImages('test.pdf', 'output')
.then(images => console.log(images))
.catch(console.error)

 

test.pdf 내용

 만약 위와 같은 PDF 문서가 있다고 가정해 봅시다. 해당 pdf는 ms word에서 위 에는 각각 도형을 아래는 이미지를 첨부하였습니다.

 

#1. 테스트로 사용된 PDF

test.pdf
0.03MB

 

#2. PDF에 사용된 이미지

test.pdf에 사용된 이미지

 

이 경우 첫 번째로 워드에서 직접 만든 도형은 이미지 파일이 아니기 때문에 output에 출력되지 않고, 두 번째로 사용된 이미지만 추출됨을 확인할 수 있습니다.

 

 이 때 주의사항으로, 추출하려는 output 폴더는 반드시 만들어져 있어야 하며, 추출하려는 이미지가 문서에서 그려진 도형이 아닌 첨부된 이미지여야 한다는 것입니다. 또한 해당 라이브러리는 ES모듈로 제작되었기 때문에, CommonJS에서 사용이 불가합니다. 때문에, require가 아닌 import를 해야 하며, package.json에 type을 module로 해주어야 합니다.

 

 또한, Import한 pdf-export-images 라이브러리의 exportImage의 함수 40번째 줄을 보면, 확장자는 png로 고정되어있음을 확인할 수 있습니다. (※ 해당 pdf-exprt-images 버전에 따라 달라질 수 있는 내용입니다.)

 

반응형