1. pdf-lib: PDF 생성/편집 기능 확인
- 주요 기능: PDF 문서를 생성하고 수정 가능. 페이지 추가/삭제, 이미지 삽입, 텍스트 추가, 기존 PDF 편집 등.
- 활용 가능성:
- PDF에 도장 삽입: 이미지(PNG)를 PDF 페이지에 삽입 가능. 모든 페이지에 도장을 찍는 기능 구현에 적합.
- PDF 업로드/다운로드: 기존 PDF를 로드하고 수정 후 저장 가능.
- 제한사항: 렌더링(미리보기)은 지원하지 않음. 편집 후 결과를 확인하려면 별도 렌더링 도구 필요.
- 결론: PDF 편집 및 도장 삽입의 핵심 기능에 강력. 미리보기 기능은 pdfjs-dist와 결합 필요.
2. pdfjs-dist: PDF 렌더링 및 미리보기 가능성 검토
- 주요 기능: PDF를 브라우저에서 파싱하고 캔버스에 렌더링. 페이지별 미리보기 제공.
- 활용 가능성:
- PDF 미리보기: 모든 페이지를 캔버스로 렌더링 가능. 요구사항 충족.
- 도장 삽입: 직접적인 편집 기능 없음. 캔버스에 도장을 표시하려면 fabric.js와 연계 필요.
- 제한사항: 편집은 불가. PDF 수정은 pdf-lib에 의존해야 함.
- 결론: 미리보기 구현에 최적. 도장 삽입은 다른 라이브러리와 협력 필요.
3. fabric.js: 캔버스 기반 도장 삽입 구현 가능성 확인
- 주요 기능: HTML5 캔버스에서 객체(이미지, 도형 등) 조작. 드래그, 크기 조정, 레이어 관리 지원.
- 활용 가능성:
- 도장 삽입: PNG 도장 이미지를 캔버스에 추가하고 위치 조정 가능. pdfjs-dist로 렌더링된 캔버스 위에 도장 배치 가능.
- 제한사항: PDF 자체를 다루지 않음. pdfjs-dist로 렌더링된 캔버스와 통합해야 하며, 최종 PDF 저장은 pdf-lib 필요.
- 결론: 도장의 인터랙티브한 배치에 적합. pdfjs-dist와 pdf-lib를 연결하는 중간 역할.
- pdf-lib 공식 문서:
- pdfjs-dist 공식 문서:
PDF 파일에 이미지를 추가하는 코드
PDF 다운로드 코드
https://forum.wixstudio.com/t/generate-and-download-a-custom-pdf-with-pdf-lib/11118