Using Aspose.PDF for .NET with Python
This article describes short examples how to create PDF using integration Aspose.PDF for .NET with Python.
Prerequisites
To use Aspose.PDF for .NET in Python please use following requirments.txt
:
pip==21.3.1
pycparser==2.21
pythonnet==2.5.2
setuptools==60.1.0
Also, you should put Aspose.PDF.dll
in desired folder.
Creating Simple PDF using Python
To work we will need to integrate PythonNet our application and make some setup.
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
Generate simple document
Let’s make a simple PDF with classical text “Hello, world”. For more detailed explanation, please follow to this page
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):
# Initialize document object
document = Document()
# Add page
page = document.Pages.Add()
# Add text to new page
textFragment = TextFragment("Hello,world!")
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
# Create TextBuilder object
textBuilder = TextBuilder(page)
# Append the text fragment to the PDF page
textBuilder.AppendText(textFragment)
document.Save("HelloWorld_out.pdf")
Creating Complex PDF using Python
Next examples shows how to we can create complex PDF document with images and tables. This example based on the following page.
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):
# ... skipped ...
# Make a Complex Document
def run_complex(self):
# Initialize document object
document = Document()
# Add page
page = document.Pages.Add()
# Add image
imageFileName = self.dataDir + "logo.png"
page.AddImage(imageFileName, Rectangle(20, 730, 120, 830))
# Add Header
header = TextFragment("New ferry routes in Fall 2020")
header.TextState.Font = FontRepository.FindFont("Arial")
header.TextState.FontSize = 24
header.HorizontalAlignment = HorizontalAlignment.Center
header.Position = Position(130, 720)
page.Paragraphs.Add(header)
# Add description
descriptionText = "Visitors must buy tickets online and tickets are limited to 5,000 per day. \
Ferry service is operating at half capacity and on a reduced schedule. Expect lineups."
description = TextFragment(descriptionText)
description.TextState.Font = FontRepository.FindFont("Times New Roman")
description.TextState.FontSize = 14
description.HorizontalAlignment = HorizontalAlignment.Left
page.Paragraphs.Add(description)
# Add table
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("Departs City")
headerRow.Cells.Add("Departs Island")
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")
How to run generation PDFs in Windows
This snippet shows how to run the examples above on Windows PC. We assumed that class HelloWorld
is located in example_get_started.py
file.
If you run the trial version of Aspose.PDF for .NET, you should pass an empty string as a 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()