Python으로 PDF 파일 만들기

2024-01-09 08:07:21

PDF(Portable Document Format)는 법률 문서, 계약서, 보고서, 송장, 매뉴얼, 전자책 등을 생성하는 데 널리 사용되는 파일 형식입니다. 이는 모든 소프트웨어, 하드웨어 또는 운영 체제에 관계없이 일관된 방식으로 전자 문서를 공유, 저장 및 표시할 수 있는 다양하고 안정적인 형식을 제공합니다.

이러한 장점을 고려할 때 PDF 문서의 자동화된 생성은 다양한 분야에서 점점 더 중요해지고 있습니다. Python에서 PDF 생성 프로세스를 자동화하려면 특정 요구 사항이나 입력 데이터를 기반으로 PDF를 생성하는 스크립트를 작성할 수 있습니다. 이 문서에서는 사용 방법을 보여주는 자세한 예제를 제공합니다 PDF 파일을 생성하는 Python 프로그래밍 방식으로.

Python PDF 생성기 라이브러리

Python을 사용하여 PDF를 생성하려면 Spire.PDF for Python 라이브러리를 사용해야 합니다. PDF 생성 및 처리 기능을 제공하는 강력한 Python 라이브러리입니다. 이를 통해 Python을 사용하여 처음부터 PDF를 만들고 PDF 페이지에 다양한 PDF 요소를 추가할 수 있습니다.

Python PDF 생성기 라이브러리를 설치하려면 다음 pip 명령을 사용하여 PyPI에서 설치하면 됩니다.

pip install Spire.PDF

배경 지식

시작하기 전에 라이브러리 Spire.PDF for Python를 사용하여 PDF 파일을 만드는 방법에 대한 몇 가지 배경 지식을 살펴보겠습니다.

PDF 페이지: Spire.PDF for Python의 페이지는 클라이언트 영역과 주변 여백으로 구성된 PdfPageBase 클래스로 표시됩니다. 컨텐츠 영역은 사용자가 다양한 컨텐츠를 작성하기 위한 영역으로, 여백은 대개 빈 가장자리입니다.

좌표계: 아래 그림과 같이 페이지의 좌표계 원점은 클라이언트 영역의 왼쪽 상단에 위치하며, x축은 오른쪽으로 수평으로 확장되고 y축은 수직으로 아래로 확장됩니다. 클라이언트 영역에 추가된 모든 요소는 지정된 X 및 Y 좌표를 기반으로 합니다.

Create PDF Files with Python

클래스 및 메서드: 다음 표에는 Python에서 PDF를 만드는 데 사용되는 일부 핵심 클래스 및 메서드가 나열되어 있습니다.

회원 설명
PdfDocument 클래스 PDF 문서 모델을 나타냅니다.
PdfPageBase 클래스 PDF 문서의 페이지를 나타냅니다.
PdfSolidBrush 클래스 모든 개체를 단색으로 채우는 브러시를 나타냅니다.
PdfTrueTypeFont 클래스 트루타입 글꼴을 나타냅니다.
PdfStringFormat 클래스 정렬, 문자 간격, 들여쓰기 등의 텍스트 형식 정보를 나타냅니다.
PdfTextWidget 클래스 여러 페이지에 걸쳐 표시할 수 있는 텍스트 영역을 나타냅니다.
PdfTextLayout 클래스 텍스트 레이아웃 정보를 나타냅니다.
PdfDocument.Pages.Add() 메서드 PDF 문서에 페이지를 추가합니다.
PdfPageBase.Canvas.DrawString() 메서드 지정된 글꼴 및 브러시 개체를 사용하여 페이지의 지정된 위치에 문자열을 그립니다.
PdfPageBase.Canvas.DrawImage() 메서드 페이지의 지정된 위치에 이미지를 그립니다.
PdfTextWidget.Draw() 메서드 페이지의 지정된 위치에 텍스트 위젯을 그립니다.
PdfDocument.SaveToFile() 메서드 문서를 PDF 파일로 저장합니다.

Python을 사용하여 PDF를 만드는 방법

다음은 Python에서 PDF 파일을 생성하는 주요 단계입니다.

  • Spire.PDF for Python 설치합니다..
  • 모듈을 가져옵니다.
  • PdfDocument 클래스를 통해 PDF 문서를 만듭니다.
  • PdfDocument.Pages.Add() 메서드를 사용하여 PDF에 페이지를 추가하고 PdfPageBase 클래스의 개체를 반환합니다.
  • 원하는 PDF 브러시와 글꼴을 만듭니다.
  • PdfPageBase.Canvas.DrawString() 또는 PdfTextWidget.Draw() 메서드를 사용하여 PDF 페이지의 지정된 좌표에 텍스트 문자열이나 텍스트 위젯을 그립니다.
  • PdfDocument.SaveToFile() 메서드를 사용하여 PDF 문서를 저장합니다.

Python을 사용하여 처음부터 PDF 파일 만들기

다음 코드 예제에서는 Python을 사용하여 PDF 파일을 만들고 텍스트와 이미지를 삽입하는 방법을 보여줍니다. Spire.PDF for Python를 사용하면 다음과 같은 다른 PDF 요소를 삽입할 수도 있습니다 목록, 하이퍼링크, 양식스탬프.

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

# Create a pdf document
pdf = PdfDocument()

# Add a page to the PDF
page = pdf.Pages.Add()

# Specify title text and paragraph content
titleText = "Spire.PDF for Python"
paraText = "Spire.PDF for Python is a professional PDF development component that enables developers to create, read, edit, convert, and save PDF files in Python programs without depending on any external applications or libraries. This Python PDF class library provides developers with various functions to create PDF files from scratch or process existing PDF documents completely through Python programs."

# Create solid brushes
titleBrush = PdfSolidBrush(PdfRGBColor(Color.get_Blue()))
paraBrush = PdfSolidBrush(PdfRGBColor(Color.get_Black()))

# Create fonts
titleFont = PdfFont(PdfFontFamily.Helvetica, 14.0, PdfFontStyle.Bold)
paraFont = PdfTrueTypeFont("Arial", 12.0, PdfFontStyle.Regular, True)

# Set the text alignment
textAlignment = PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle)

# Draw title on the page
page.Canvas.DrawString(titleText, titleFont, titleBrush, page.Canvas.ClientSize.Width / 2, 40.0, textAlignment)

# Create a PdfTextWidget object to hold the paragraph content
textWidget = PdfTextWidget(paraText, paraFont, paraBrush)

# Create a rectangle where the paragraph content will be placed
rect = RectangleF(PointF(0.0, 50.0), page.Canvas.ClientSize)

# Set the text layout
textLayout = PdfTextLayout()
textLayout.Layout = PdfLayoutType.Paginate

# Draw the widget on the page
textWidget.Draw(page, rect, textLayout)

# Load an image
image = PdfImage.FromFile("Python.png")

# Draw the image at a specified location on the page
page.Canvas.DrawImage(image, 12.0, 130.0)

#Save the PDF document
pdf.SaveToFile("CreatePDF.pdf")
pdf.Close()

Create PDF Files with Python

텍스트 파일에서 PDF를 생성하는 Python

다음 코드 예제에서는 .txt 파일에서 텍스트를 읽고 PDF 페이지의 지정된 위치에 그리는 프로세스를 보여줍니다.

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

def ReadFromTxt(fname: str) -> str:
    with open(fname, 'r') as f:
        text = f.read()
    return text

# Create a pdf document
pdf = PdfDocument()

# Add a page to the PDF
page = pdf.Pages.Add(PdfPageSize.A4(), PdfMargins(20.0, 20.0))

# Create a PdfFont and brush
font = PdfFont(PdfFontFamily.TimesRoman, 12.0)
brush = PdfBrushes.get_Black()

# Get content from a .txt file
text = ReadFromTxt("text.txt")

# Create a PdfTextWidget object to hold the text content
textWidget = PdfTextWidget(text, font, brush)

# Create a rectangle where the text content will be placed
rect = RectangleF(PointF(0.0, 50.0), page.Canvas.ClientSize)

# Set the text layout
textLayout = PdfTextLayout()
textLayout.Layout = PdfLayoutType.Paginate

# Draw the widget on the page
textWidget.Draw(page, rect, textLayout)

# Save the generated PDF file
pdf.SaveToFile("GeneratePdfFromText.pdf", FileFormat.PDF)
pdf.Close()

Create PDF Files with Python

다중 열 PDF를 만드는 Python

다중 열 PDF는 일반적으로 잡지나 신문에서 사용됩니다. 다음 코드 예제에서는 PDF 페이지의 두 개의 별도 직사각형 영역에 텍스트를 그려서 두 열로 구성된 PDF를 만드는 과정을 보여줍니다.

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

# Creates a PDF document
pdf = PdfDocument()

# Add a page to the PDF
page = pdf.Pages.Add()

# Define paragraph text
s1 = "Databases allow access to various services which, in turn, allow you to access your accounts and perform transactions all across the internet. " + "For example, your bank's login page will ping a database to figure out if you've entered the right password and username. " + "Your favorite online shop pings your credit card's database to pull down the funds needed to buy that item you've been eyeing."
s2 = "Databases make research and data analysis much easier because they are highly structured storage areas of data and information. " + "This means businesses and organizations can easily analyze databases once they know how a database is structured. " + "Common structures and common database querying languages (e.g., SQL) make database analysis easy and efficient."

# Get width and height of page
pageWidth = page.GetClientSize().Width
pageHeight = page.GetClientSize().Height

# Create a PDF font and brush
font = PdfFont(PdfFontFamily.TimesRoman, 12.0)
brush = PdfBrushes.get_Black()

# Set the text alignment
format = PdfStringFormat(PdfTextAlignment.Left)

# Draws text at a specified location on the page
page.Canvas.DrawString(s1, font, brush, RectangleF(10.0, 20.0, pageWidth / 2 - 8, pageHeight), format)
page.Canvas.DrawString(s2, font, brush, RectangleF(pageWidth / 2 + 8, 20.0, pageWidth / 2 - 8, pageHeight), format)

# Save the PDF document
pdf.SaveToFile("CreateTwoColumnPDF.pdf")
pdf.Close()

Create PDF Files with Python

Python에서 PDF를 생성하기 위한 무료 라이센스

당신은 할 수 있습니다 무료 임시 라이센스를 받으세요Spire.PDF for Python를 사용하면 워터마크나 제한 없이 PDF 문서를 생성할 수 있습니다.

결론

이 블로그 게시물은 라이브러리 Spire.PDF for Python에 정의된 좌표계를 기반으로 PDF 파일을 생성하는 방법에 대한 단계별 가이드를 제공했습니다. 코드 샘플에서는 텍스트, 이미지를 PDF에 삽입하고 TXT 파일을 PDF로 변환하는 프로세스와 방법에 대해 알아볼 수 있습니다. Python PDF 라이브러리의 다른 PDF 처리 및 변환 기능을 살펴보고 싶다면 다음을 확인하세요 온라인 문서.

사용 중 문제가 발생하면 다음을 통해 기술 지원팀에 문의하세요 이메일 이나 포럼.

또한보십시오