개발 창고/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 이미지 추출하기

 

PDF 이미지 추출하기

※ 해당 글은 아래 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-expor

royzero.tistory.com

 

 우선 소스의 시작은 위의 글에서 시작되고, 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로 변환된 내용을 저장

 

본문내용 전체
실행
작업결과 #1
img_p0_1.txt에 저장된 bast64 내용

반응형