Exigences système

Introduction

Aspose.Slides for .NET est une bibliothèque autonome : elle ne nécessite pas Microsoft PowerPoint ni Microsoft Office. Elle est publiée sous forme de deux packages NuGet, Aspose.Slides.NET et Aspose.Slides.NET6.CrossPlatform. Les deux offrent les mêmes espaces de noms et classes Aspose.Slides ; ils diffèrent par les frameworks ciblés et par la façon dont ils dessinent les diapositives, ce qui détermine où ils s’exécutent et ce dont ils ont besoin.

Cet article répertorie les versions .NET et les plateformes prises en charge par chaque package ainsi que les bibliothèques système et les polices requises sous Linux, et se termine par un petit programme qui vérifie votre configuration. Pour ajouter un package à un projet, consultez Installation.

Versions .NET prises en charge

Chaque package contient une compilation d’Aspose.Slides par framework cible, et NuGet sélectionne la compilation correspondant au framework cible de votre projet.

Package Frameworks cibles dans le package Votre projet peut cibler
Aspose.Slides.NET net462, net6.0, netstandard2.0 .NET Framework 4.6.2 ou ultérieur ; .NET 6 ou ultérieur, y compris .NET 8, .NET 9 et .NET 10
Aspose.Slides.NET6.CrossPlatform net6.0 .NET 6 ou ultérieur, y compris .NET 8, .NET 9 et .NET 10

La compilation netstandard2.0 permet à une bibliothèque de classes .NET Standard 2.0 de référencer Aspose.Slides.NET. Une application qui utilise une telle bibliothèque exécute la compilation qui correspond au framework cible de l’application : une application .NET 8, par exemple, exécutera la compilation net6.0.

Systèmes d’exploitation et processeurs pris en charge

Aspose.Slides.NET ne contient que du code géré indépendant du processeur (AnyCPU), il s’exécute donc sur l’architecture du runtime .NET qui le charge. Il dessine les diapositives via la bibliothèque System.Drawing.Common de Microsoft, que Microsoft prend en charge uniquement sous Windows (https://learn.microsoft.com/en-us/dotnet/core/compatibility/core-libraries/6.0/system-drawing-common-windows-only). Sous Linux, Aspose.Slides.NET a donc besoin de la bibliothèque libgdiplus et d’un commutateur de démarrage, décrits dans Linux. Il fonctionne sur les distributions Linux qui fournissent libgdiplus, telles que Debian, Ubuntu et Alpine Linux.

Aspose.Slides.NET6.CrossPlatform dessine les diapositives avec son propre moteur graphique. Le moteur est une bibliothèque native que le package inclut dans une compilation par plateforme, de sorte que le package ne fonctionne que sur ces plateformes :

Système d’exploitation Processeurs Remarques
Windows x86, x64 Windows sur ARM64 n’est pas pris en charge.
Linux x64, ARM64 Nécessite glibc 2.23 ou supérieur sur x64 et glibc 2.39 ou supérieur sur ARM64.
macOS x64 (Intel), ARM64 (Apple silicon)

Aspose.Slides.NET6.CrossPlatform ne fonctionne pas sur Alpine Linux ni sur d’autres distributions basées sur musl au lieu de glibc, ni sur des distributions avec une glibc plus ancienne, comme CentOS 7. Utilisez Aspose.Slides.NET sur ces systèmes.

Sous Windows, la bibliothèque native d’Aspose.Slides.NET6.CrossPlatform utilise le runtime Microsoft Visual C++ (MSVCP140.dll et VCRUNTIME140.dll, plus VCRUNTIME140_1.dll sur x64). Si ces fichiers manquent sur la machine cible, installez le Microsoft Visual C++ Redistributable.

Linux

Les deux packages nécessitent des bibliothèques système supplémentaires sous Linux. Sans elles, le premier exemple de Create Presentations échoue avec une exception au lieu d’enregistrer le fichier. Les commandes ci‑dessous concernent Debian et Ubuntu ; sur ces distributions, chaque bibliothèque installe également les polices DejaVu (fonts-dejavu-core), de sorte que le texte s’affiche sans paquets de polices supplémentaires.

Aspose.Slides.NET6.CrossPlatform

La bibliothèque Linux du package requiert la bibliothèque fontconfig :

sudo apt-get update && sudo apt-get install -y libfontconfig1

Sans elle, la création d’une Presentation échoue avec une TypeInitializationException dont l’DllNotFoundException interne indique que libfontconfig.so.1 ne peut pas être ouvert.

Les images de base minimales peuvent également ne pas contenir fontconfig. L’image de base AWS Lambda pour .NET 8, par exemple, ne contient ni fontconfig ni aucune police. Dans une image de conteneur construite dessus, exécutez dnf install -y fontconfig, ce qui installe aussi les polices Noto Sans.

Aspose.Slides.NET

Le package nécessite deux éléments sous Linux :

  1. La bibliothèque libgdiplus :

    sudo apt-get update && sudo apt-get install -y libgdiplus
    
  2. Le commutateur System.Drawing.EnableUnixSupport, activé au démarrage de votre application avant tout appel à Aspose.Slides. Dans un Program.cs avec des instructions de haut niveau, placez‑le après les directives using :

    System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", true);
    

Sans libgdiplus, l’enregistrement d’une présentation échoue avec une TypeInitializationException dont l’DllNotFoundException interne indique que libgdiplus ne peut pas être chargé. Sans le commutateur, l’exception interne est PlatformNotSupportedException: System.Drawing.Common is not supported on non-Windows platforms.

Alpine Linux

Sous Alpine Linux, utilisez Aspose.Slides.NET avec le commutateur décrit ci‑dessus. Les images Alpine ne contiennent généralement aucune police, et libgdiplus seul n’installe aucune police, il faut donc installer libgdiplus avec au moins un paquet de polices. Sans police, l’enregistrement d’une présentation échoue avec l’erreur suivante :

System.ArgumentException: Font '?' cannot be found.

Option 1 : polices DejaVu

L’option recommandée est le paquet ttf-dejavu :

RUN apk add --no-cache \
    libgdiplus \
    ttf-dejavu

Sur les versions actuelles d’Alpine, ttf-dejavu installe le paquet font-dejavu, qui installe également fontconfig et les outils de police dont il dépend.

Option 2 : polices Microsoft de base

Si vos présentations utilisent des polices Microsoft telles qu’Arial, Times New Roman, Courier New ou Verdana, installez les polices de base Microsoft à la place. L’étape update‑ms‑fonts télécharge les polices lors de la construction de l’image, il faut donc que la construction dispose d’un accès Internet :

RUN apk add --no-cache \
    libgdiplus \
    fontconfig \
    msttcorefonts-installer \
    && update-ms-fonts \
    && fc-cache -fv

Prise en charge de la mondialisation

Les deux packages nécessitent la prise en charge de la mondialisation .NET, fournie sous Linux via les bibliothèques ICU. En mode globalization‑invariant, la création d’une Presentation échoue avec CultureNotFoundException: Only the invariant culture is supported in globalization-invariant mode.

Certaines images de conteneur activent ce mode. Les images runtime .NET pour Alpine Linux (runtime-deps, runtime et aspnet), par exemple, définissent DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true et n’incluent pas ICU. Dans une image construite à partir de celles‑ci, installez ICU et désactivez le mode :

ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false
RUN apk --no-cache add icu-libs

Assurez‑vous également que votre fichier projet ne définit pas la propriété InvariantGlobalization à true.

Vérifiez votre configuration

Pour vérifier qu’un package et ses exigences sont présents, exécutez un programme qui enregistre une présentation et rend une diapositive sous forme d’image. L’enregistrement et le rendu utilisent la bibliothèque graphique et les polices, qui sont fournis par les exigences Linux décrites ci‑dessus.

Créez une application console et ajoutez le package comme indiqué dans Installation, remplacez le contenu de Program.cs par le code ci‑dessous, puis lancez dotnet run. Si vous utilisez Aspose.Slides.NET sous Linux, ajoutez l’instruction de commutateur System.Drawing.EnableUnixSupport montrée dans Linux après les directives using. Le programme utilise des instructions de haut niveau et des déclarations using, qui nécessitent C# 9 ou ultérieur. Les projets ciblant .NET 6 ou ultérieur utilisent par défaut une version plus récente de C# ; dans un projet ciblant .NET Framework, ajoutez <LangVersion>latest</LangVersion> à un PropertyGroup dans le fichier projet.

using Aspose.Slides;
using Aspose.Slides.Export;

using var presentation = new Presentation();
var slide = presentation.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 400, 100);
shape.TextFrame.Text = "Hello, Aspose.Slides!";
presentation.Save("hello.pptx", SaveFormat.Pptx);

using var image = slide.GetImage(1f, 1f);
image.Save("hello.png", ImageFormat.Png);

Le programme ajoute un rectangle avec du texte à la première diapositive et enregistre la présentation sous hello.pptx avec la méthode Save. Il rend ensuite la diapositive avec GetImage et enregistre le résultat sous hello.png avec IImage.Save au format ImageFormat.Png. Les facteurs d’échelle de 1 rendent un pixel par point, de sorte que la diapositive par défaut de 720 × 540 points devient une image de 720 × 540 pixels, le texte étant visible à l’intérieur du rectangle. Sans licence, les deux fichiers portent également un filigrane d’évaluation ; voir Licensing. Si une exigence manque, le programme s’arrête avec l’une des exceptions décrites dans Linux.

Outils de développement

Vous pouvez créer des applications qui utilisent Aspose.Slides avec n’importe quel outil prenant en charge le framework cible de votre projet : le SDK .NET et son interface en ligne de commande dotnet sous Windows, Linux et macOS, ou Visual Studio sous Windows. Installation décrit les deux approches.

FAQ

Dois‑je installer Microsoft PowerPoint pour les conversions et le rendu ?

Non, PowerPoint n’est pas requis. Aspose.Slides est un moteur autonome pour créer, modifier, convertir et rendre des présentations.

Quel package dois‑je utiliser ?

Utilisez Aspose.Slides.NET sous Windows et Aspose.Slides.NET6.CrossPlatform sous Linux et macOS. Sous Alpine Linux, sur les systèmes Linux dont la glibc est plus ancienne que les versions indiquées ci‑dessus, et dans les projets ciblant .NET Framework, utilisez Aspose.Slides.NET. Ajoutez uniquement l’un des deux packages à un projet.

Quelles polices sont nécessaires pour un rendu correct ?

Les polices utilisées dans la présentation, ou des substituts appropriés, doivent être disponibles dans le système d’exploitation. Sous Linux et macOS, installez les paquets de polices dont vos présentations ont besoin pour obtenir un rendu cohérent. Sous Alpine Linux, installez au moins un paquet de polices en plus de libgdiplus, comme indiqué dans Alpine Linux.

Pourquoi une police personnalisée s’affiche-t‑elle comme police de secours ou texte manquant sous Linux ?

Si le fichier de police contient des entrées de table de noms incohérentes ou corrompues, la pile de correspondance de polices Linux (FreeType/fontconfig) peut sélectionner un enregistrement invalide, entraînant une police non résolue. L’utilisation d’une version de police avec des tables de noms corrigées ou l’installation d’un remplacement cohérent résout le problème.