FreePDF logoFreePDF

PDF에서 이미지 추출하기(페이지 캡처가 아니라)

FreePDF 팀 작성 ·

거래처가 40쪽짜리 카탈로그를 보내왔는데 필요한 건 제품 사진뿐입니다. 하나씩 캡처하면 해상도를 버리는 셈이고, PDF를 JPG로 변환하면 글자까지 박힌 페이지 통째로 돌아옵니다. 정작 원하는 건 사진 자체, 누군가 내보내기 전에 문서 안으로 끌어다 놓은 그 이미지 파일입니다.

이미지 추출과 페이지 변환은 다른 일

서로 다른 작업인데 도구 이름이 너무 비슷합니다. 무엇이 필요한지부터 분명히 해 둡니다.

  • PDF를 JPG로: 각 페이지를 한 장의 평평한 그림으로 렌더링합니다. 본문도 사진도 쪽번호도 전부 포함되고, 해상도는 지정한 값을 따릅니다.
  • 이미지 추출: 파일 내부로 들어가 삽입된 이미지를 하나씩 별도 파일로 꺼냅니다. 해상도는 저장될 당시 그대로입니다.

중간에 재인코딩은 전혀 하지 않습니다. 레이아웃에서 썸네일만 하게 줄어 있었어도 3000×2000 사진은 3000×2000으로 나옵니다. PDF가 원본 이미지를 통째로 갖고 있고 작게 보여줬을 뿐이기 때문입니다. 페이지에서 보이던 것보다 훨씬 크게 나오는 건 반가운 오산인 경우가 많습니다.

ZIP 안에 담기는 것

다운로드를 60번 누르지 않도록 전부 하나의 ZIP으로 묶어 돌려줍니다. 파일 이름은 나온 페이지와 등장 순서를 따르므로 page7_23_Im4.png는 7쪽의 네 번째 이미지 객체입니다. 폴더를 이름순으로 정렬하면 읽는 순서대로 늘어서서 원문과 맞춰 보기 쉽습니다.

형식은 PDF에 저장돼 있던 그대로, 보통 PNG 아니면 JPG입니다. 예상보다 파일이 많을 수도 있습니다. 페이지 배경, 모든 쪽 머리말에 반복되는 로고, 2픽셀짜리 이미지로 저장된 가는 괘선 같은 것들이죠. 전부 사진이려니 하지 말고 훑어보고 지우면 됩니다.

원하는 그림이 안 나올 때

이 도구가 찾는 건 픽셀로 이뤄진 래스터 이미지뿐입니다. 페이지에서는 그림처럼 보여도 그렇게 저장되지 않은 것들이 있습니다.

  • 벡터로 그린 로고·아이콘·차트. 일러스트레이터에서 내보냈거나 리포팅 도구가 생성한 차트는 이미지가 아니라 그리기 명령의 묶음인 경우가 많습니다. 꺼낼 이미지 객체 자체가 없으니 도구는 하나도 찾지 못했다고 알려줍니다.
  • 띠 모양으로 잘린 사진. 일부 편집 소프트웨어는 PDF를 쓸 때 큰 이미지를 가로 띠로 잘라 넣습니다. 띠는 순서대로 돌아오지만, 다시 붙이는 건 직접 해야 합니다.
  • 레이아웃에서 잘라 쓴 이미지. 자르기는 표시 지시일 뿐이라, 페이지에서 가려져 있던 부분까지 포함한 원본 전체가 돌아옵니다.

첫 번째 경우라면 페이지째 렌더링한 뒤 잘라내는 편이 낫습니다. 원본 해상도는 잃지만, 벡터 차트라면 300 DPI 페이지 렌더링만으로도 슬라이드나 문서에 넣기에 충분히 또렷합니다.

스캔 문서는 사정이 다릅니다

스캐너나 휴대폰 스캔 앱에서 나온 PDF라면 페이지 자체가 커다란 이미지 한 장입니다. 추출하면 딱 그게 나옵니다. 한 쪽에 사진 한 장, 스캔한 해상도 그대로의 스캔본이죠. 누군가 합쳐 놓은 묶음에서 원본 스캔을 되찾고 싶을 때는 정말 유용하고, 페이지에 인쇄된 특정 도판만 떼어내고 싶을 때는 쓸모가 없습니다. 도판이 필요하면 페이지 이미지를 꺼내 잘라 쓰세요.

자주 묻는 질문

추출한 이미지는 PDF 안에 있던 것보다 화질이 떨어지나요?

떨어지지 않습니다. 삽입된 이미지 데이터를 다시 저장하지 않고 그대로 복사해 내오기 때문에 두 번째 압축이 일어나지 않습니다. 문서를 만들 때 이미 72 DPI로 눌려 있던 사진이라면 그 상태로 돌아옵니다. 추출이 화질을 더 나쁘게 만들지는 않지만, PDF에 애초에 없던 디테일을 되살릴 수도 없습니다.

특정 한 쪽의 이미지만 뽑을 수 있나요?

한 번에는 안 되지만 두 단계면 됩니다. 그 페이지만 따로 PDF로 추출한 뒤 거기에 이미지 추출을 돌리면 됩니다. 긴 문서에서는 머리말과 괘선으로 가득한 ZIP을 뒤지는 것보다 대개 더 빠르고, 파일 이름도 깔끔하게 남습니다.

관련 무료 도구