분산된 이미지 컬렉션을 단일 검색 가능한 PDF 로 변환하는 것은 보고 도구, 청구서 생성기 및 보관 시스템에서 자주 요구되는 작업입니다. Aspose.PDF for Python via .NET 은 파이썬 애플리케이션에서 이 변환을 빠르고 안정적으로 수행할 수 있게 해주는 강력한 SDK입니다. 이 가이드는 SDK 설치, Python Imaging Library를 사용한 이미지 로드, 페이지별 PDF 빌드, 압축 설정 조정, 그리고 최종 결과 저장까지를 명확한 코드 예제와 함께 단계별로 안내합니다.

시작하기 전에: 사전 요구 사항 및 설치

이 튜토리얼을 따라하려면 다음이 필요합니다:

  • 개발 머신에 설치된 Python 3.8 이상.
  • 선택한 IDE 또는 편집기(VS Code, PyCharm 등).
  • SDK 패키지를 다운로드하기 위한 인터넷 액세스.

pip를 사용하여 Aspose.PDF SDK와 Pillow 라이브러리(사실상 표준 Python Imaging Library)를 설치합니다:

pip install aspose-pdf pillow

공식 릴리스 페이지에서 SDK를 수동으로 다운로드할 수도 있습니다: Aspose.PDF for Python via .NET Download. 설치 후, 스크립트에서 필요한 네임스페이스를 가져옵니다.

환경이 준비되었으니 구현으로 들어가 보겠습니다.

Python에서 이미지로 PDF 생성: 단계별 안내

1단계: 원본 이미지 로드

먼저, Pillow를 사용하여 각 이미지 파일을 열고 리스트에 보관합니다. 이렇게 하면 PDF 빌더를 위한 이미지 데이터가 준비됩니다.

from PIL import Image
import os

image_folder = "input_images"
image_paths = [os.path.join(image_folder, f) for f in os.listdir(image_folder)
               if f.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif'))]

images = [Image.open(p) for p in image_paths]

2단계: 새 PDF 문서 만들기

페이지를 보관할 Aspose.PDF Document 객체를 인스턴스화합니다.

import aspose.pdf as ap

pdf_doc = ap.Document()

Document 클래스에 대한 자세한 내용은 API 참조를 확인하십시오.

3단계: 각 이미지를 별도의 페이지로 추가

로드된 이미지를 반복하고, 페이지를 생성한 다음 이미지를 삽입합니다. SDK는 이미지가 페이지 크기에 맞도록 자동으로 스케일링합니다.

for img in images:
    page = pdf_doc.pages.add()
    # Convert Pillow image to a byte stream compatible with Aspose.PDF
    with io.BytesIO() as img_stream:
        img.save(img_stream, format='PNG')
        img_stream.seek(0)
        page.resources.images.add(ap.Image(img_stream))
        # Fit the image to the page dimensions
        page.page_info.width = img.width
        page.page_info.height = img.height

4단계: 압축 옵션 구성

이미지 압축 수준을 조정하여 품질을 손상시키지 않으면서 최종 PDF 크기를 줄이세요.

# Set JPEG compression for all images (if using JPEG format)
for img_res in pdf_doc.resources.images:
    img_res.compression = ap.ImageCompression.JPEG
    img_res.jpeg_quality = 80  # Quality range: 0‑100

5단계: PDF 파일 저장

마지막으로, 조립된 문서를 디스크에 씁니다.

output_path = "output/result.pdf"
pdf_doc.save(output_path)
print(f"PDF generated successfully at {output_path}")

이 단계들을 통해, Python에서 이미지를 PDF로 생성하는 완전한 워크플로우를 갖게 됩니다.

Python에서 이미지 컬렉션으로 PDF 만들기 - 전체 코드 예제

다음 스크립트는 모든 조각을 하나의 실행 가능한 프로그램으로 결합합니다.

import os
import io
from PIL import Image
import aspose.pdf as ap

# -------------------- Configuration --------------------
image_folder = "input_images"          # Folder containing source images
output_pdf = "output/result.pdf"       # Destination PDF file
jpeg_quality = 80                      # Compression quality (0‑100)

# -------------------- Load Images --------------------
image_paths = [os.path.join(image_folder, f) for f in os.listdir(image_folder)
               if f.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif'))]

images = [Image.open(p) for p in image_paths]

# -------------------- Create PDF Document --------------------
pdf_doc = ap.Document()

for img in images:
    page = pdf_doc.pages.add()
    with io.BytesIO() as img_stream:
        img.save(img_stream, format='PNG')
        img_stream.seek(0)
        pdf_image = page.resources.images.add(ap.Image(img_stream))
        page.page_info.width = img.width
        page.page_info.height = img.height
        # Apply compression if the original is JPEG
        if img.format == 'JPEG':
            pdf_image.compression = ap.ImageCompression.JPEG
            pdf_image.jpeg_quality = jpeg_quality

# -------------------- Save PDF --------------------
pdf_doc.save(output_pdf)
print(f"PDF generated successfully at {output_pdf}")

Note: 이 코드 예제는 핵심 기능을 보여줍니다. 프로젝트에 사용하기 전에 파일 경로(input_images, output/result.pdf)를 업데이트하고, 모든 필수 종속성이 올바르게 설치되었는지 확인한 뒤, 개발 환경에서 충분히 테스트하십시오. 문제가 발생하면 공식 문서를 참조하거나 지원 팀에 문의하십시오.

고급 PDF 생성 설정: 옵션 및 구성

기본 워크플로우를 넘어, Aspose.PDF는 출력물을 미세 조정할 수 있는 여러 속성을 제공합니다.

이미지 압축 수준

품질과 파일 크기 사이의 트레이드오프를 제어합니다.

pdf_image.compression = ap.ImageCompression.JPEG
pdf_image.jpeg_quality = 70   # Lower value = smaller file, lower quality

페이지 크기 및 여백

균일한 레이아웃이 필요하면 사용자 지정 페이지 크기를 설정하십시오.

page.page_info.width = 595   # A4 width in points
page.page_info.height = 842  # A4 height in points
page.page_info.margin = ap.MarginInfo(10, 10, 10, 10)

해상도 (DPI)

높은 DPI는 더 큰 PDF를 대가로 더 선명한 이미지를 제공합니다.

pdf_doc.page_info.dpi = 300

구성 가능한 속성의 전체 목록은 API 참조를 참조하십시오.

결론

이제 Aspose.PDF for Python via .NET를 사용하여 Python에서 이미지를 PDF로 생성하는 완전한 프로그래밍 솔루션을 갖게 되었습니다. SDK는 이미지 로드, 페이지 생성, 압축 및 저장을 몇 줄의 코드만으로 처리하므로 저수준 PDF 처리를 신경 쓰지 않고 비즈니스 로직에 집중할 수 있습니다. 프로덕션으로 전환할 때는 적절한 라이선스를 획득해야 하며, 자세한 내용은 가격 페이지에서 확인할 수 있고 평가용으로 임시 라이선스를 시작할 수 있습니다. 즐거운 코딩 되시고, 이미지 컬렉션을 깔끔한 PDF로 변환하는 간편함을 만끽하세요!

FAQs

  • Python에서 Aspose.PDF를 사용하여 이미지를 PDF로 생성하려면 어떻게 해야 하나요?
    Aspose.PDF SDK를 사용하여 Document를 만들고, Pillow로 로드한 각 이미지마다 페이지를 추가하며, 필요에 따라 압축을 설정하고 save()를 호출하여 PDF를 저장합니다. 전체 예제는 위에 포함되어 있습니다.

  • PDF 생성을 위해 지원되는 이미지 형식은 무엇인가요?
    SDK는 PNG, JPG, JPEG, BMP, GIF, 및 TIFF를 직접 지원합니다. Pillow는 지원되지 않는 형식을 PDF에 추가하기 전에 이러한 형식 중 하나로 변환할 수도 있습니다.

  • 상업적 사용을 위해 라이선스가 필요합니까?
    예. 임시 평가 라이선스는 임시 라이선스 페이지에서 얻고, 생산 배포를 위해 가격 페이지를 통해 전체 라이선스를 구매하십시오.

  • PDF 페이지 크기와 해상도를 조정할 수 있나요?
    물론입니다. page.page_info.width, page.page_info.height, 및 pdf_doc.page_info.dpi를 사용하여 차원과 DPI를 제어할 수 있습니다. Configuration / Options 섹션에 표시된 대로.

자세히 보기