Usando Aspose.PDF para .NET com Python
Este artigo descreve breves exemplos de como criar PDF usando a integração do Aspose.PDF para .NET com Python.
Pré-requisitos
Para usar Aspose.PDF para .NET em Python, por favor, use o seguinte requirments.txt
:
pip==21.3.1
pycparser==2.21
pythonnet==2.5.2
setuptools==60.1.0
Também, você deve colocar Aspose.PDF.dll
na pasta desejada.
Criando um PDF Simples usando Python
Para trabalhar, precisaremos integrar o PythonNet à nossa aplicação e fazer algumas configurações.
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
Gerar documento simples
Vamos criar um PDF simples com o texto clássico “Hello, world”. Para uma explicação mais detalhada, por favor siga para esta página
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):
# Inicializar o objeto de documento
document = Document()
# Adicionar página
page = document.Pages.Add()
# Adicionar texto à nova página
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
# Criar objeto TextBuilder
textBuilder = TextBuilder(page)
# Anexar o fragmento de texto à página PDF
textBuilder.AppendText(textFragment)
document.Save("HelloWorld_out.pdf")
Criando PDF Complexo usando Python
Os próximos exemplos mostram como podemos criar um documento PDF complexo com imagens e tabelas. Este exemplo é baseado na página seguinte.
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):
# ... omitido ...
# Criar um Documento Complexo
def run_complex(self):
# Inicializar objeto do documento
document = Document()
# Adicionar página
page = document.Pages.Add()
# Adicionar imagem
imageFileName = self.dataDir + "logo.png"
page.AddImage(imageFileName, Rectangle(20, 730, 120, 830))
# Adicionar Cabeçalho
header = TextFragment("Novas rotas de ferry no Outono de 2020")
header.TextState.Font = FontRepository.FindFont("Arial")
header.TextState.FontSize = 24
header.HorizontalAlignment = HorizontalAlignment.Center
header.Position = Position(130, 720)
page.Paragraphs.Add(header)
# Adicionar descrição
descriptionText = "Os visitantes devem comprar bilhetes online e os bilhetes são limitados a 5.000 por dia. \
O serviço de ferry está operando com metade da capacidade e em um horário reduzido. Espere filas."
description = TextFragment(descriptionText)
description.TextState.Font = FontRepository.FindFont("Times New Roman")
description.TextState.FontSize = 14
description.HorizontalAlignment = HorizontalAlignment.Left
page.Paragraphs.Add(description)
# Adicionar tabela
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("Cidade de Partida")
headerRow.Cells.Add("Ilha de Partida")
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")
Como executar a geração de PDFs no Windows
Este trecho mostra como executar os exemplos acima em um PC Windows. Supomos que a class HelloWorld
esteja localizada no arquivo example_get_started.py
.
Se você executar a versão de teste do Aspose.PDF para .NET, você deve passar uma string vazia como 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()