Python을 사용하여 이미지를 PDF로 변환

2023-12-29 07:40:49

이미지를 PDF로 변환하는 것은 시각적 파일을 휴대 가능하고 보편적으로 읽을 수 있는 형식으로 변환하는 편리하고 효율적인 방법입니다. 스캔한 문서, 사진 또는 디지털 이미지로 작업하는 경우 PDF로 변환하면 다양한 이점을 얻을 수 있습니다. 이미지의 원본 품질을 유지하고 다양한 장치 및 운영 체제에서의 호환성을 보장합니다. 또한 이미지를 PDF로 변환하면 공유, 인쇄, 보관이 쉬워 다양한 전문적, 교육적, 개인적 목적을 위한 다용도 솔루션이 됩니다. 이 문서에서는 다음 방법을 보여주는 몇 가지 예를 제공합니다 Python을 사용하여 이미지를 PDF로 변환합니다.

Python용 PDF 변환기 API

Python 애플리케이션에서 이미지 파일을 PDF 형식으로 변환하려는 경우 Spire.PDF for Python가 도움이 될 수 있습니다. 사용자 정의 페이지 설정(크기 및 여백)을 사용하여 PDF 문서를 만들고, 모든 단일 페이지에 하나 이상의 이미지를 추가하고, 최종 문서를 PDF 파일로 저장할 수 있습니다. PNG, JPEG, BMP, GIF 이미지를 포함한 다양한 이미지 형식이 지원됩니다.

이미지를 PDF로 변환하는 것 외에도 이 라이브러리는 높은 품질과 정밀도로 PDF를 Word로, PDF를 Excel로, PDF를 HTML로, PDF를 PDF/A로 변환하는 것을 지원합니다. 고급 Python PDF 라이브러리인 이 라이브러리는 개발자가 다양한 변환 요구 사항을 충족하도록 변환 옵션을 사용자 정의할 수 있는 풍부한 API도 제공합니다.

다음 pip 명령을 실행하여 설치할 수 있습니다.

pip install Spire.PDF

Python에서 이미지를 PDF로 변환하는 단계

  • PdfDocument 클래스를 초기화합니다.
  • FromFile 메서드를 사용하여 경로에서 이미지 파일을 로드합니다.
  • 문서에 지정된 크기의 페이지를 추가합니다.
  • DrawImage 메서드를 사용하여 페이지의 지정된 위치에 이미지를 그립니다.
  • SaveToFile 메서드를 사용하여 문서를 PDF 파일로 저장합니다.

Python에서 이미지를 PDF 문서로 변환

이 코드 예제는 빈 문서를 만들고, 이미지와 동일한 크기의 페이지를 추가하고, 페이지에 이미지를 그리는 방식으로 Spire.PDF for Python 라이브러리를 사용하여 이미지 파일을 PDF 문서로 변환합니다.

  • Python
from spire.pdf.common import *
from spire.pdf import *

# Create a PdfDocument object
doc = PdfDocument()

# Set the page margins to 0
doc.PageSettings.SetMargins(0.0)

# Load a particular image
image = PdfImage.FromFile("C:\\Users\\Administrator\\Desktop\\Images\\img-1.jpg")

# Get the image width and height
width = image.PhysicalDimension.Width
height = image.PhysicalDimension.Height

# Add a page that has the same size as the image
page = doc.Pages.Add(SizeF(width, height))

# Draw image at (0, 0) of the page
page.Canvas.DrawImage(image, 0.0, 0.0, width, height)

# Save to file
doc.SaveToFile("output/ImageToPdf.pdf")
doc.Dispose()

Convert Image to PDF with Python

Python에서 여러 이미지를 PDF 문서로 변환

이 예에서는 Spire.PDF for Python를 사용하여 이미지 모음을 PDF 문서로 변환하는 방법을 보여줍니다. 다음 코드 조각은 지정된 폴더에서 이미지를 읽고, PDF 문서를 만들고, 각 이미지를 PDF의 별도 페이지에 추가하고, 결과 PDF 파일을 저장합니다.

  • Python
from spire.pdf.common import *
from spire.pdf import *
import os

# Create a PdfDocument object
doc = PdfDocument()

# Set the page margins to 0
doc.PageSettings.SetMargins(0.0)

# Get the folder where the images are stored
path = "C:\\Users\\Administrator\\Desktop\\Images\\"
files = os.listdir(path)

# Iterate through the files in the folder
for root, dirs, files in os.walk(path):
    for file in files:

        # Load a particular image
        image = PdfImage.FromFile(os.path.join(root, file))

        # Get the image width and height
        width = image.PhysicalDimension.Width
        height = image.PhysicalDimension.Height

        # Add a page that has the same size as the image
        page = doc.Pages.Add(SizeF(width, height))

        # Draw image at (0, 0) of the page
        page.Canvas.DrawImage(image, 0.0, 0.0, width, height)

# Save to file
doc.SaveToFile('output/ImagesToPdf.pdf')
doc.Dispose()

Convert Image to PDF with Python

Python에서 페이지 여백 사용자 정의하기 여러 이미지에서 PDF 만들기

이 코드 예제는 PDF 문서를 생성하고 이를 지정된 폴더의 이미지로 채우고 페이지 여백을 조정한 후 결과 문서를 파일에 저장합니다.

  • Python
from spire.pdf.common import *
from spire.pdf import *
import os

# Create a PdfDocument object
doc = PdfDocument()

# Set the left, top, right, bottom page margin
doc.PageSettings.SetMargins(30.0, 30.0, 30.0, 30.0)

# Get the folder where the images are stored
path = "C:\\Users\\Administrator\\Desktop\\Images\\"
files = os.listdir(path)

# Iterate through the files in the folder
for root, dirs, files in os.walk(path):
    for file in files:

        # Load a particular image
        image = PdfImage.FromFile(os.path.join(root, file))

        # Get the image width and height
        width = image.PhysicalDimension.Width
        height = image.PhysicalDimension.Height

        # Specify page size
        size = SizeF(width + doc.PageSettings.Margins.Left + doc.PageSettings.Margins.Right, height + doc.PageSettings.Margins.Top+ doc.PageSettings.Margins.Bottom)

        # Add a page with the specified size
        page = doc.Pages.Add(size)

        # Draw image on the page at (0, 0)
        page.Canvas.DrawImage(image, 0.0, 0.0, width, height)

# Save to file
doc.SaveToFile('output/CustomizeMargins.pdf')
doc.Dispose()

Convert Image to PDF with Python

Python에서 페이지당 여러 이미지가 포함된 PDF 만들기

이 코드는 Python에서 Spire.PDF 라이브러리를 사용하여 페이지당 두 개의 이미지가 포함된 PDF 문서를 만드는 방법을 보여줍니다. 이 예의 이미지는 크기가 동일합니다. 이미지 크기가 일정하지 않은 경우 원하는 결과를 얻으려면 코드를 조정해야 합니다.

  • Python
from spire.pdf.common import *
from spire.pdf import *
import os

# Create a PdfDocument object
doc = PdfDocument()

# Set the left, top, right, bottom page margins
doc.PageSettings.SetMargins(15.0, 15.0, 15.0, 15.0)

# Get the folder where the images are stored
path = "C:\\Users\\Administrator\\Desktop\\Images\\"
files = os.listdir(path)

# Iterate through the files in the folder
for root, dirs, files in os.walk(path):

    for i in range(len(files)):

        # Load a particular image
        image = PdfImage.FromFile(os.path.join(root, files[i]))

        # Get the image width and height
        width = image.PhysicalDimension.Width
        height = image.PhysicalDimension.Height

        # Specify page size
        size = SizeF(width + doc.PageSettings.Margins.Left + doc.PageSettings.Margins.Right, height*2 + doc.PageSettings.Margins.Top+ doc.PageSettings.Margins.Bottom + 15.0)

        if i % 2 == 0:

            # Add a page with the specified size
            page = doc.Pages.Add(size)

            # Draw first image on the page at (0, 0)
            page.Canvas.DrawImage(image, 0.0, 0.0, width, height)
        else :

            # Draw second image on the page at (0, height + 15)
            page.Canvas.DrawImage(image, 0.0, height + 15.0, width, height)

# Save to file
doc.SaveToFile('output/SeveralImagesPerPage.pdf')
doc.Dispose()

Convert Image to PDF with Python

결론

이 블로그 게시물에서는 Spire.PDF for python를 사용하여 페이지당 하나 이상의 이미지가 포함된 이미지에서 PDF 문서를 만드는 방법을 살펴보았습니다. 또한 PDF 페이지 크기와 이미지 주변 여백을 사용자 정의하는 방법을 시연했습니다. 더 많은 튜토리얼을 보려면 다음을 확인하세요 온라인 문서. 질문이 있으시면 언제든지 문의해 주세요 이메일 아니면 법정.

또한보십시오