Utilisation de Aspose.PDF pour .NET avec Python

Cet article décrit de courts exemples de création de PDF en utilisant l’intégration de Aspose.PDF pour .NET avec Python.

Prérequis

Pour utiliser Aspose.PDF pour .NET en Python, veuillez utiliser le requirments.txt suivant :

pip==21.3.1
pycparser==2.21
pythonnet==2.5.2
setuptools==60.1.0

Vous devriez également placer Aspose.PDF.dll dans le dossier souhaité.

Création d’un PDF simple avec Python

Pour travailler, nous aurons besoin d’intégrer PythonNet à notre application et de faire quelques configurations.

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

Générer un document simple

Créons un PDF simple avec le texte classique “Hello, world”. Pour une explication plus détaillée, veuillez suivre cette 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):

        # Initialiser l'objet document
        document = Document()
        # Ajouter une page
        page = document.Pages.Add()
        # Ajouter du texte à la nouvelle 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

        # Créer un objet TextBuilder
        textBuilder = TextBuilder(page)

        # Ajouter le fragment de texte à la page PDF
        textBuilder.AppendText(textFragment)

        document.Save("HelloWorld_out.pdf")

Création de PDF complexes en utilisant Python

Les exemples suivants montrent comment nous pouvons créer un document PDF complexe avec des images et des tableaux. Cet exemple est basé sur la page suivante.

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):
    # ... omis ...

    # Créer un document complexe
    def run_complex(self):

        # Initialiser l'objet document
        document = Document()
        # Ajouter une page
        page = document.Pages.Add()

        # Ajouter une image
        imageFileName = self.dataDir + "logo.png"
        page.AddImage(imageFileName, Rectangle(20, 730, 120, 830))

        # Ajouter un en-tête
        header = TextFragment("Nouvelles routes de ferry à l'automne 2020")
        header.TextState.Font = FontRepository.FindFont("Arial")
        header.TextState.FontSize = 24
        header.HorizontalAlignment = HorizontalAlignment.Center
        header.Position = Position(130, 720)
        page.Paragraphs.Add(header)

        # Ajouter une description
        descriptionText = "Les visiteurs doivent acheter leurs billets en ligne et les billets sont limités à 5 000 par jour. \
        Le service de ferry fonctionne à demi-capacité et selon un horaire réduit. Attendez-vous à des files d'attente."
        description = TextFragment(descriptionText)
        description.TextState.Font = FontRepository.FindFont("Times New Roman")
        description.TextState.FontSize = 14
        description.HorizontalAlignment = HorizontalAlignment.Left
        page.Paragraphs.Add(description)


        # Ajouter un tableau
        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("Ville de départ")
        headerRow.Cells.Add("Île de départ")

        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")

Comment générer des PDFs sous Windows

Ce snippet montre comment exécuter les exemples ci-dessus sur un PC Windows. Nous supposons que class HelloWorld se trouve dans le fichier example_get_started.py. Si vous exécutez la version d’essai de Aspose.PDF pour .NET, vous devriez passer une chaîne vide comme 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()