Uso de Aspose.PDF para .NET con Python
Este artículo describe breves ejemplos sobre cómo crear PDF utilizando la integración de Aspose.PDF para .NET con Python.
Prerrequisitos
Para usar Aspose.PDF para .NET en Python, por favor usa el siguiente requirments.txt
:
pip==21.3.1
pycparser==2.21
pythonnet==2.5.2
setuptools==60.1.0
También, deberías colocar Aspose.PDF.dll
en la carpeta deseada.
Creando un PDF Simple usando Python
Para trabajar necesitaremos integrar PythonNet en nuestra aplicación y hacer algunos ajustes.
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
Generar documento simple
Vamos a crear un PDF simple con el texto clásico “Hola, mundo”. Para una explicación más detallada, por favor sigue 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 el objeto documento
document = Document()
# Añadir página
page = document.Pages.Add()
# Añadir texto a la nueva página
textFragment = TextFragment("Hola, mundo!")
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
# Crear objeto TextBuilder
textBuilder = TextBuilder(page)
# Añadir el fragmento de texto a la página del PDF
textBuilder.AppendText(textFragment)
document.Save("HelloWorld_out.pdf")
Creando documentos PDF complejos usando Python
Los siguientes ejemplos muestran cómo podemos crear un documento PDF complejo con imágenes y tablas. Este ejemplo se basa en la siguiente 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):
# ... omitido ...
# Crear un documento complejo
def run_complex(self):
# Inicializar objeto de documento
document = Document()
# Agregar página
page = document.Pages.Add()
# Agregar imagen
imageFileName = self.dataDir + "logo.png"
page.AddImage(imageFileName, Rectangle(20, 730, 120, 830))
# Agregar encabezado
header = TextFragment("Nuevas rutas de ferry en otoño 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)
# Agregar descripción
descriptionText = "Los visitantes deben comprar boletos en línea y los boletos están limitados a 5,000 por día. \
El servicio de ferry está operando a media capacidad y con un horario reducido. 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)
# Agregar tabla
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("Ciudad de salida")
headerRow.Cells.Add("Isla de salida")
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")
Cómo ejecutar la generación de PDFs en Windows
Este fragmento muestra cómo ejecutar los ejemplos anteriores en una PC con Windows. Se asume que class HelloWorld
está ubicada en el archivo example_get_started.py
.
Si ejecutas la versión de prueba de Aspose.PDF para .NET, debes pasar una cadena vacía 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()