PDF → 이미지 변환

PDF의 각 페이지를 PNG / JPEG 이미지로 변환합니다. 배율 조정과 페이지 범위 지정을 지원하며, 여러 페이지는 ZIP으로 내려받을 수 있습니다.

모든 처리는 브라우저 내부에서 실행됩니다 — 파일·입력은 서버로 전송되지 않습니다.

사용법

PDF를 도구에 떨어뜨리고 페이지 범위(단일 페이지면 `5`, 범위면 `1-3`, 전체 페이지도 가능)를 선택한 뒤, 출력 형식(무손실은 PNG, 작은 파일은 JPEG)을 고르고 배율을 설정합니다. 1×는 CSS 픽셀에서의 원본 페이지 치수(약 96 DPI), 2×는 해상도를 두 배로 만들고(레티나 디스플레이 미리보기에 최적), 3~4×는 인쇄 품질의 래스터화 결과를 만듭니다. 각 페이지가 캔버스에 그려지고 별도의 이미지로 다운로드됩니다. 여러 페이지 출력은 ZIP으로 묶어 제공합니다.

PDF 페이지를 이미지로 필요로 하는 상황에 사용하세요 — 보고서의 차트를 프레젠테이션에 임베드하기, 한 페이지를 Instagram 게시물로 공유하기, PDF 라이브러리 UI의 미리보기 썸네일 생성하기, 스캔 문서에서 도표 추출하기 같은 경우입니다. 렌더링은 모두 PDF.js(Mozilla의 오픈소스 PDF 렌더러로 Firefox에도 포함)를 통해 브라우저 안에서 이루어지며 파일이 서버로 전송되지 않습니다. 비공개 문서를 다룰 때 중요한 점입니다. 다만 이것은 래스터화 작업입니다 — 텍스트가 픽셀이 되어 선택이나 검색이 불가능해집니다.

예제

단일 페이지 스크린샷(2×)

입력
file:   contract.pdf (5 pages, A4)
range:  3
format: PNG
scale:  2
출력
contract-page-3.png (1656 × 2340 px, ~400 KB)

A4는 1×에서 595 × 842 CSS 픽셀(약 96 DPI), 2×에서는 1190 × 1684가 되며 PDF.js가 추가로 기기 픽셀 비율을 곱해 레티나용으로 선명하게 출력합니다(2× 기기에서 최종 약 1656 × 2340 픽셀). PNG는 무손실이므로 리뷰·주석·자르기 예정의 스크린샷에 적합합니다. 리스트 내 미리보기 썸네일에는 JPEG 품질 0.85로 두면 파일 크기가 5~10배 줄고 썸네일 크기에서는 시각적 차이가 거의 없습니다.

전체 페이지 → ZIP(아카이브용)

입력
file:   report.pdf (40 pages)
range:  all
format: JPEG (quality 0.85)
scale:  1.5
출력
report-pages.zip (~5 MB, 40 JPEG files)

문서 전체를 JPEG ZIP으로 일괄 변환 — PDF보다 이미지를 선호하는 시스템(일부 레거시 DMS, 사진 라이브러리, 인덱싱용 미디어 시스템)에 아카이브할 때 유용합니다. ZIP 안에서 각 페이지는 `report-page-NN.jpg` 이름이 됩니다. 1.5×와 JPEG 품질 0.85에서 텍스트 중심의 40페이지 PDF는 약 5MB입니다. 배율을 3×로 올리면 ZIP이 50MB를 넘을 수 있습니다.

고 DPI 인쇄용 렌더링

입력
file:   poster.pdf (1 page, A3)
range:  1
format: PNG
scale:  3.125  (≈ 300 DPI)
출력
poster-page-1.png (4960 × 7016 px, ~12 MB)

300 DPI는 포스터·브로슈어·컬러 잡지 등 인쇄 품질 기준입니다. A3를 300 DPI로 내면 4960 × 7016 픽셀이 되고, 배율 3.125(96 × 3.125 ≈ 300)로 출력하면 이 타깃에 맞습니다. PNG는 색상을 정확히 유지하고, JPEG는 솔리드 컬러 블록과 그라디언트에 눈에 띄는 압축 잡음이 들어갑니다. 4색 인쇄에서는 PDF를 ICC 프로파일 임베드로 익스포트해야 합니다 — 원본이 CMYK이고 렌더러가 sRGB를 가정하면 래스터화에서 색 정확도를 잃습니다.

자주 묻는 질문

배율은 어떻게 고르나요?

용도에 맞추세요. **1×(96 DPI)**는 다른 디지털 문서에 임베드하고 뷰어가 확대하지 않을 때. **2×(192 DPI)**는 레티나 스크린 표시(스마트폰·노트북의 전형적인 픽셀 밀도와 일치)와 일반 공유에. **3×(288 DPI)**는 컬러 출판물의 인쇄 품질에 대체로 해당합니다. **4×(384 DPI)**는 고 DPI 인쇄(잡지·광택 브로슈어)에 적합합니다. 출력이 클수록 파일 크기는 기하급수적으로 늘어나므로 필요 이상 올리지 마세요. 100페이지 PDF를 4×로 렌더링하면 500MB를 쉽게 넘습니다.

PNG와 JPEG — 어느 쪽을 써야 하나요?

**PNG**는 텍스트·선화·차트·솔리드 컬러를 포함한 콘텐츠에 적합합니다 — 무손실이며 글자나 날카로운 선의 가장자리에 압축 잡음이 나오지 않습니다. **JPEG**는 사진 콘텐츠나 파일 크기가 픽셀 정확도보다 중요한 경우에 적합합니다 — 연속 톤 이미지에서는 같은 시각 품질로 훨씬 작아지지만, 날카로운 가장자리(특히 텍스트) 주변에 "링잉" 아티팩트가 들어갑니다. 텍스트와 사진이 섞인 잡지 페이지 같은 콘텐츠에는 PNG가 안전한 기본입니다. WebP와 AVIF는 둘보다 압축률이 더 높지만 받는 하류 도구가 적어 본 컨버터는 PNG·JPEG에 한정합니다.

출력에 선택 가능한 텍스트가 있나요?

아니요. PDF → 이미지 변환은 *래스터화*이며 텍스트 글리프가 픽셀로 그려져 문자 인코딩이 출력에 남지 않습니다. 이미 선택 가능한 텍스트를 가진 PDF에서 그것을 유지하고 싶다면 래스터화하지 말고 본 사이트의 PDF Split 도구로 분할해 페이지를 PDF로 유지하세요. 원본이 이미지인 스캔 PDF에서는 텍스트가 애초에 "선택 가능"이 아니며 OCR(`Tesseract`·Google Cloud Vision·AWS Textract)로 텍스트를 추출해야 하고, 래스터화된 이미지가 OCR 단계의 입력이 되기도 합니다.

페이지 회전이나 특이한 페이지 크기는 어떻게 되나요?

PDF.js는 페이지의 `Rotate` 속성과 명시적인 `MediaBox`(페이지 경계)에 따르므로 원본에서 세로 표시로 회전된 가로 페이지는 이미지에서도 세로로 나옵니다. A3·US Legal·커스텀 건축 사이즈 같은 특수 크기는 같은 물리 비례로 렌더링되며 결과 픽셀 치수만 달라집니다. PDF 뷰어에서 보이는 방향과 회전이 맞지 않는 경우 대부분 뷰어가 자동 보정한다는 뜻이며 PDF.js는 원시 회전 형태를 출력합니다.

출력이 왜 이렇게 큰가요?

원인은 세 가지입니다. **배율이 너무 높음** — A4를 4×로 내면 페이지당 약 800만 픽셀, 100페이지면 8억 픽셀 분량의 래스터 데이터가 됩니다. 실제로 필요한 배율로 낮추세요. **JPEG로 충분한 자리에 PNG를 씀** — PNG는 무손실이지만 큽니다. 사진 콘텐츠에는 JPEG 품질 0.85로 전환해야 합니다. **페이지가 풍부한 벡터 콘텐츠를 포함** — 벡터 차트를 4×로 완전 래스터화하면 원본 PDF 페이지보다 훨씬 큰 파일이 됩니다. 출력 크기가 충실도보다 중요하면 소스 PDF를 유지하고 JPEG 경로를 사용하세요. JPEG 품질 0.7까지 허용할 수 있다면 0.85보다 추가로 40% 크기가 줄어듭니다.

폼이나 주석이 있는 PDF도 처리되나요?

예, 단 주의점이 있습니다. PDF.js는 폼 필드를 현재 값으로 렌더링하므로 "Alice"가 입력된 폼은 출력 이미지에도 "Alice"로 표시됩니다. **주석**(하이라이트·스티커 노트·코멘트)은 기본으로 그 자리에 렌더링됩니다. 주석 없는 깨끗한 사본이 필요하면 변환 전에 Adobe Acrobat이나 `pdf-lib` 스크립트로 먼저 평탄화하세요. 인터랙티브 요소(클릭 가능한 버튼·라디오 선택지)는 정적 이미지가 되면 당연히 동작하지 않습니다. 폼 처리 파이프라인에서는 폼을 저장하기 전에 렌더링하세요 — 렌더링 이미지는 그 순간의 폼 상태의 영구 기록이 됩니다.

관련 개념

PDF 렌더링과 PDF 작성은 별개의 문제입니다. **작성**(Adobe Acrobat·Apple Pages 내보내기·LaTeX → PDF)은 PDF 객체(페이지·폰트·벡터 명령·임베드 이미지)를 씁니다. **렌더링**(Adobe Reader·Apple Preview·PDF.js·mutool)은 그 객체를 받아 표시·인쇄용 픽셀을 생성합니다. 본 도구는 렌더러로 픽셀 출력을 캡처해 PNG·JPEG로 저장합니다 — PDF 뷰어 스크린샷을 찍는 것과 비슷하지만 스크립트 가능, 배율 조절 가능, 문서 전체에 대한 처리가 가능합니다.

본 도구가 사용하는 **PDF.js**는 PDF 명세의 Mozilla 오픈소스 구현입니다. 2011년 Firefox의 기본 PDF 뷰어로 시작했고 현재는 Firefox·Android Chrome·다수의 웹 PDF 뷰어(Slack 파일 미리보기·Notion 첨부·JIRA PDF 보기)에 포함되어 있습니다. 모두 JavaScript와 WebAssembly로 브라우저 안에서 동작하며 ISO 32000-1의 대부분(벡터 콘텐츠·임베드 래스터 이미지·OpenType 폰트·암호화·기본 폼·기본 주석)을 지원합니다. 네이티브 렌더러(mutool·Ghostscript·Adobe) 대비 트레이드오프는 속도와 엣지 케이스 충실도이며, 매우 복잡한 PDF(CAD 도면·드문 폰트 서브셋을 쓰는 과학 논문)는 약간 다르게 또는 훨씬 느리게 렌더링됩니다.

전체 그림을 완성하는 인접 개념이 3가지 있습니다. **OCR(광학 문자 인식)**은 역의 작업 — 래스터화된 이미지를 검색 가능한 텍스트로 되돌립니다. `Tesseract`(Google의 오픈소스 OCR)·`paddle-ocr`·AWS Textract·Google Cloud Vision이 일반적인 구현입니다. 워크플로는 PDF → 이미지 → OCR → 텍스트로 연쇄되는 경우가 많습니다. **PDF/A**(ISO 19005)는 아카이브용 PDF 부분 집합으로 PDF/A 문서를 래스터화해 PDF/A로 재저장하면 "이미지 전용" PDF/A-1이 되고 PDF/A-1b 이상이 보존하려는 검색성을 잃습니다. **인쇄용 래스터화**(Ghostscript·PostScript 인터프리터)는 물리 프린터가 인쇄 시점에 수행하는 것으로 — 다른 코드 경로이고 훨씬 높은 DPI 기본값(1200~2400)을 쓰며 출력은 이미지 파일이 아닌 프린터 픽셀로 갑니다. 프리프레스 워크플로에서는 프린터의 네이티브 인터프리터를 우선하고 디지털 출판에는 본 도구로 충분합니다.

관련 도구