Python 프로그램으로 PDF에서 이미지 추출하기
간혹 이미지가 포함된 PDF 문서를 받을 때가 있습니다. 그 안에 있는 이미지를 더 조작하고 싶다면 어떻게 해야 할까요? 이미지를 추출하여 폴더에 저장하는 것은 좋은 선택입니다. 소량의 문서를 처리할 때는 Adobe Acrobat과 같은 도구를 사용하여 추출할 수 있습니다. 그러나 대량의 처리가 필요한 경우 프로그래밍을 사용하여 빠르게 추출하는 것이 좋습니다. 아래는 파이썬 코드를 예로 들어 그 방법을 소개한다.
프로그램 라이브러리
이 글에서는 Spire.PDF for Python과 Visual Studio Code를 사용하겠습니다. 이 라이브러리는 Python 플랫폼에서 PDF 문서 편집 및 변환을 지원합니다. 또한 이 프로세스를 사용하기 위해 타사 소프트웨어를 설치할 필요가 없습니다.
주소 다운로드: Spire.PDF for Python
설치 방법
' Python '을 다운로드하여 설치한 후 VS Code에서 ' Extensions '을 클릭하고 ' Python '을 검색하여 설치합니다.
' Explorer ' - ' NO FOLRDER OPENED ' - ' Open Folder '
폴더를 선택하고 '.py' 파일을 추가합니다.
' Terminal ' - ' New Terminal '
다음 명령을 입력하여 Spire.PDF for Python 및 plum-dispatch v1.7.4를 설치합니다.
pip install Spire.PDF코드 예제
from spire.pdf import *
from spire.pdf.common import *
#PdfDocument 클래스의 인스턴스 생성
pdf = PdfDocument()
#PDF 문서 로드
pdf.LoadFromFile("Sample.pdf")
#이미지를 저장할 리스트 생성
images = []
#문서의 각 페이지를 반복
for i in range(pdf.Pages.Count):
#페이지 가져오기
page = pdf.Pages.get_Item(i)
#페이지에서 이미지 추출하여 생성한 리스트에 저장
for img in page.ExtractImages():
images.append(img)
#리스트에 있는 이미지를 PNG 파일로 저장
i = 0
for image in images:
i += 1
image.Save("output/Images/Image-{0:d}.png".format(i), ImageFormat.get_Png())
pdf.Close()위 코드에서 먼저 PdfDocument 클래스의 객체를 생성하고 사용해야 하는 PDF 문서를 로드합니다. 그런 다음 문서의 모든 페이지를 순회하고 PdfPageBase.ExtractImages() 메서드를 호출하여 페이지에서 이미지를 추출하고 목록에 저장된 페이지에서 이미지를 추출합니다. 마지막으로 이러한 이미지를 지정된 형식으로 저장합니다.
