개발 창고/Web
PDF 이미지를 BASE64 파일로 저장
로이제로
2022. 11. 29. 22:00
반응형
/**
* @file index.js
* @install npm i pdf-export-images
* @desc PDF에서 이미지 추출하여, Base64로 변환후 텍스트 파일로 저장
*/
// Step. PDF 이미지 추출 라이브러리 선언 (Import)
import { exportImages } from 'pdf-export-images';
// Step. File System 라이브러리 선언 (Import)
import fs from 'fs';
// Step. "test.pdf"에서 이미지 추출해서 "./output" 폴더에 순서대로 저장
// 조건 #1. output 폴더가 있어야 한다.
// 조건 #2. pdf내 이미지는 이미지여야 한다.
exportImages('test.pdf', 'output')
.then(images => {
images.map(image => {
// console.log(image.file);
// Step. File을 Base64로 변환
const contents = fs.readFileSync(image.file, {encoding: 'base64'});
// console.log(contents);
// Step. Bast64로 변환된 테스트를 Text File로 저장
const dest = image.file.replace("png", "txt"); // 저장 위치
// console.log(dest);
fs.writeFileSync(dest, contents)
})
})
.catch(console.error)
이전 글에서는 PDF의 이미지를 추출하는 방법을 확인해보았고, 이번에는 이미지를 base64로 변환한 후 파일로 저장하는 법에 대해 알아보겠습니다.
2022.11.28 - [개발 창고/NodeJS] - PDF 이미지 추출하기
우선 소스의 시작은 위의 글에서 시작되고, exportImages의 결과(then)로 받아들인 이미지 목록(images)에서 시작합니다.
14/ exportImages("추출할 PDF 파일", "출력 위치")
15/ then(추출된 이미지 => {
16/ 추출된 이미지 목록(images) 각각을 loop 돌며 수행
20/ 해당 이미지를 base64 형식으로 변환
24/ 현재 이미지 파일명 기준으로 저장할 txt 파일 생성
※ 반드시 저렇게 할 필요는 없고, 원하는 파일명으로 지정해주면 됩니다.
※ pdf-export-images의 결과물은 이전 게시물에서 이야기한 것처럼 png로 고정되어있어 png를 txt로 바꿔서
파일명을 추출하도록 작성함
ex) image0_0.png → image0_0.txt
26/ 지정한 txt 파일에 base64로 변환된 내용을 저장
반응형