파이썬에서 PDF를 다양한 이미지 형식으로 변환

개요

이 문서에서는 파이썬을 사용하여 PDF를 다양한 이미지 형식으로 변환하는 방법을 설명합니다. 다음 주제를 다룹니다.

이미지 형식: TIFF

이미지 형식: BMP

이미지 형식: EMF

이미지 형식: JPG

이미지 형식: PNG

이미지 형식: GIF

이미지 형식: SVG

Python Convert PDF to Image

Aspose.PDF for Python은(는) 여러 가지 접근 방식을 사용하여 PDF를 이미지로 변환합니다. 일반적으로 두 가지 접근 방식을 사용합니다: Device 접근 방식을 사용하는 변환과 SaveOption을 사용하는 변환입니다. 이 섹션에서는 이러한 접근 방식 중 하나를 사용하여 PDF 문서를 BMP, JPEG, GIF, PNG, EMF, TIFF 및 SVG 형식의 이미지로 변환하는 방법을 보여줍니다.

라이브러리에는 가상 장치를 사용하여 이미지를 변환할 수 있게 하는 여러 클래스가 있습니다. DocumentDevice는 전체 문서 변환에 적합하며, ImageDevice는 특정 페이지에 적합합니다.

DocumentDevice 클래스를 사용하여 PDF 변환

Aspose.PDF for Python은 PDF 페이지를 TIFF 이미지로 변환할 수 있게 합니다.

TiffDevice (DocumentDevice 기반) 클래스는 PDF 페이지를 TIFF 이미지로 변환할 수 있게 합니다. 이 클래스는 PDF 파일의 모든 페이지를 단일 TIFF 이미지로 변환할 수 있는 process라는 메서드를 제공합니다.

PDF 페이지를 하나의 TIFF 이미지로 변환

Aspose.PDF for Python은 PDF 파일의 모든 페이지를 단일 TIFF 이미지로 변환하는 방법을 설명합니다:

단계: Python에서 PDF를 TIFF로 변환

  1. Document 클래스의 객체를 생성합니다.

  2. TiffSettingsTiffDevice 객체를 생성합니다.

  3. PDF 문서를 TIFF로 변환하기 위해 process 메서드를 호출합니다.

  4. 출력 파일의 속성을 설정하려면 TiffSettings 클래스를 사용합니다.

다음 코드 스니펫은 모든 PDF 페이지를 단일 TIFF 이미지로 변환하는 방법을 보여줍니다.


    import aspose.pdf as ap

    input_pdf = DIR_INPUT + "sample.pdf"
    output_pdf = DIR_OUTPUT + "convert_pdf_to_tiff.tiff"
    # PDF 문서 열기
    document = ap.Document(input_pdf)

    # 해상도 객체 생성
    resolution = ap.devices.Resolution(300)

    # TiffSettings 객체 생성
    tiffSettings = ap.devices.TiffSettings()
    tiffSettings.compression = ap.devices.CompressionType.LZW
    tiffSettings.depth = ap.devices.ColorDepth.DEFAULT
    tiffSettings.skip_blank_pages = False

    # TIFF 장치 생성
    tiffDevice = ap.devices.TiffDevice(resolution, tiffSettings)

    # 특정 페이지를 변환하고 이미지를 스트림에 저장
    tiffDevice.process(document, output_pdf)

ImageDevice 클래스 사용하여 PDF 변환

ImageDeviceBmpDevice, JpegDevice, GifDevice, PngDeviceEmfDevice의 조상입니다.

  • BmpDevice 클래스는 PDF 페이지를 BMP 이미지로 변환할 수 있습니다.

  • EmfDevice 클래스는 PDF 페이지를 EMF 이미지로 변환할 수 있습니다.

  • JpegDevice 클래스는 PDF 페이지를 JPEG 이미지로 변환할 수 있습니다.

  • PngDevice 클래스는 PDF 페이지를 PNG 이미지로 변환할 수 있습니다.

  • GifDevice 클래스는 PDF 페이지를 GIF 이미지로 변환할 수 있습니다.

문서의 PDF 페이지를 이미지로 변환하는 방법을 살펴보겠습니다.

BmpDevice 클래스는 PDF 파일의 특정 페이지를 BMP 이미지 형식으로 변환할 수 있는 process라는 메소드를 제공합니다. 다른 클래스도 동일한 메소드를 가지고 있습니다. 따라서 PDF 페이지를 이미지로 변환해야 할 경우, 필요한 클래스를 인스턴스화하면 됩니다.

다음 단계 및 Python 코드 스니펫은 이러한 가능성을 보여줍니다.

단계: Python에서 PDF를 이미지(BMP, EMF, JPG, PNG, GIF)로 변환

  1. Document 클래스를 사용하여 PDF 파일을 로드합니다.
  2. ImageDevice의 서브클래스의 인스턴스를 생성합니다. 즉,
    • BmpDevice (PDF를 BMP로 변환하기 위해)
    • EmfDevice (PDF를 Emf로 변환하기 위해)
    • JpegDevice (PDF를 JPG로 변환하기 위해)
    • PngDevice (PDF를 PNG로 변환하기 위해)
    • GifDevice (PDF를 GIF로 변환하기 위해)
  3. PDF를 이미지로 변환하기 위해 ImageDevice.Process() 메서드를 호출합니다.

PDF를 BMP로 변환하기


    import aspose.pdf as ap

    input_pdf = DIR_INPUT + "many_pages.pdf"
    output_pdf = DIR_OUTPUT + "convert_pdf_to_bmp"
    # PDF 문서 열기
    document = ap.Document(input_pdf)

    # 해상도 객체 생성
    resolution = ap.devices.Resolution(300)
    device = ap.devices.BmpDevice(resolution)

    for i in range(0, len(document.pages)):
        # 저장할 파일 생성
        imageStream = io.FileIO(
            output_pdf + "_page_" + str(i + 1) + "_out.bmp", 'x'
        )
        # 특정 페이지를 변환하고 이미지를 스트림에 저장
        device.process(document.pages[i + 1], imageStream)
        imageStream.close()

PDF를 EMF로 변환


    import aspose.pdf as ap

    input_pdf = DIR_INPUT + "sample.pdf"
    output_pdf = DIR_OUTPUT + "convert_pdf_to_emf"
    # PDF 문서 열기
    document = ap.Document(input_pdf)

    # 해상도 객체 생성
    resolution = ap.devices.Resolution(300)
    device = ap.devices.EmfDevice(resolution)

    for i in range(0, len(document.pages)):
        # 저장할 파일 생성
        imageStream = io.FileIO(
            output_pdf + "_page_" + str(i + 1) + "_out.emf", 'x'
        )
        # 특정 페이지를 변환하고 이미지를 스트림에 저장
        device.process(document.pages[i + 1], imageStream)
        imageStream.close()

PDF를 JPEG로 변환


    import aspose.pdf as ap

    input_pdf = DIR_INPUT + "many_pages.pdf"
    output_pdf = DIR_OUTPUT + "convert_pdf_to_jpeg"
    # PDF 문서 열기
    document = ap.Document(input_pdf)

    # 해상도 객체 생성
    resolution = ap.devices.Resolution(300)
    device = ap.devices.JpegDevice(resolution)

    for i in range(0, len(document.pages)):
        # 저장할 파일 생성
        imageStream = io.FileIO(
            output_pdf + "_page_" + str(i + 1) + "_out.jpeg", "x"
        )
        # 특정 페이지를 변환하고 이미지를 스트림에 저장
        device.process(document.pages[i + 1], imageStream)
        imageStream.close()  

PDF를 PNG로 변환


    import aspose.pdf as ap

    input_pdf = DIR_INPUT + "sample.pdf"
    output_pdf = DIR_OUTPUT + "convert_pdf_to_png"
    # PDF 문서 열기
    document = ap.Document(input_pdf)

    # 해상도 객체 생성
    resolution = ap.devices.Resolution(300)
    device = ap.devices.PngDevice(resolution)

    for i in range(0, len(document.pages)):
        # 저장할 파일 생성
        imageStream = io.FileIO(
            output_pdf + "_page_" + str(i + 1) + "_out.png", 'x'
        )
        # 특정 페이지를 변환하여 이미지를 스트림에 저장
        device.process(document.pages[i + 1], imageStream)
        imageStream.close()

PDF를 GIF로 변환


    import aspose.pdf as ap

    input_pdf = DIR_INPUT + "many_pages.pdf"
    output_pdf = DIR_OUTPUT + "convert_pdf_to_gif"
    # PDF 문서 열기
    document = ap.Document(input_pdf)

    # 해상도 객체 생성
    resolution = ap.devices.Resolution(300)

    device = ap.devices.GifDevice(resolution)

    for i in range(0, len(document.pages)):
        # 저장할 파일 생성
        imageStream = io.FileIO(
            output_pdf + "_page_" + str(i + 1) + "_out.gif", 'x'
        )
        # 특정 페이지를 변환하여 이미지를 스트림에 저장
        device.process(document.pages[i + 1], imageStream)
        # 스트림 닫기
        imageStream.close()  

SaveOptions 클래스를 사용하여 PDF 변환

이 기사 부분에서는 Python과 SaveOptions 클래스를 사용하여 PDF를 SVG로 변환하는 방법을 보여줍니다.

**Scalable Vector Graphics (SVG)**는 2차원 벡터 그래픽을 위한 XML 기반 파일 형식의 사양으로, 정적 및 동적(대화형 또는 애니메이션) 그래픽을 포함하는 사양군입니다. SVG 사양은 1999년부터 월드 와이드 웹 컨소시엄(W3C)에 의해 개발되고 있는 개방형 표준입니다.

SVG 이미지와 그 동작은 XML 텍스트 파일에서 정의됩니다. 이는 검색, 인덱싱, 스크립팅이 가능하며 필요에 따라 압축될 수도 있음을 의미합니다. XML 파일로서 SVG 이미지는 모든 텍스트 편집기로 생성 및 편집할 수 있지만, 일반적으로 Inkscape와 같은 드로잉 프로그램으로 생성하는 것이 더 편리합니다.

Aspose.PDF for Python은 SVG 이미지를 PDF 형식으로 변환하는 기능을 지원하며, PDF 파일을 SVG 형식으로 변환하는 기능도 제공합니다. 이 요구 사항을 충족하기 위해 SvgSaveOptions 클래스가 Aspose.PDF 네임스페이스에 도입되었습니다. SvgSaveOptions 객체를 인스턴스화하고 Document.Save() 메서드의 두 번째 인수로 전달합니다.

다음 코드 스니펫은 Python으로 PDF 파일을 SVG 형식으로 변환하는 단계를 보여줍니다.

단계: Python에서 PDF를 SVG로 변환

  1. Document 클래스의 객체를 생성합니다.
  2. 필요한 설정으로 SvgSaveOptions 객체를 생성합니다.
  3. Document.Save() 메서드를 호출하고 SvgSaveOptions 객체를 전달하여 PDF 문서를 SVG로 변환합니다.

PDF를 SVG로 변환


    import aspose.pdf as ap

    input_pdf = DIR_INPUT + "sample.pdf"
    output_pdf = DIR_OUTPUT + "convert_pdf_to_svg.svg"
    # PDF 문서 열기
    document = ap.Document(input_pdf)

    # SvgSaveOptions 객체 인스턴스화
    saveOptions = ap.SvgSaveOptions()

    # SVG 이미지를 Zip 아카이브로 압축하지 않음
    saveOptions.compress_output_to_zip_archive = False
    saveOptions.treat_target_file_name_as_directory = True

    # 출력 결과를 SVG 파일로 저장
    document.save(output_pdf, saveOptions)