Категория

Создание PDF-файлов с помощью Python

2024-01-09 08:10:44

PDF (Portable Document Format) — популярный формат файлов, широко используемый для создания юридических документов, контрактов, отчетов, счетов-фактур, руководств, электронных книг и многого другого. Он обеспечивает универсальный и надежный формат для единообразного обмена, хранения и представления электронных документов, независимо от какого-либо программного обеспечения, оборудования или операционных систем.

Учитывая эти преимущества, автоматизированное создание PDF-документов становится все более важным в различных областях. Чтобы автоматизировать процесс создания PDF-файлов на Python, вы можете написать сценарии, генерирующие PDF-файлы на основе определенных требований или входных данных. В этой статье будут приведены подробные примеры, демонстрирующие, как использовать Python для создания PDF-файлов программно.

Библиотека PDF-генератора Python

Чтобы создать PDF-файл с помощью Python, нам понадобится библиотека Spire.PDF for Python. Это мощная библиотека Python, обеспечивающая возможности создания и обработки PDF-файлов. С его помощью мы можем использовать Python для создания PDF-файлов с нуля и добавления различных элементов PDF на страницы PDF.

Чтобы установить библиотеку генератора PDF Python, просто используйте следующую команду pip для установки из PyPI:

pip install Spire.PDF

Жизненный опыт

Прежде чем мы начнем, давайте изучим некоторые сведения о создании PDF-файла с использованием библиотеки Spire.PDF for Python.

Страница PDF: страница в Spire.PDF for Python представлена классом PdfPageBase, который состоит из клиентской области и полей вокруг. Область содержимого предназначена для того, чтобы пользователи могли писать различное содержимое, а поля обычно представляют собой пустые края.

Система координат: Как показано на рисунке ниже, начало системы координат на странице расположено в верхнем левом углу клиентской области, при этом ось X проходит горизонтально вправо, а ось Y — вертикально вниз. Все элементы, добавляемые в клиентскую область, основаны на указанных координатах X и Y.

Create PDF Files with Python

Классы и методы: В следующей таблице перечислены некоторые основные классы и методы, используемые для создания PDF-файлов в Python.

Член Описание
Класс PDFDocument Представляет модель документа PDF.
Класс PDFPageBase Представляет страницу в PDF-документе.
Класс PdfSolidBrush Представляет кисть, которая закрашивает любой объект сплошным цветом.
Класс PdfTrueTypeFont Представляет шрифт истинного типа.
Класс PdfStringFormat Представляет информацию о текстовом формате, такую как выравнивание, интервал между символами и отступ.
Класс PdfTextWidget Представляет текстовую область, способную занимать несколько страниц.
Класс PdfTextLayout Представляет информацию о макете текста.
Метод PDFDocument.Pages.Add() Добавляет страницу в PDF-документ.
Метод PdfPageBase.Canvas.DrawString() Рисует строку в указанном месте на странице с указанными объектами шрифта и кисти.
Метод PdfPageBase.Canvas.DrawImage() Рисует изображение в указанном месте на странице.
Метод PdfTextWidget.Draw() Рисует текстовый виджет в указанном месте на странице.
Метод PDFDocument.SaveToFile() Сохраняет документ в PDF-файл.

Как создать PDF с помощью Python

Ниже приведены основные шаги по созданию PDF-файлов в Python:

  • Установите Spire.PDF for Python.
  • Импортируйте модули.
  • Создайте PDF-документ с помощью класса PdfDocument.
  • Добавьте страницу в PDF с помощью метода PdfDocument.Pages.Add() и верните объект класса PdfPageBase.
  • Создайте нужную кисть и шрифт PDF.
  • Нарисуйте текстовую строку или текстовый виджет по заданной координате на странице PDF с помощью метода PdfPageBase.Canvas.DrawString() или PdfTextWidget.Draw().
  • Сохраните PDF-документ с помощью метода PdfDocument.SaveToFile().

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

Python для создания PDF из текстового файла

В следующем примере кода показан процесс чтения текста из файла .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

Python для создания многоколоночного PDF-файла

Многоколоночный 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

Бесплатная лицензия для создания PDF-файлов на Python

Ты можешь получить бесплатную временную лицензию Spire.PDF for Python для создания PDF-документов без водяных знаков и ограничений.

Заключение

В этой записи блога представлено пошаговое руководство по созданию файлов PDF на основе системы координат, определенной в библиотеке Spire.PDF for Python. В примерах кода вы можете узнать о процессе и методах вставки текста, изображений в PDF-файлы и преобразования файлов TXT в PDF-файлы. Если вы хотите изучить другие функции обработки и преобразования PDF-файлов библиотеки Python PDF, вы можете ознакомиться с ее онлайн-документация.

По любым вопросам во время использования обращайтесь в нашу службу технической поддержки по электронной почте или на форуме.

Смотрите также