Les informations dans ce sujet s’appliquent aux scénarios où vous souhaitez utiliser Aspose.PDF for .NET via COM Interop dans l’un des langages de programmation suivants :
ASP
Delphi
JScript
Perl
PHP
PowerBuilder
Python
VBScript
Visual Basic
C++
Travailler avec COM Interop
Aspose.PDF for .NET s’exécute sous le contrôle du .NET Framework et cela s’appelle du code géré. Le code écrit dans tous les langages ci-dessus s’exécute en dehors du .NET Framework et cela s’appelle du code non géré. L’interaction entre le code non géré et Aspose.PDF se produit via la fonctionnalité .NET appelée COM Interop.
Les objets Aspose.PDF sont des objets .NET, mais lorsqu’ils sont utilisés via COM Interop, ils apparaissent comme des objets COM dans votre langage de programmation. Par conséquent, il est préférable de s’assurer que vous savez comment créer et utiliser des objets COM dans votre langage de programmation, avant de commencer à utiliser Aspose.PDF for .NET.
Dans le monde COM, nous distinguons le serveur COM et le client COM. Le serveur COM stocke les classes COM tandis que le client COM demande au serveur COM des instances de classes, c’est-à-dire des objets COM.
Le client COM ou simplement l’application cliente peut connaître le contenu de la classe COM ou être totalement inconscient de ses méthodes et propriétés. Par conséquent, l’application cliente peut découvrir la structure de la classe COM lors de la compilation/construction ou uniquement pendant l’exécution. Le processus de “découverte” est connu sous le nom de liaison et nous avons donc liaison précoce et liaison tardive.
en bref, la classe COM est comme une boîte noire et pour travailler avec elle, une bibliothèque de types est nécessaire, ce fichier binaire a une description des méthodes, propriétés de la classe COM et tout langage de haut niveau qui prend en charge le travail avec des objets COM a souvent une expression de syntaxe pour ajouter une bibliothèque de types, par exemple, c’est #import en C++.
la bibliothèque de types est utilisée pour la liaison précoce.
un objet COM peut exposer ses méthodes et propriétés de deux manières : par le biais d’une interface de dispatch (dispinterface) et dans sa vtable (table des fonctions virtuelles).
au sein de l’interface de dispatch, chaque méthode et propriété est identifiée par un membre unique ; ce membre est l’identifiant de dispatch de la fonction (ou DispID).
vtable est simplement un ensemble de pointeurs vers des fonctions que l’interface de classe COM prend en charge.
un objet qui expose ses méthodes par les deux interfaces prend en charge une interface duale.
il y a des avantages aux deux types de liaison. La liaison précoce vous offre des performances accrues et une vérification de syntaxe à la compilation. La liaison tardive est la plus avantageuse lorsque vous écrivez des clients que vous souhaitez rendre compatibles avec les futures versions de votre classe COM. Avec la liaison tardive, les informations de la bibliothèque de types ne sont pas “câblées” dans votre client, vous pouvez donc avoir une plus grande confiance que votre client peut fonctionner avec les futures versions de la classe COM sans modifications de code.
le mécanisme de liaison tardive a un grand avantage : si le créateur de la DLL COM décide de publier une nouvelle version, avec une disposition d’interface de fonction différente, tout code appelant ces méthodes ne plantera pas à moins que les méthodes ne soient plus disponibles ; même si la vtable est différente, la liaison tardive parvient à découvrir les nouveaux DISPIDs et à appeler les méthodes appropriées.
Voici les sujets que vous devrez éventuellement maîtriser :
Utilisation des objets COM dans votre langage de programmation. Consultez la documentation de votre langage de programmation et les sujets spécifiques au langage plus loin dans cette documentation.
Vous devez installer Aspose.PDF for .NET et vous assurer qu’il est enregistré avec COM Interop (en vous assurant qu’il peut être appelé depuis du code non géré).
Pour enregistrer Aspose.PDF for .NET pour COM Interop manuellement :
Dans le menu Démarrer, sélectionnez Tous les programmes, puis Microsoft Visual Studio, Outils Visual Studio et enfin Invite de commandes Visual Studio.
Entrez la commande pour enregistrer l’assembly :
.NET Framework 4.8.1
regasm “C:\Program Files\Aspose\Aspose.PDF for .NET\bin\net4.8.1\Aspose.PDF.dll” /codebase
.NET 6.0
regasm “C:\Program Files\Aspose\Aspose.PDF for .NET\bin\net6.0\Aspose.PDF.dll” /codebase
.NET 7.0
regasm “C:\Program Files\Aspose\Aspose.PDF for .NET\bin\net7.0\Aspose.PDF.dll” /codebase
.NET 8.0
regasm “C:\Program Files\Aspose\Aspose.PDF for .NET\bin\net8.0\Aspose.PDF.dll” /codebase
.NET Standard 2.0
regasm “C:\Program Files\Aspose\Aspose.PDF for .NET\bin\netstandard2.0\Aspose.PDF.dll” /codebase
Attention, /codebase est nécessaire uniquement si Aspose.PDF.dll n’est pas dans le GAC, l’utilisation de cette option fait que regasm met le chemin de l’assembly dans le registre.
regasm.exe est un outil inclus dans le SDK du .NET Framework. Tous les outils du SDK du .NET Framework se trouvent dans le répertoire \Microsoft .NET\Framevork<FrameworkVersion>, par exemple C:\Windows\Microsoft .NET\Framework\v4.0.30319. Si vous utilisez Visual Studio .NET :
Dans le menu Démarrer, sélectionnez Programmes, suivi de Visual Studio 2022, enfin, Invite de commandes pour développeurs VS 2022.
Cela exécute une invite de commandes avec toutes les variables d’environnement nécessaires définies.
ProgIDs
ProgID signifie “identifiant programmatique”. C’est le nom d’une classe COM utilisée pour créer un objet. Les ProgIDs se composent du nom de la bibliothèque “Aspose.PDF” et du nom de la classe.
Bibliothèque de types
Si votre langage de programmation (par exemple Visual Basic ou Delphi) vous permet de référencer une bibliothèque de types COM, alors ajoutez une référence à Aspose.PDF.tlb et pour voir toutes les classes, méthodes, propriétés et énumérations de Aspose.PDF for .NET dans votre navigateur d’objets.
Pour générer un fichier TLB :
.NET Framework 4.8.1
regasm “C:\Program Files\Aspose\Aspose.PDF for .NET\bin\net4.8.1\Aspose.PDF.dll” /tlb: “C:\Program Files\Aspose\Aspose.PDF for .NET\bin\net4.8.1\Aspose.PDF.tlb” /codebase
.NET 6.0
regasm “C:\Program Files\Aspose\Aspose.PDF for .NET\bin\net6.0\Aspose.PDF.dll” /tlb: “C:\Program Files\Aspose\Aspose.PDF for .NET\bin\net6.0\Aspose.PDF.tlb” /codebase
.NET 7.0
regasm “C:\Program Files\Aspose\Aspose.PDF for .NET\bin\net7.0\Aspose.PDF.dll” /tlb: “C:\Program Files\Aspose\Aspose.PDF for .NET\bin\net7.0\Aspose.PDF.tlb” /codebase
.NET 8.0
regasm “C:\Program Files\Aspose\Aspose.PDF for .NET\bin\net8.0\Aspose.PDF.dll” /tlb: “C:\Program Files\Aspose\Aspose.PDF for .NET\bin\net8.0\Aspose.PDF.tlb” /codebase
.NET Standard 2.0
regasm “C:\Program Files\Aspose\Aspose.PDF for .NET\bin\netstandard2.0\Aspose.PDF.dll” /tlb: “C:\Program Files\Aspose\Aspose.PDF for .NET\bin\netstandard2.0\Aspose.PDF.tlb” /codebase
Création d’objets COM
La création d’un objet COM est similaire à la création d’un objet .NET normal :
'Instantiate Pdf instance by calling its empty constructorDimdocumentSetdocument=CreateObject("Aspose.Pdf.Document")
Une fois créé, vous pouvez accéder aux méthodes et propriétés de l’objet, comme s’il s’agissait d’un objet COM :
'Add page to the documentdocument.Pages.Add()
Certaines méthodes ont des surcharges et elles seront exposées par COM Interop avec un suffixe numérique ajouté, sauf pour la toute première méthode qui reste inchangée. Par exemple, les surcharges de la méthode Document.Save deviennent Document.Save, Document.Save_2, et ainsi de suite.
Pour plus d’informations, consultez les articles spécifiques au langage plus loin dans cette documentation.
Création d’une assembly wrapper
Si vous devez utiliser de nombreuses classes, méthodes et propriétés de Aspose.PDF for .NET, envisagez de créer une assembly wrapper (en utilisant C# ou tout autre langage de programmation .NET). Les assemblies wrapper aident à éviter d’utiliser Aspose.PDF for .NET directement depuis du code non géré.
Une bonne approche consiste à développer une assembly .NET qui référence Aspose.PDF for .NET et fait tout le travail avec, et n’expose qu’un ensemble minimal de classes et de méthodes au code non géré. Votre application devrait alors fonctionner uniquement avec votre bibliothèque wrapper.
Réduire le nombre de classes et de méthodes que vous devez invoquer via COM Interop simplifie le projet. Utiliser des classes .NET via COM Interop nécessite souvent des compétences avancées.