PDF 이미지 변환 도구
PDF 각 페이지를 고화질 이미지로 변환, PNG/JPEG 형식 지원
PDF 파일을 여기에 드래그 드롭, 또는 클릭하여 선택
.pdf 형식 파일 지원
PDF 이미지 변환 도구란?
PDF 이미지 변환 도구는 PDF 문서의 각 페이지를 별도의 이미지 파일로 변환합니다. 이 도구는 PDF.js 라이브러리를 사용하여 브라우저에서 완전히 실행되며, PDF를 분석하고 각 페이지를 Canvas에 렌더링한 후 PNG 또는 JPEG로 내보냅니다. 해상도 배율(1x/2x/3x)을 조정하고, 특정 페이지를 선택하여 변환하고, 개별적으로 또는 ZIP 패키지로 다운로드할 수 있습니다. 모든 처리는 로컬에서 수행되며—파일은 서버에 업로드되지 않으며, 개인정보를 보호합니다.
사용 방법
사용 방법
- 드래그하거나 클릭하여 PDF 파일을 업로드하세요
- 출력 형식 선택 (PNG 또는 JPEG)
- 해상도 배율 선택 (일반/고화질/초고화질)
- 변환할 페이지 선택 (전체 또는 사용자 지정)
- '변환 시작'을 클릭하여 선택한 페이지를 렌더링합니다
- 이미지를 개별적으로 또는 ZIP으로 다운로드하세요
출력 품질
- 작은 텍스트, 다이어그램 또는 인쇄용으로 해상도를 높이세요. 해상도가 높을수록 처리 시간과 파일 크기도 증가합니다.
- 다운로드 전에 페이지 범위와 회전을 확인하세요. 특히 스캔된 PDF의 경우 더욱 주의하세요.
활용 사례
기술 원리
PDF(ISO 32000-1, 원래 Adobe 1993, PostScript에서 파생)는 래스터 형식이 아닌 페이지 기술 언어입니다. PDF 페이지는 '이 경로를 채우라', '해당 글꼴로 이 텍스트를 렌더링하라', '이 JPEG를 삽입하라'와 같은 그리기 연산과 'm'(moveto), 'l'(lineto), 'Tj'(텍스트 표시)와 같은 연산자의 콘텐츠 스트림을 기록합니다. PDF 문법은 또한 리소스(글꼴, 이미지, 색 공간(DeviceRGB, DeviceCMYK, ICCBased), 셰이딩 패턴)를 참조합니다. PDF를 래스터화한다는 것은 이러한 연산자를 순서대로 해석하고, 그래픽 상태(CTM = 현재 변환 행렬, 현재 색상, 현재 글꼴)를 유지하며, 선택한 해상도의 비트맵에 페인팅하는 것을 의미합니다. 이 페이지는 Mozilla의 PDF.js(Mozilla Foundation, MPL-2.0, 2011년 이후 브라우저 내 PDF 엔진의 사실상 표준)를 사용합니다. PDF.js는 교차 참조 테이블과 트레일러를 파싱하고, 객체 트리를 순회하고, 콘텐츠 스트림을 연산자로 디코딩하고, 모든 리소스를 확인한 후 HTMLCanvasElement를 대상으로 그리기 호출을 출력합니다. 그런 다음 출력은 canvas.toBlob()을 통해 PNG(무손실) 또는 JPEG(손실)로 인코딩됩니다. 뷰포트 스케일은 PDF 사용자 단위를 픽셀로 매핑합니다. PDF 사용자 단위는 기본적으로 1/72인치(1pt = 1/72in)이므로 1x 뷰포트(PDF.js의 화면 기본값)는 72 DPI를 제공하며 96 DPI가 아닙니다. 96 DPI의 '화면' 참조는 Windows/CSS 참조 픽셀이지 PDF 좌표 시스템이 아닙니다. 스케일 1x = 72 DPI, 2x = 144 DPI, 3x = 216 DPI. 본 도구는 1x / 2x / 3x를 제공하며, 더 높은 인쇄용 DPI가 필요하다면 ImageMagick이나 pdftoppm 같은 데스크톱 도구를 사용하세요. 적절한 스케일 선택은 용도에 따라 다릅니다: 웹 미리보기 1x, HD 디스플레이 2x, 세부 검토나 인쇄 교정 3x. 렌더링 품질은 PDF 내용에 따라 달라집니다. 순수 벡터 콘텐츠(텍스트, 경로, 채우기)는 모든 DPI에서 선명하게 재래스터화됩니다. 삽입된 글꼴은 글꼴 하위 집합(Type 1, TrueType, CFF, PDF 1.6+의 OpenType-SFNT를 통한 OpenType)으로 추출되어 사용됩니다. 글꼴이 없거나 하위 집합이 불완전하면 페이지가 시스템 글꼴로 대체되고 글리프가 '두부' 상자(☐)로 렌더링될 수 있습니다. 스캔된 PDF는 페이지당 단일 비트맵(보통 JPEG 또는 JBIG2)을 삽입합니다. 소스가 이미 래스터이므로 DPI를 높여도 선명해지지 않으며 업스케일링은 보간만 수행합니다. 이러한 경우에 적합한 도구는 더 높은 해상도의 래스터화가 아닌 비트맵에 대한 OCR(Tesseract, AWS Textract)입니다. JPEG 품질 노브: 0.92는 일반 보기 거리에서 무손실과 거의 구별할 수 없고, 0.85는 0.92보다 4-6배 작은 파일의 일반적인 '웹에 적합한' 기본값이며, 0.75는 썸네일에 적합하고, 0.50은 텍스트 주변에 8×8 DCT 블록 아티팩트가 나타나기 시작합니다. PNG는 가장자리를 선명하게 유지하지만 사진 콘텐츠에서 동일한 인지 품질 대비 JPEG보다 약 3-5배 큽니다. 텍스트가 많은 PDF에는 PNG가 적합하고, 사진에는 0.85-0.92의 JPEG가 적합합니다.
- PDF는 ISO 32000-1(Adobe 1993, PostScript에서 파생)로 'm'(moveto), 'l'(lineto), 'Tj'(텍스트 표시)와 같은 연산자와 리소스(글꼴, 이미지, 색 공간)를 가진 페이지 기술 언어입니다. 래스터 형식이 아닙니다.
- PDF.js(Mozilla, MPL-2.0)는 2011년 이후 브라우저 내 PDF 엔진의 사실상 표준입니다: xref 테이블을 파싱하고, 객체 트리를 순회하고, 콘텐츠 스트림을 디코딩하고, 리소스를 확인하며, Canvas 그리기 호출을 출력합니다.
- PDF 사용자 단위: 기본적으로 1/72인치(1pt = 1/72in)이므로 뷰포트 스케일 1x = 72 DPI, 2x = 144 DPI, 3x = 216 DPI입니다. 96 DPI는 Windows/CSS 픽셀이지 PDF 개념이 아닙니다. 본 도구는 1x / 2x / 3x를 노출하며, 더 높은 인쇄용 DPI에는 데스크톱 도구가 필요합니다.
- 용도에 따라 스케일을 선택하세요: 웹 미리보기 1x(72 DPI), HD 디스플레이 2x(144 DPI), 세부 검토나 인쇄 교정 3x(216 DPI). 8.5×11인치 US Letter를 216 DPI로 래스터화하면 1836×2376px, A4(210×297mm)는 약 1786×2526px입니다.
- 벡터 콘텐츠는 모든 DPI에서 선명하게 재래스터화되며, 텍스트와 경로는 삽입된 글꼴 하위 집합(Type 1, TrueType, CFF, OpenType)을 사용합니다. 누락된 글리프는 시스템 글꼴로 대체되어 두부(☐)로 렌더링됩니다.
- 스캔된 PDF는 페이지당 비트맵(JPEG 또는 JBIG2)을 삽입합니다: DPI를 높여도 선명해지지 않습니다. 래스터에 OCR(Tesseract, AWS Textract)을 사용하세요. 더 높은 해상도의 래스터화는 효과가 없습니다.
- JPEG 품질: 0.92 거의 무손실, 0.85 '웹에 적합'(권장), 0.75 썸네일, 0.50 8×8 DCT 블록 아티팩트가 나타나기 시작. PNG는 텍스트 가장자리를 선명하게 유지하지만 사진 콘텐츠에서 3-5배 더 큽니다.
- PDF.js는 브라우저의 메인 스레드에서 PDF 콘텐츠 스트림을 HTMLCanvasElement에 렌더링한 다음 canvas.toBlob()으로 결과를 PNG 또는 JPEG로 인코딩합니다.
예시
단일 페이지 PDF를 PNG로
report.pdf (1페이지) -> report-page-1.png
해상도 2배, 파일 크기 약 800KB, PPT나 Word에 삽입하기에 적합멀티 페이지 PDF를 JPG로
book.pdf (50페이지) -> book-page-001.jpg ... book-page-050.jpg
품질 85%, 단일 ZIP으로 패키징, 총 약 12MB특정 계약서 페이지 추출
contract.pdf (20페이지) -> 7, 8, 15페이지만 내보내기 (서명, 가격, 위약 조항)
입력: 7,8,15 다른 정보를 노출하지 않고 관련 당사자에게 전달하기에 적합자주 묻는 질문
PDF가 업로드되나요?
아니요. 렌더링은 브라우저의 PDF.js를 사용합니다. PDF가 로컬에서 분석되고 래스터화되며, 파일 바이트는 절대 기기를 떠나지 않습니다.
어떤 출력 형식이 만들어지나요?
PNG(무손실, 라인 아트와 텍스트 위주 페이지에 적합) 또는 JPEG(파일 크기가 더 작아 사진 위주 페이지에 적합)를 출력합니다. PDF의 각 페이지는 한 개의 이미지 파일로 변환됩니다.
어떤 해상도로 렌더링되나요?
본 도구는 세 가지 해상도 단계를 제공합니다: 1×(약 72 DPI, 화면 미리보기에 적합), 2×(약 144 DPI, HD 디스플레이에 적합), 3×(약 216 DPI, 인쇄나 세부 검토에 적합). 더 높은 해상도가 필요하면 ImageMagick이나 pdftoppm 같은 데스크톱 도구를 사용하세요.
암호화된 PDF도 지원하나요?
본 도구는 암호로 보호된 PDF를 지원하지 않으며, 암호화된 파일은 파싱에 실패합니다. Acrobat이나 다른 도구에서 먼저 암호를 해제한 후 사용하세요. 권한 제한만 적용된 PDF(인쇄/복사 비활성화)는 보통 표시용으로 렌더링할 수 있습니다. DRM 보호된 PDF(Adobe DRM)는 렌더링할 수 없습니다.
렌더링된 이미지가 Acrobat의 PDF와 약간 다르게 보이는 이유는 무엇인가요?
PDF.js는 Adobe와는 별도의 렌더러입니다. 대부분의 페이지는 정확히 일치하지만, 글꼴 힌팅, 그라데이션 가장자리, CMYK→RGB 색상 변환에서 미세한 차이가 나타날 수 있습니다. Acrobat과 픽셀 단위로 동일한 출력을 원한다면 Acrobat의 이미지 내보내기 기능을 사용하세요.
특정 페이지만 내보낼 수 있나요?
대부분의 빌드에서는 렌더링 전에 페이지 범위(예: 1-5, 7, 10)를 선택할 수 있습니다. 한 페이지만 필요하면 해당 페이지 번호만 지정하세요. 긴 문서에서 표지나 특정 도표만 필요할 때 유용합니다.
페이지 수에 제한이 있나요?
브라우저 메모리에 따라 다릅니다. 3x 배율로 100페이지 이상을 렌더링하면 RAM을 많이 사용하고 모바일 브라우저는 충돌할 수 있습니다. 긴 문서는 일괄 분할해 처리하거나 ImageMagick, pdftoppm 같은 데스크톱 도구를 사용하세요.