이미지 파일을 PDF 파일로 변환하는 과정은 간단하고 유용합니다. 파이썬에서는 img2pdf라는 라이브러리를 사용하여 이 작업을 쉽게 수행할 수 있습니다. 이 글에서는 img2pdf 라이브러리의 설치 방법과 사용법을 자세히 소개하겠습니다.
img2pdf 라이브러리 설치
설치 방법
img2pdf는 파이썬 3.x 이상에서만 지원되므로, 해당 버전을 확인한 후 설치해야 합니다. 설치는 아래의 명령어를 통해 할 수 있습니다.
bash
$ pip install img2pdf
이미지 파일 경로 설정
파일을 변환하기 위해서는 이미지 파일의 경로를 알고 있어야 합니다. 이를 위해 파이썬의 기본 라이브러리인 os를 활용할 수 있습니다.
파일 경로 및 디렉터리 경로 반환
os.path.realpath(__file__): 현재 코드가 저장된 파일의 절대 경로를 반환합니다.os.path.dirname(): 주어진 파일의 경로를 인자로 받아 해당 파일이 속한 디렉터리의 경로를 반환합니다.os.listdir(): 지정한 디렉터리 내의 모든 파일과 디렉터리를 리스트로 반환합니다.
예제 코드
아래의 코드를 사용하여 이미지 파일을 PDF로 변환하는 과정을 살펴보겠습니다.
“`python
import os
from img2pdf import convert
출력 경로 설정
outpath1 = “C:\Users\IML\Desktop”
outpath2 = os.path.dirname(os.path.realpath(file))
outpath3 = os.path.dirname(os.path.realpath(‘file‘))
with open(“out.pdf”, “wb”) as f:
pdf_list = []
for file in os.listdir(outpath3):
if file.endswith(".jpg"):
pdf_list.append(file)
pdf = convert(pdf_list)
f.write(pdf)
“`
위 예제 코드에서 out.pdf 파일이 생성되는 경로는 outpath1, outpath2, outpath3 모두 동일한 디렉터리입니다. 사용자가 지정한 경로 또는 현재 파일의 경로를 통해 파일을 찾을 수 있습니다.
주의사항
파이썬 인터프리터에서 실행할 때는 문제가 없지만, Windows 애플리케이션으로 포팅할 경우 global name '__file__' is not defined라는 에러가 발생할 수 있습니다. 이는 포팅된 Windows의 .exe 파일이 파이썬의 글로벌 변수에 접근할 수 없기 때문입니다. 이 문제를 해결하기 위해서는 sys.argv[0] 또는 os.getcwd() 메소드를 사용하여 현재 소스 코드 파일이 속한 디렉터리 경로를 구할 수 있습니다.
실전 활용법
- 라이브러리 설치:
pip install img2pdf명령어로 설치합니다. - 파일 경로 확인:
os라이브러리를 활용해 파일 경로와 디렉터리를 설정합니다. - PDF 변환 코드 작성: 위의 예제 코드를 참고하여 변환 코드를 작성합니다.
- 파일 실행 및 확인: 코드 실행 후, 지정한 경로에 PDF 파일이 생성되었는지 확인합니다.
자주 묻는 질문
이미지 파일을 여러 개 변환할 수 있나요?
네, os.listdir()를 사용하여 특정 폴더 내의 모든 이미지 파일을 리스트에 추가한 후 변환할 수 있습니다.
PDF 파일의 출력 경로는 어떻게 설정하나요?
출력 경로는 open() 함수에서 지정할 수 있으며, 원하는 경로를 문자열로 입력하면 됩니다.
Windows 애플리케이션으로 포팅 시 주의할 점은?
포팅 시 __file__ 변수를 사용할 수 없으므로, 대신 sys.argv[0] 또는 os.getcwd()를 사용하여 경로를 구해야 합니다.