728x90
반응형
파일 분할 기능 개발 시작!
일단 여러 블로그와 스택 오버플로우를 검색해봐도 자세한 내용은 찾기 어려웠다.
그래서 나의 오랜만에 나의 가장 친한 친구 ChatGPT 를 켰다.
자바스크립트로 PDF 파일 분할 코드를 알려달라고 해도 정확한 코드가 한번에 안 나와
예시 코드와 여러가지 질문들을 이어가며 수정에 수정을 거쳐 마침내 분할 코드를 완성할 수 있었다.
아래에 예시 코드는 PDF 파일을 20페이지 단위로 분할하는 코드이다.
import { PDFDocument } from 'pdf-lib';
const splitPDFs = [];
const pdfBytes = await file.arrayBuffer();
// file은 브라우저 상에 업로드 한것을 가져왔다
const pdfDoc = await PDFDocument.load(pdfBytes);
const pageCount = pdfDoc.getPageCount();
const splitPDF = async (pdfBytes, pageCount, pdfDoc, splitPDFs) => {
try {
if (!pdfBytes) {
console.error('PDF 파일을 읽을 수 없습니다.');
return;
}
for (let i = 0; i < pageCount; i += 20) {
const startPageIndex = i;
const endPageIndex = Math.min(i + 20, pageCount);
var pages = Array.from({ length: endPageIndex - startPageIndex }, (v, k) => k + startPageIndex);
const splitDoc = await PDFDocument.create();
const copiedPages = await splitDoc.copyPages(pdfDoc, pages);
copiedPages.forEach((page) => splitDoc.addPage(page));
const splitPDFBytes = await splitDoc.save();
splitPDFs.push(splitPDFBytes);
}
} catch (error) {
console.error('파일 분할 오류:', error);
alert('파일 분할 중 오류가 발생했습니다.');
}
}
728x90
반응형
'개발 일지 > PDF 파일 번역 프로그램' 카테고리의 다른 글
PDF 파일 번역 프로그램 - Cloud Translation API (1) | 2024.04.18 |
---|---|
PDF 파일 번역 프로그램 - Firebase 파일 업로드 (1) | 2024.04.18 |
PDF 파일 번역 프로그램 - 브라우저 파일 업로드 (0) | 2024.04.18 |
PDF 파일 번역 프로그램 - 계획 수립 (0) | 2024.04.01 |
PDF 파일 번역 프로그램 - 자료 조사 및 API 테스트 (1) | 2024.04.01 |
댓글