HEIC PDF 변환 — 아이폰 사진 여러 장을 윈도우에서 설치 없이 PDF 하나로 (용량이 2배가 되는 이유까지)
아이폰 카메라가 '고효율성' 포맷이면 사진이 HEIC 로 저장돼서, 서류 제출용 PDF 를 만들려고 하면 'JPG 로 먼저 바꿔야 하나' 부터 막힙니다. HEIF 이미지 확장이 있는 윈도우 11 에서는 HEIC 를 바로 PDF 로 만들 수 있습니다 — 다만 JPG 와 같은 함정(가장자리 잘림·세로 사진 눕힘)에 더해, HEIC 에만 생기는 일이 두 가지 있습니다. JPG 용 스크립트가 '메모리가 부족합니다' 로 멈추고, PDF 가 원래 HEIC 보다 1.3~2.3배 커집니다. 휴대폰 크기 HEIC 3장으로 세 가지 방법을 시험했습니다.

HEIC 로 만든 PDF 가 원본보다 커져 업로드 제한에 걸릴 때 브라우저 안에서 줄입니다. 파일을 서버로 보내지 않고, 정해 둔 크기에 맞추거나 여러 개로 나눌 수 있습니다.
- ✓ 무료
- ✓ 설치·회원가입 없음
- ✓ 브라우저에서 바로 실행
- ✓ 파일이 서버로 올라가지 않음
- ✓ 소스 공개
🔒 파일을 서버나 다른 어떤 곳으로도 보내지 않습니다 — 내 컴퓨터의 브라우저 안에서만 처리합니다.
먼저 알아 둘 것 — PDF 안에는 HEIC 가 그대로 들어가지 않는다
HEIC 는 아이폰 7 이후 기기가 HEIF 형식으로 찍은 사진 파일입니다(카메라 포맷 '고효율성'). 애플 지원 문서는 이 형식을 권장하면서, HEIF·HEVC 가 JPEG·H.264 보다 압축률이 높아 같은 화질에 저장 공간을 덜 쓴다고 설명합니다. 이번 시험에서도 같은 휴대폰 크기 사진 3장이 JPG(품질 92)로는 4,192,795바이트, HEIC 로는 1,661,018바이트(40%)였습니다.
문제는 PDF 쪽입니다. PDF 표준 ISO 32000-1:2008 의 '표준 필터' 표(표 6)에 있는 그림 압축 방식은 JPEG(DCTDecode), JPEG 2000(JPXDecode), JBIG2, CCITT 팩스, Flate 같은 것들이고, HEIC 가 쓰는 HEVC 는 없습니다. 실제로 이 글의 세 방법이 만든 PDF 를 열어 그림을 꺼내 보니 모두 JPEG 였습니다. 그러니 어떤 방법을 쓰든 HEIC 를 한 번 풀어서 JPEG 로 다시 압축하는 과정이 들어가고, 파일은 원래 HEIC 보다 커집니다.
시험 파일은 앞서 JPG → PDF 글에서 쓴 휴대폰 크기 사진 3장을 HEIC 로 저장한 것입니다: 가로 4032×3024 두 장(239,755 · 915,084바이트)과 세로 사진 한 장(506,179바이트). 세로 사진은 휴대폰을 세워 찍은 것처럼 픽셀은 가로로 두고 '90도 돌려서 보여라' 는 회전 정보(irot, EXIF 방향 6)를 붙였습니다. 윈도우 11, HEIF 이미지 확장 1.2.48.0 · HEVC 비디오 확장 2.5.33.0 이 있는 PC 에서 2026-10-22 에 시험했습니다.
방법 1: 탐색기 인쇄 → Microsoft Print to PDF (설치 없음)
- 1파일 탐색기에서 .heic 사진들을 선택합니다(Ctrl 을 누른 채 클릭).
- 2마우스 오른쪽 → 인쇄 를 누릅니다. 메뉴에 없으면 '추가 옵션 표시' 안에 있습니다.
- 3'사진 인쇄' 창 왼쪽 위 프린터 를 Microsoft Print to PDF 로 바꿉니다.
- 4용지 A4, 레이아웃 '전체 페이지 사진' 을 확인하고 그림을 프레임에 맞춤 을 켤지 정합니다.
- 5인쇄 → '다음 이름으로 프린터 출력 저장' 창에서 위치와 이름을 정하고 저장.
이 PC 의 레지스트리에는 .heic 에도 .jpg 와 같은 사진 인쇄 마법사가 '인쇄' 메뉴로 등록돼 있었고, HEIC 3장이 3쪽 PDF(3,404,115바이트)로 저장되는 데 10.1초 걸렸습니다. HEIC 를 읽는 일은 윈도우의 HEIF 이미지 확장이 맡습니다 — 탐색기에서 .heic 미리보기가 안 보이는 PC 라면 이 방법도 안 될 가능성이 큽니다(확장 설치는 HEIC 를 JPG 로 바꾸는 글에 정리했습니다).
사진 인쇄 창은 처음에 PC 의 기본 프린터 로 열립니다. 이 PC 의 기본 프린터는 실제 레이저 프린터라, 프린터를 바꾸지 않고 인쇄를 누르면 종이로 나갑니다. 전에 한 번 PDF 프린터로 바꿨다면 그 선택이 남아 있었습니다.
기본값이 HEIC 사진에 하는 일
- 쪽이 모두 A4 가로이고 세로 사진은 눕는다. 3쪽 모두 297×210mm 였고, 세로 사진은 반시계 방향으로 90도 누운 채 들어갔습니다(원본과 픽셀 차이 3.50, 시계 방향이면 51.19). 회전 정보 자체는 제대로 읽었습니다 — 세운 사진을 가로 쪽에 맞추려고 다시 눕힌 것입니다.
- 가장자리가 잘린다. '그림을 프레임에 맞춤' 이 기본으로 켜져 있어 4:3 사진을 A4 에 꽉 채우느라 위아래를 잘랐습니다. 가로 사진 두 장 모두 3,024줄 중 가운데 2,846줄(94.1%)만 남았습니다(원본과 픽셀 차이: 가운데 자르기 3.61·2.98, 늘리기 11.74·10.09).
- 사진은 띠로 나뉘어 JPEG 로 다시 압축된다. PDF 안에서 사진 한 장은 4032×500 띠 6개와 4032×24 띠 1개, 모두 JPEG 였습니다.
방법 2: PowerShell 스크립트 — HEIC 를 윈도우 디코더로 읽어서
JPG → PDF 글의 PowerShell 스크립트에 .heic 를 넣으면 첫 장에서 멈춥니다. 오류는 OutOfMemoryException, 메시지는 '메모리가 부족합니다.' 입니다. 메모리가 모자란 게 아니라 그 스크립트가 쓰는 System.Drawing(GDI+)이 HEIC 를 읽지 못하는 것인데, 오류 문구가 원인을 말해 주지 않아 헤매기 쉽습니다.
아래 스크립트는 그림 읽기만 바꿨습니다. 윈도우에 들어 있는 WPF 이미지 기능으로 .heic 를 열면 HEIF 이미지 확장의 디코더(이름 'Microsoft HEIF Decoder')가 읽어 주고, 그것을 메모리 안에서 JPEG 로 저장한 뒤 같은 방식으로 Microsoft Print to PDF 에 그립니다. 프린터를 이름으로 지정하므로 종이로 갈 일이 없습니다.
Add-Type -AssemblyName System.Drawing, PresentationCore
$folder = "C:\Users\내이름\Pictures\아이폰사진" # PDF 로 만들 HEIC 가 든 폴더(전체 경로)
$out = "C:\Users\내이름\Pictures\사진모음.pdf" # 만들 PDF(전체 경로)
$q = 92 # JPEG 품질. 낮추면 PDF 가 작아진다(80 이면 약 2/3)
$files = @(Get-ChildItem "$folder\*" -Include *.heic, *.heif | Sort-Object Name | ForEach-Object { $_.FullName })
function Load-Photo($path) { # System.Drawing 은 HEIC 를 못 읽는다 → 윈도우 HEIF 확장(WIC)으로 읽어 JPEG 로 메모리에 옮긴다
$src = [System.Windows.Media.Imaging.BitmapDecoder]::Create([Uri]$path, 'None', 'OnLoad').Frames[0]
$enc = New-Object System.Windows.Media.Imaging.JpegBitmapEncoder
$enc.QualityLevel = $q
$enc.Frames.Add([System.Windows.Media.Imaging.BitmapFrame]::Create($src))
$ms = New-Object System.IO.MemoryStream
$enc.Save($ms)
[System.Drawing.Image]::FromStream($ms)
}
$pd = New-Object System.Drawing.Printing.PrintDocument
$pd.PrinterSettings.PrinterName = "Microsoft Print to PDF" # 종이 프린터로 가지 않게 PDF 프린터를 직접 지정
$pd.PrinterSettings.PrintToFile = $true
$pd.PrinterSettings.PrintFileName = $out
$pd.DefaultPageSettings.PaperSize = $pd.PrinterSettings.PaperSizes | Where-Object { $_.Kind -eq "A4" } | Select-Object -First 1
$pd.DefaultPageSettings.Margins = New-Object System.Drawing.Printing.Margins 40, 40, 40, 40 # 여백 약 1cm
$i = 0
$pd.add_QueryPageSettings({ # 사진이 가로면 쪽도 가로, 세로면 세로
$img = Load-Photo $files[$script:i]
$_.PageSettings.Landscape = ($img.Width -gt $img.Height)
$img.Dispose()
})
$pd.add_PrintPage({ # 자르지 않고 여백 안에 맞춰 가운데
$img = Load-Photo $files[$script:i]
$m = $_.MarginBounds
$k = [Math]::Min($m.Width / $img.Width, $m.Height / $img.Height)
$w = $img.Width * $k; $h = $img.Height * $k
$_.Graphics.DrawImage($img, [single]($m.X + ($m.Width - $w) / 2), [single]($m.Y + ($m.Height - $h) / 2), [single]$w, [single]$h)
$img.Dispose()
$script:i++
$_.HasMorePages = ($script:i -lt $files.Count)
})
if (-not $pd.PrinterSettings.IsValid) { "Microsoft Print to PDF 가 없습니다" } else { $pd.Print(); "저장: $out" }- 1PDF 로 만들 .heic 를 한 폴더에 모읍니다. 쪽 순서는 파일 이름 순서입니다(아이폰 사진 IMG_0001, IMG_0002 … 는 그대로 찍은 순서).
- 2시작 메뉴에서 Windows PowerShell 을 엽니다(관리자 권한 필요 없음).
- 3$folder 와 $out 경로를 바꾸고 통째로 붙여 넣은 뒤 Enter. '저장:' 이 나오면 끝입니다.
결과: 3장이 쪽 방향 가로 · 세로 · 가로 인 A4 PDF 가 됐고 3.5초 걸렸습니다. 세로 사진은 회전 정보대로 3024×4032 로 세워져 세로 쪽에 똑바로 들어갔고(디코더가 회전을 적용한 뒤 방향 값을 1 로 돌려줌), 잘린 곳 없이 여백 1cm 안에 맞춰졌습니다. 크기는 품질 92 에서 3,878,114바이트로, 메모리에서 만든 JPEG 합계(3,885,093)와 거의 같습니다 — 만든 JPEG 를 다시 압축하지 않고 넣은 것으로 보입니다. 품질 80 이면 2,468,833바이트였습니다.
이 코드는 .heic·.heif 전용입니다. JPG 가 섞여 있으면 JPG 는 JPG → PDF 글의 스크립트로 따로 만드는 편이 낫습니다 — 이 방식으로 JPG 를 읽으면 원본 JPG 를 한 번 더 압축하게 됩니다. .ps1 파일로 저장해 실행할 때는 한글 주석이 깨지지 않게 UTF-8(BOM) 으로 저장하세요.
방법 3: 파이썬 Pillow + pillow-heif
Pillow 만으로는 HEIC 를 열지 못합니다. 이 PC 의 Pillow 13.0.0 은 cannot identify image file (UnidentifiedImageError)를 냈습니다. pillow-heif 플러그인(1.8.1)을 설치하고 등록하면 됩니다.
from glob import glob
from PIL import Image
import pillow_heif # pip install pillow pillow-heif
pillow_heif.register_heif_opener() # 이 줄이 없으면 UnidentifiedImageError
files = sorted(glob("*.heic"))
pages = [Image.open(f).convert("RGB") for f in files]
pages[0].save("사진모음.pdf", save_all=True, append_images=pages[1:],
resolution=300, quality=92) # resolution 이 없으면 쪽이 1.4m 가 된다- 회전 정보는 알아서 반영된다. pillow-heif 로 연 세로 사진은 3024×4032 로 바로 섰습니다. JPG 때처럼 exif_transpose 를 따로 부를 필요가 없었습니다.
- resolution 을 빼면 쪽이 거대해진다. 기본값 저장은 픽셀을 72dpi 로 쳐서 쪽이 1,422×1,067mm 였습니다. resolution=300 이면 341×256mm.
- 기본값은 품질 75 로 다시 압축한다. PDF 안 그림이 같은 사진을 품질 75 JPEG 로 저장한 것과 바이트까지 같았습니다(487,575). 기본 저장은 2,172,718바이트(HEIC 의 1.31배)로 세 방법 중 가장 작았고 0.64초 걸렸습니다. quality=92 로 주면 3,874,080바이트.
결과 비교 — 왜 PDF 가 HEIC 보다 커지나
| 방법 | 설치 | 쪽 방향 | 가장자리 | PDF 안 그림 | 3장 PDF 크기 |
|---|---|---|---|---|---|
| 인쇄 → PDF 프린터(기본값) | 없음(HEIF 확장) | 모두 A4 가로(세로 사진 눕힘) | 위아래 약 6% 잘림 | JPEG 띠 7개씩 | 3,404,115바이트 |
| PowerShell 스크립트(품질 92) | 없음(HEIF 확장) | 사진마다 가로/세로 | 전체 · 여백 1cm | JPEG 한 장씩 | 3,878,114바이트 |
| PowerShell 스크립트(품질 80) | 없음(HEIF 확장) | 사진마다 가로/세로 | 전체 · 여백 1cm | JPEG 한 장씩 | 2,468,833바이트 |
| 파이썬 Pillow + pillow-heif(기본값) | 파이썬 + 2개 | 사진 비율대로(쪽 1.4m) | 전체 | JPEG(품질 75) | 2,172,718바이트 |
HEIC 원본은 3장 합계 1,661,018바이트였으니, 가장 작게 나온 경우에도 PDF 가 1.3배입니다. 같은 화질을 더 적은 바이트로 담는 HEVC 압축을 PDF 가 쓸 수 없어서 JPEG 로 바꾸는 순간 그만큼 커지는 것입니다. 업로드 제한이 있다면 처음부터 품질을 많이 낮추기보다, 품질 92 정도로 만든 PDF 를 PDF 용량 줄이기 도구로 제한에 맞추는 편이 결과를 보면서 조절하기 쉽습니다.
아이폰·맥에서는
앞으로 찍을 사진 이라면 원인을 없애는 게 가장 간단합니다. 애플 지원 문서(HEIF 또는 HEVC 미디어 사용하기)의 경로는 설정 → 카메라 → 포맷 → 높은 호환성 이고, 그 뒤 새 사진은 JPEG 로 찍힙니다. 같은 문서는 아이폰을 USB 로 PC 에 연결해 사진을 가져올 때 JPEG 로 바뀔 수 있다고 안내합니다(설정 → 앱 → 사진의 '원본 유지' 를 켜면 바뀌지 않음). 에어드롭·메시지·이메일로 보낼 때도 받는 기기가 HEIF 를 지원하지 않으면 자동으로 JPEG 로 공유될 수 있다고 합니다.
맥 에서는 애플 설명서 'Mac에서 여러 파일을 PDF로 결합하기' 대로 Finder 에서 사진들을 선택하고 Control-클릭 → 빠른 동작 → PDF 생성 을 고르면 됩니다. 파일은 선택한 순서대로 PDF 에 들어갑니다. 이 글을 쓴 곳에는 맥이 없어 크기·방향은 실측하지 못했습니다.
아이폰 안에서 바로 PDF 를 만드는 방법은 애플 공식 설명서에서 절차를 찾지 못해 다루지 않았습니다.
결과가 이상할 때 확인 순서
- 1'메모리가 부족합니다' 또는 UnidentifiedImageError — HEIC 를 못 읽는 도구입니다. 이 글의 HEIC 용 스크립트나 pillow-heif 를 쓰세요. 인쇄 창에서 사진이 안 보이면 HEIF 이미지 확장부터 확인합니다.
- 2세로 사진이 누웠다 — 사진 인쇄 창은 쪽 방향을 사진마다 바꾸지 않습니다. PowerShell 스크립트를 씁니다.
- 3가장자리가 잘렸다 — 그림을 프레임에 맞춤을 끄고 다시 저장합니다.
- 4PDF 가 원본보다 크다 — 정상입니다(위 비교). 업로드 제한이 있으면 스크립트의 $q 를 낮추거나 PDF 용량 줄이기로 맞춥니다.
자주 묻는 질문
Q. HEIC 를 먼저 JPG 로 바꾼 다음 PDF 로 만들어야 하나요?
HEIF 이미지 확장이 있는 윈도우 11 이라면 그럴 필요가 없었습니다. 탐색기 인쇄와 이 글의 스크립트 모두 .heic 를 바로 받았습니다. 어차피 PDF 안에서는 JPEG 로 바뀌므로, 따로 JPG 를 만들면 압축만 한 번 더 하게 됩니다.
Q. PDF 가 왜 HEIC 보다 커지나요?
PDF 표준의 그림 압축 방식에 HEIC 의 HEVC 가 없어서 JPEG 로 다시 압축하기 때문입니다. 이 글의 시험에서 HEIC 3장 1,661,018바이트가 PDF 2,172,718~3,878,114바이트가 됐습니다.
Q. 세로로 찍은 사진이 옆으로 누워요.
사진 인쇄 창의 '전체 페이지 사진' 은 쪽을 모두 A4 가로로 만들어 세로 사진을 눕힙니다. 이 글의 PowerShell 스크립트는 쪽 방향을 사진마다 정해 세로 사진을 세로 쪽에 똑바로 넣습니다.
Q. 온라인 변환 사이트를 써도 되나요?
크롬에는 HEIC 디코더가 들어 있지 않아(HEIC 를 JPG 로 바꾸는 글에서 실측), 변환 사이트는 대개 사진을 서버로 올려서 처리합니다. 신분증·서류 사진이라면 PC 안에서 만드는 이 글의 방법이 안전합니다.
Q. 갤럭시 사진도 HEIC 인데 같은 방법이 되나요?
.heic 파일이라면 윈도우에서 다루는 방법은 같습니다. 이 글의 시험 파일은 윈도우에서 만든 HEIC 라, 휴대폰 기종별 파일 구조 차이는 확인하지 않았습니다.
HEIC 로 만든 PDF 가 원본보다 커져 업로드 제한에 걸릴 때 브라우저 안에서 줄입니다. 파일을 서버로 보내지 않고, 정해 둔 크기에 맞추거나 여러 개로 나눌 수 있습니다.
- ✓ 무료
- ✓ 설치·회원가입 없음
- ✓ 브라우저에서 바로 실행
- ✓ 파일이 서버로 올라가지 않음
- ✓ 소스 공개
🔒 파일을 서버나 다른 어떤 곳으로도 보내지 않습니다 — 내 컴퓨터의 브라우저 안에서만 처리합니다.
댓글 0
아직 댓글이 없습니다. 첫 댓글을 남겨 주세요.
댓글은 회원만 쓸 수 있습니다.
광고·욕설·비방·개인정보·불법 내용이 담긴 댓글은 숨기거나 지웁니다. 댓글은 닉네임과 함께 공개됩니다. 개인정보처리방침