Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- 서버리스 #
- TS
- github
- npm
- 0.75px border
- Props
- 0.5px border
- &연산
- 10px
- ZOOM
- 0.25px border
- TypeScript
- entity
- 전역변수
- 당근마켓
- es6
- 데이터베이스 #try #이중
- 문서번호
- Websocket
- 1px border
- 으
- literal
- 클론코딩
- font-size
- ES5
- 컴포넌튼
- 타입스크립트
- angular
- jwt
- Strict
Archives
- Today
- Total
복잡한뇌구조마냥
[JavaScript] PDF 병합 본문
PDF 파일 생성을 하다가, 특정 페이지만 바꿔서 사용해야하는 경우가 생겼다.
파일로 생성된 2개의 파일을 어떻게 코드를 통해서 합치지라는 생각에 여러 시도를 해보았다.
PDF파일을 Array Buffer로 변환하여, 각 파일의 페이지를 불러와서 필요한 페이지를 기존 PDF파일에 추가하는 방식으로 구현했는데 아래의 코드를 참고하면 좋을 것 같다.
/**
* PDF Merge
* 원본 PDF에 추가 PDF를 뒷페이지로 추가하는 로직
* @param pdfArrayBuffer1 원본 PDF
* @param pdfArrayBuffer2 추가할 PDF
*/
async mergePDFs(pdfArrayBuffer1: ArrayBuffer, pdfArrayBuffer2: ArrayBuffer): Promise<ArrayBuffer> {
return new Promise(async (resolve, reject) => {
try {
// PDF 문서 로드
const pdf1 = await PDFDocument.load(pdfArrayBuffer1);
const pdf2 = await PDFDocument.load(pdfArrayBuffer2);
// 빈 PDF 문서 생성
const mergedPdf = await PDFDocument.create();
const pages1 = await mergedPdf.copyPages(
pdf1,
Array.from({ length: pdf1.getPageCount() }, (v, i) => i),
);
const pages2 = await mergedPdf.copyPages(
pdf2,
Array.from({ length: pdf2.getPageCount() }, (v, i) => i),
);
// 첫 번째 PDF의 페이지 추가
pages1.forEach(page => {
mergedPdf.addPage(page);
});
// 두 번째 PDF의 페이지 추가
pages2.forEach(page => {
mergedPdf.addPage(page);
});
// 합쳐진 PDF 문서 저장
const mergedPdfBytes = await mergedPdf.save();
resolve(mergedPdfBytes.buffer);
} catch (error) {
reject(error);
}
});
}
LIST
'FE > JavaScript' 카테고리의 다른 글
[JavaScript] 스크롤 멈춤 감지 방법 & wheel vs scroll 이벤트 차이 (0) | 2023.12.04 |
---|---|
JavaScript 공부 ( 페이지 이동, 새 탭에서 열기, 새 창에서 열기 ) (0) | 2023.03.02 |
[JavaScript] ES문법, 메서드, Promise (0) | 2022.08.14 |
JavaScript 개념 알고 가기 (0) | 2022.08.06 |