13 décembre 2024
CodePorting.Wrapper Cs2Python est un outil qui permet d'encapsuler des projets .NET prêts à l'emploi écrits en C# dans des modules compatibles avec Python. Cela simplifie l'utilisation des projets .NET existants dans Python sans avoir à les réécrire à partir de zéro ou à traduire leur code source. L'utilisation de cet outil permet aux développeurs de gagner du temps et des efforts, tout en assurant des performances élevées du produit en Python. Dans cet article, nous examinerons les cinq projets .NET les plus populaires encapsulés pour être utilisés dans Python à l'aide de l'outil CodePorting.Wrapper Cs2Python.
Aspose est une entreprise leader spécialisée dans le développement de bibliothèques de haute qualité pour travailler avec divers formats de fichiers. Leurs produits sont largement reconnus parmi les développeurs pour leur fiabilité et leur riche fonctionnalité. Initialement, toutes ces bibliothèques ont été créées en C# et, au fil du temps, elles sont devenues des outils indispensables pour les développeurs .NET du monde entier.
Pour prendre en charge Python, il a été décidé de générer automatiquement du code d'encapsulation permettant d'utiliser l'assemblage .NET existant dans l'environnement Python. Pour y parvenir, l'outil CodePorting.Wrapper Cs2Python a été développé, ce qui facilite l'adaptation des projets .NET pour une utilisation dans Python.
Nous examinerons les cinq produits Aspose les plus populaires pour Python en nous basant sur le nombre de téléchargements de PyPI :
Produit | Nombre de Téléchargements | |
---|---|---|
1 | Aspose.Words | 1,287,268 |
2 | Aspose.Slides | 488,062 |
3 | Aspose.Cells | 286,120 |
4 | Aspose.PDF | 177,246 |
5 | Aspose.Email | 136,465 |
Nombre de lignes de code source C# |
---|
4,100,000 |
Aspose.Words est une puissante bibliothèque pour travailler avec des documents Word, offrant un large éventail de fonctionnalités pour créer, éditer, convertir et rendre des documents. Elle prend en charge de nombreux formats, y compris DOC, DOCX, PDF, HTML et plus encore. Aspose.Words permet aux développeurs d'automatiser le traitement des documents sans avoir besoin d'utiliser Microsoft Word ou d'autres applications tierces.
La première version de la bibliothèque encapsulée pour Python a été publiée en 2021. Depuis, elle a continué à évoluer parallèlement aux capacités croissantes de l'outil d'encapsulation Cs2Python. L'ensemble de l'API Python est généré automatiquement sur la base de l'API C# de la bibliothèque.
Exemple en C# :
using Aspose.Words;
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.Writeln("Hello, World!");
doc.Save("HelloWorld.docx");
Exemple en Python :
import aspose.words as aw
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
builder.writeln("Hello, World!")
doc.save("HelloWorld.docx")
Exemple en C# :
using Aspose.Words;
Document doc = new Document("Document.docx");
doc.Save("Document.pdf");
En Python :
import aspose.words as aw
doc = aw.Document("Document.docx")
doc.save("Document.pdf")
Exemple en C# :
using Aspose.Words;
Document doc1 = new Document("Document1.docx");
Document doc2 = new Document("Document2.docx");
DocumentBuilder builder = new DocumentBuilder(doc1);
builder.MoveToDocumentEnd();
builder.InsertDocument(doc2, ImportFormatMode.KeepSourceFormatting);
doc1.Save("MergedDocument.docx");
En Python :
import aspose.words as aw
doc1 = aw.Document("Document1.docx")
doc2 = aw.Document("Document2.docx")
builder = aw.DocumentBuilder(doc1)
builder.move_to_document_end()
builder.insert_document(doc2, aw.ImportFormatMode.KEEP_SOURCE_FORMATTING)
doc1.save("MergedDocument.docx")
Comme nous pouvons le voir, les API dans les deux langues sont très similaires, ce qui facilite la transition des développeurs entre C# et Python. De plus, cela simplifie la documentation et la maintenance des bibliothèques Aspose. Désormais, grâce à l'outil CodePorting.Wrapper Cs2Python, les développeurs peuvent utiliser les puissantes capacités d'Aspose.Words dans leurs projets Python.
Nombre de lignes de code source C# |
---|
2,860,000 |
Aspose.Slides est une bibliothèque puissante pour travailler avec des présentations, permettant aux développeurs de créer, modifier, convertir et rendre des présentations sans avoir besoin d'applications comme Microsoft PowerPoint. Elle prend en charge une large gamme de formats, y compris PPT, PPTX, PDF, HTML et plus encore.
La première version de la bibliothèque encapsulée pour Python a été publiée en 2021 et a été immédiatement bien accueillie par les utilisateurs. Comparons l'API C# originale et l'API Python générée automatiquement.
En C# :
using Aspose.Slides;
Presentation pres = new Presentation();
pres.Save("NewPresentation.pptx", SaveFormat.Pptx);
En Python :
import aspose.slides as slides
pres = slides.Presentation()
pres.save("NewPresentation.pptx", slides.SaveFormat.Pptx)
En C# :
using Aspose.Slides;
Presentation pres = new Presentation("ExistingPresentation.pptx");
ISlide slide = pres.Slides.AddEmptySlide(pres.LayoutSlides[0]);
IAutoShape textbox = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 500, 200);
textbox.TextFrame.Text = "Hello, Aspose.Slides!";
pres.Save("UpdatedPresentation.pptx", SaveFormat.Pptx);
En Python :
import aspose.slides as slides
pres = slides.Presentation("ExistingPresentation.pptx")
slide = pres.slides.add_empty_slide(pres.layout_slides[0])
textbox = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 50, 50, 500, 200)
textbox.text_frame.text = "Hello, Aspose.Slides!"
pres.save("UpdatedPresentation.pptx", slides.SaveFormat.Pptx)
En C# :
using Aspose.Slides;
Presentation pres = new Presentation("ExistingPresentation.pptx");
pres.Save("ConvertedPresentation.pdf", SaveFormat.Pdf);
En Python :
import aspose.slides as slides
pres = slides.Presentation("ExistingPresentation.pptx")
pres.save("ConvertedPresentation.pdf", slides.SaveFormat.Pdf)
Comme nous pouvons le voir, la différence réside uniquement dans le style de codage propre à chaque langage de programmation.
Nombre de lignes de code source C# |
---|
600,000 |
Aspose.Cells est une API puissante pour travailler avec des fichiers Excel, permettant aux développeurs de créer, éditer, formater et convertir des feuilles de calcul dans leurs applications, prenant en charge une large gamme de formats, y compris XLS, XLSX, CSV, PDF et plus encore.
Aspose.Cells peut gérer de grands volumes de données dans les feuilles de calcul, ce qui impose des exigences élevées en termes de performance. En encapsulant le code C# compilé de haute performance, cette performance est maintenue lors de l'utilisation de la bibliothèque en Python. Traduire son code en Python pourrait réduire considérablement la vitesse des opérations.
Exemple en C# :
using Aspose.Cells;
using System;
Workbook workbook = new Workbook("HugeDataWithComplexFormulas.xlsx");
workbook.CalculateFormula();
Worksheet sheet = workbook.Worksheets[0];
Cell resultCell = sheet.Cells["A1"];
Console.WriteLine("Calculation result: " + resultCell.Value);
Exemple en Python :
import aspose.cells as cells
workbook = cells.Workbook("HugeDataWithComplexFormulas.xlsx")
workbook.calculate_formula()
sheet = workbook.worksheets[0]
result_cell = sheet.cells.get("A1")
print("Calculation result: ", result_cell.value)
Ce code illustre l'utilisation d'Aspose.Cells pour traiter de grands volumes de données et calculer des formules à la fois en C# et en Python. La méthode calculate_formula
effectue un travail significatif, assurant le calcul correct de toutes les formules dans la feuille de calcul sans perte de performance en Python.
Nombre de lignes de code source C# |
---|
3,655,000 |
Aspose.PDF est une bibliothèque puissante pour travailler avec des documents PDF, permettant aux développeurs de créer, lire, éditer et convertir des documents PDF de manière programmatique.
Comme nous pouvons le voir, Aspose.PDF est un projet vaste et complexe avec une base de code étendue en C#. Les méthodes de la bibliothèque peuvent renvoyer non seulement des types de données simples, mais aussi des structures complexes telles que des collections et des objets. L'un des points forts de l'outil CodePorting.Wrapper Cs2Python est sa capacité à prendre en charge ces types de données dans Python.
Exemple en C# :
using Aspose.Pdf;
using Aspose.Pdf.Text;
using System;
using System.Collections.Generic;
Document document = new Document("Sample.pdf");
Page page = document.Pages[1];
ImagePlacementAbsorber imageAbsorber = new ImagePlacementAbsorber();
page.Accept(imageAbsorber);
// Récupérer les trois premières images de la page actuelle
List<ImagePlacement> images = imageAbsorber.ImagePlacements.Take(3).ToList();
foreach (ImagePlacement image in images)
{
Console.WriteLine("Image trouvée à : " + image.Rectangle);
}
En Python :
import aspose.pdf as pdf
document = pdf.Document("Sample.pdf")
page = document.pages[1]
image_placement_absorber = pdf.ImagePlacementAbsorber()
page.accept(image_placement_absorber)
# Récupérer les trois premières images de la page actuelle
images = image_placement_absorber.image_placements[:3]
for image in images:
print("Image trouvée à :", image.rectangle)
Les collections échangées entre la bibliothèque encapsulée et le code Python supportent toutes les méthodes et opérations standard de Python pour les séquences. Cela inclut des méthodes telles que pop
, index
, count
, sort
, reverse
, copy
, append
, remove
, clear
, contains
, ainsi que le support de l'itération en utilisant __iter__
et l'accès aux éléments via des crochets ([]
). Cela rend l'interaction avec les collections des bibliothèques encapsulées aussi pratique et intuitive que le travail avec n'importe quelle autre collection standard dans le langage.
Nombre de lignes de code source C# |
---|
397,000 |
Aspose.Email est une bibliothèque pour travailler avec les emails, prenant en charge un large éventail de scénarios d'utilisation et de protocoles tels que SMTP, POP3, IMAP, Exchange Web Services (EWS), WebDav, et d'autres.
En C# :
using Aspose.Email;
using Aspose.Email.Clients.Smtp;
var message = new MailMessage();
message.From = new MailAddress("sender@example.com");
message.To.Add(new MailAddress("receiver@example.com"));
message.Subject = "Test Email";
message.Body = "This is a test email sent using Aspose.Email.";
var client = new SmtpClient("smtp.server.com", 25, "username", "password");
client.Send(message);
En Python :
import aspose.email as ae
message = ae.MailMessage()
message.from_address = ae.MailAddress("sender@example.com")
message.to.append(ae.MailAddress("receiver@example.com"))
message.subject = "Test Email"
message.body = "This is a test email sent using Aspose.Email."
client = ae.SmtpClient("smtp.server.com", 25, "username", "password")
client.send(message)
En C# :
using Aspose.Email;
using Aspose.Email.Storage.Pst;
using System;
void PrintFolderInfo(FolderInfo folder)
{
Console.WriteLine($"Dossier : {folder.DisplayName}, Nombre de messages : {folder.ContentCount}");
foreach (var subFolder in folder.GetSubFolders())
{
PrintFolderInfo(subFolder);
}
}
var personalStorage = PersonalStorage.FromFile("path/to/file.pst");
PrintFolderInfo(personalStorage.RootFolder);
En Python :
import aspose.email as ae
import aspose.email.storage.pst as pst
def print_folder_info(folder):
print(f"Dossier : {folder.display_name}, Nombre de messages : {folder.content_count}")
for sub_folder in folder.get_sub_folders():
print_folder_info(sub_folder)
personal_storage = pst.PersonalStorage.from_file("path/to/file.pst")
print_folder_info(personal_storage.root_folder)
Dans cet exemple, nous parcourons récursivement tous les dossiers du fichier PST et affichons le nombre de messages dans chaque dossier en utilisant la propriété FolderInfo.ContentCount
(FolderInfo.content_count
en Python).
Comme nous pouvons le voir, l'interface API Python est une fois de plus identique à l'interface API C#. Cela est réalisé grâce à la création automatique d'une couche intermédiaire de code qui implémente des wrappers ou des liaisons pour les classes, méthodes et propriétés en Python. Ces liaisons permettent d'accéder à la fonctionnalité écrite en C# depuis l'environnement Python.
En conclusion, nous aimerions souligner les avantages clés offerts par l'encapsulation des bibliothèques .NET pour Python en utilisant l'outil CodePorting.Wrapper Cs2Python :
Si vous souhaitez encapsuler avec succès votre projet .NET de niveau entreprise pour une utilisation dans Python, veuillez nous contacter et nous serons heureux de vous aider à atteindre vos objectifs.