Использование Aspose.PDF для .NET с Python
Эта статья описывает краткие примеры создания PDF с использованием интеграции Aspose.PDF для .NET с Python.
Предварительные условия
Для использования Aspose.PDF для .NET в Python, пожалуйста, используйте следующий requirments.txt
:
pip==21.3.1
pycparser==2.21
pythonnet==2.5.2
setuptools==60.1.0
Также вы должны поместить Aspose.PDF.dll
в нужную папку.
Создание простого PDF с помощью Python
Для работы нам потребуется интегрировать PythonNet в наше приложение и выполнить некоторую настройку.
import clr
aspose_pdf = clr.AddReference("D:\\aspose-python-net\\Aspose.PDF.dll")
from System import TimeSpan
from Aspose.Pdf import Document, Color, License, BorderInfo, BorderSide, Rectangle, HorizontalAlignment
from Aspose.Pdf import Table, MarginInfo
from Aspose.Pdf.Text import TextFragment, Position, TextBuilder,FontRepository
Создание простого документа
Давайте создадим простой PDF с классическим текстом “Привет, мир”. Для более подробного объяснения, пожалуйста, перейдите на эту страницу
class HelloWorld(object):
def __init__(self, licence_path):
self.dataDir = "C:\\Samples\\"
if licence_path:
self.licence_path = licence_path
self.aspose_license = License()
self.aspose_license.SetLicense(self.licence_path)
def run_simple(self):
# Инициализация объекта документа
document = Document()
# Добавление страницы
page = document.Pages.Add()
# Добавление текста на новую страницу
textFragment = TextFragment("Привет, мир!")
textFragment.Position = Position(100, 600)
textFragment.TextState.FontSize = 12
textFragment.TextState.Font = FontRepository.FindFont("TimesNewRoman")
textFragment.TextState.BackgroundColor = Color.Blue
textFragment.TextState.ForegroundColor = Color.Yellow
# Создание объекта TextBuilder
textBuilder = TextBuilder(page)
# Добавление текстового фрагмента на страницу PDF
textBuilder.AppendText(textFragment)
document.Save("HelloWorld_out.pdf")
Создание сложных PDF-документов с использованием Python
Следующие примеры показывают, как мы можем создать сложный PDF-документ с изображениями и таблицами. Этот пример основан на следующей странице.
class HelloWorld(object):
def __init__(self,licence_path):
self.dataDir = "C:\\Samples\\"
if licence_path:
self.licence_path = licence_path
self.aspose_license = License()
self.aspose_license.SetLicense(self.licence_path)
def run_simple(self):
# ... пропущено ...
# Создание сложного документа
def run_complex(self):
# Инициализация объекта документа
document = Document()
# Добавление страницы
page = document.Pages.Add()
# Добавление изображения
imageFileName = self.dataDir + "logo.png"
page.AddImage(imageFileName, Rectangle(20, 730, 120, 830))
# Добавление заголовка
header = TextFragment("Новые маршруты паромов осенью 2020")
header.TextState.Font = FontRepository.FindFont("Arial")
header.TextState.FontSize = 24
header.HorizontalAlignment = HorizontalAlignment.Center
header.Position = Position(130, 720)
page.Paragraphs.Add(header)
# Добавление описания
descriptionText = "Посетители должны покупать билеты онлайн, и количество билетов ограничено 5,000 в день. \
Паромная служба работает с половинной загрузкой и по сокращенному расписанию. Ожидайте очередей."
description = TextFragment(descriptionText)
description.TextState.Font = FontRepository.FindFont("Times New Roman")
description.TextState.FontSize = 14
description.HorizontalAlignment = HorizontalAlignment.Left
page.Paragraphs.Add(description)
# Добавление таблицы
table = Table()
table.ColumnWidths = "200"
table.Border = BorderInfo(BorderSide.Box, 1.0, Color.DarkSlateGray)
table.DefaultCellBorder = BorderInfo(BorderSide.Box, 0.5, Color.Black)
table.DefaultCellPadding = MarginInfo(4.5, 4.5, 4.5, 4.5)
table.Margin.Bottom = 10
table.DefaultCellTextState.Font = FontRepository.FindFont("Helvetica")
headerRow = table.Rows.Add()
headerRow.Cells.Add("Город отправления")
headerRow.Cells.Add("Остров отправления")
i=0
while(i<headerRow.Cells.Count):
headerRow.Cells[i].BackgroundColor = Color.Gray
headerRow.Cells[i].DefaultCellTextState.ForegroundColor = Color.WhiteSmoke
i+=1
time = TimeSpan(6, 0, 0)
incTime = TimeSpan(0, 30, 0)
i=0
while (i<10):
dataRow = table.Rows.Add()
dataRow.Cells.Add(time.ToString("hh\:mm"))
time=time.Add(incTime)
dataRow.Cells.Add(time.ToString("hh\:mm"))
i+=1
page.Paragraphs.Add(table)
document.Save(self.dataDir + "Complex.pdf")
Как запустить генерацию PDF-файлов в Windows
Этот фрагмент показывает, как запустить приведенные выше примеры на ПК с Windows. Предполагается, что class HelloWorld
находится в файле example_get_started.py
.
Если вы используете пробную версию Aspose.PDF для .NET, вы должны передать пустую строку в качестве license_path
.
import example_get_started
def main():
example = example_get_started.HelloWorld("<license_path>")
example.run_simple()
example.run_complex()
if __name__ == '__main__':
main()