PowerPoint Automation Services dans SharePoint

Apprenez à utiliser Microsoft PowerPoint Automation Services pour procéder à des conversions de présentation côté serveur vers et depuis divers formats de fichier.

Introduction

De nombreuses entreprises, grandes et petites, utilisent leurs bibliothèques Microsoft SharePoint Server comme un référentiel pour les présentations Microsoft PowerPoint. Ces entreprises tous ont leurs propres besoins particuliers pour le stockage, la distribution et la mise à jour de leurs présentations. Microsoft PowerPoint Automation Services est une nouvelle fonctionnalité de Microsoft SharePoint qui permet aux entreprises de gérer leurs présentations. Il s'agit d'un service partagé permettant de convertir dans d'autres formats des présentations, sans assistance et côté serveur. Il a été conçu dès le début pour fonctionner sur des serveurs et peut traiter de nombreux fichiers de présentation de manière fiable et prévisible.

À l'aide de PowerPoint Automation Services, vous pouvez convertir à partir du format de fichier binaire (.ppt) PowerPoint et le format de fichier Open XML PowerPoint (.pptx) vers d'autres formats. Par exemple, vous souhaiterez peut-être mettre à niveau un lot de PowerPoint fichiers 97 - 2003 vers des fichiers de présentation d'Open XML. Vous pouvez également créer une action personnalisée dans le menu Edition pour permettre aux utilisateurs de créer une version de fichier PDF de présentations à la demande.

Remarque

La solution PowerPoint Automation Services tire parti de SharePoint et en est une fonctionnalité. Pour pouvoir utiliser PowerPoint Automation Services, il faut que SharePoint soit installé. Si vous utilisez SharePoint dans une batterie de serveurs, vous devez activer PowerPoint Automation Services de façon explicite.

Scénarios PowerPoint Automation Services

Les scénarios suivants décrivent deux manières que vous pouvez utiliser PowerPoint Automation Services pour automatiser le traitement des présentations sur un serveur :

  • Une grande entreprise stocke toutes leurs présentations bénéfices annuels dans une bibliothèque de documents sur un site intranet d'entreprise. La bibliothèque contient un grand nombre de présentations collectées au fil des ans. Le service informatique souhaite de mise à niveau tous les fichiers de présentation dans les PowerPoint format de fichier binaire 97-2003 (.ppt) au format de fichier de présentation Open XML (.pptx). Le développeur qui effectue la conversion décide de déployer une solution sur le serveur qui sera itérer au sein de chacun des fichiers dans la bibliothèque, vérifie si le fichier est au format .ppt et convertir chaque fichier .ppt au format de fichier .pptx.

  • Un service commercial régional fournit des estimations de service personnalisé à chacun de leurs clients. Chaque vendeur passe en revue leurs prix avec les clients dans une réunion, en personne ou en ligne. Après la réunion, le vendeur fournit une copie de la soumission au client sous la forme d'un fichier PDF. Le département appel à un fournisseur pour créer un verbe personnalisé dans le menu Edition pour les fichiers PowerPoint stocké dans une bibliothèque de documents dans leur extranet. Lorsque le verbe est activé, le serveur exécute un programme qui permet de convertir le fichier PowerPoint au format PDF situé dans la même bibliothèque.

Formats de présentation source pris en charge

Les formats de présentation source pris en charge pour la conversion sont les suivants :

  • Format de présentation au Format de fichier XML ouvert (.pptx)

  • Présentation de PowerPoint 97-2003 (.ppt)

Formats de document de destination pris en charge

Les formats de documents de destination pris en charge incluent tous les formats de documents sources pris en charge et les éléments suivants :

  • .pptx (format de présentation au Format de fichier open XML)

  • .pdf

  • .XPS (open XML Paper Specification)

  • .jpg

  • Format PNG (Portable Network Graphics)

Limitations de PowerPoint Automation Services

PowerPoint Automation Services n'inclut pas les fonctionnalités pour l'impression des documents. Toutefois, il est facile de convertir des fichiers de présentation PowerPoint (.ppt et .pptx) au format PDF ou XPS et les mettre en attente sur une imprimante.

API PowerPoint Automation Services

Pour utiliser la solution PowerPoint Automation Services, vous pouvez vous servir de son interface de programmation pour envoyer une demande de conversion au SharePoint Server. Pour chaque demande de conversion, vous spécifiez les fichiers que vous souhaitez convertir et le format de sortie de la tâche de conversion. Certaines demandes de conversion, vous pouvez également spécifier que les types de contenu est converti, y compris les commentaires, les diapositives masquées ou les propriétés de document.

PowerPoint Automation Services utilise la méthode de modèle asynchrone pour envoyer et recevoir des demandes de conversion. Par conséquent, vous pouvez écrire du code qui continue de s'exécuter après l'envoi d'une demande de conversion. Si vous avez besoin fournir des notifications aux utilisateurs après qu'une demande de conversion est terminée, vous pouvez spécifier un délégué qui fait référence à une méthode de rappel à exécuter lorsque l'opération se termine.

Remarque

Pour plus d’informations sur l’utilisation du modèle de conception asynchrone, consultez vue d’ensemble de la programmation asynchrone.

Les sections suivantes contiennent une liste restreinte des classes qui sont nécessaires pour l'envoi et la réception de que demandes de conversion. Toutes ces classes sont contenues dans l'espace de noms Microsoft.Office.Server.PowerPoint.Conversion.

Classe de base Request

La classe Request est le plus fondamental au sein de l'espace de noms Microsoft.Office.Server.PowerPoint.Conversion. Tous les autres types dedemande — PresentationRequest, PictureRequest, PdfRequestet XpsRequest— hériter de celui-ci.

Tableau 1. Demander des membres de la classe de base

Nom du membre Description
méthode de BeginConvert(Microsoft.SharePoint.SPServiceContext, System.AsyncCallback, System.Object)
Commence l'opération de conversion. Le premier paramètre, serviceContext, spécifie le contexte du site SharePoint où se trouve le fichier à convertir. Utilisez le paramètre de rappel pour spécifier un délégué qui fait référence à une méthode à exécuter une fois l’opération terminée. Utilisez le paramètre state si vous avez besoin de transmettre des informations supplémentaires à partir du code d'appel à la méthode de rappel.
Renvoie un objet IAsyncResult .
méthode de EndConvert(IAsyncResult)
Fin de l'opération de conversion. Le paramètre result attend l’objet IAsyncResult obtenu que la demande de conversion BeginConvert correspondante retourne. Si ce type de demande n'est pas terminée lorsque EndConvert est appelée, le thread d'appel est bloqué jusqu'à ce que l'opération de conversion est terminée.
Ne retourne pas de valeur.

Classe PresentationRequest

La classe PresentationRequest, qui hérite de la classe Request, convertit un PowerPoint fichier de 97-2003 (.ppt) ou d'une présentation au Format de fichier Open XML (.pptx) vers un autre format de fichier de présentation. Dans le premier scénario mentionné ci-dessus, vous utilisez cette classe pour convertir d'anciens fichiers de présentation dans une bibliothèque de documents au format de présentation au Format de fichier Open XML.

La méthode constructeur de la classe PresentationRequest a trois paramètres obligatoires :

  • input : prend le fichier que vous souhaitez convertir en tant qu’objet Stream .

  • extension une chaîne qui spécifie l'extension de fichier du fichier en cours de conversion.

  • output : objet SPFileStream qui spécifie l’emplacement de stockage de la sortie.

La classe PresentationRequest possède une surcharge unique pour sa méthode constructeur qui ajoute un paramètre settings. Le paramètre settings accepte un objet PresentationSettings en tant qu'argument.

Pointe: Lors de la conversion de l’objet Stream de sortie en objet SPFile , vérifiez que l’extension donnée au fichier résultant correspond à l’extension du type de fichier souhaité (.ppt ou .pptx).

Classe PdfRequest

La classe PdfRequest, qui hérite également de la classe Request, convertit un PowerPoint fichier de 97-2003 (.ppt) ou d'une présentation au Format de fichier Open XML (.pptx) a.pdf fichier. Dans le deuxième scénario mentionné ci-dessus, vous utilisez cette classe pour convertir les présentations au format PDF.

La méthode de constructeur pour la classe PdfRequest a également trois paramètres obligatoires : entrée, extension et sortie, similaires à la classe PresentationRequest .

La classe PdfRequest a également une surcharge unique pour sa méthode constructeur qui ajoute un paramètre settings. Le paramètre settings accepte un objet FixedFormatSettings en tant qu'argument.

Pointe: Lors de la conversion de l’objet Stream de sortie en objet SPFile , vérifiez que l’extension donnée au fichier résultant correspond à l’extension du type de fichier souhaité (.pdf).

Classe PictureRequest

La classe PictureRequest, qui hérite également de la classe Request, convertit un PowerPoint 97-2003 (.ppt) de fichier ou présentation au Format de fichier Open XML (.pptx) à une collection de fichiers image au format the.jpg ou .png.

The constructor method for the PictureRequest class also has four required parameters. Les paramètres d’entrée, d’extension et de sortie sont similaires aux paramètres du constructeur de classe PresentationRequest . The constructor method for the PictureRequest class also has a required format parameter, which must be a constant from the PictureFormat enumeration.

La classe PictureRequest ne dispose pas des surcharges de sa méthode constructeur.

Astuce : la classe PictureRequest renvoie un flux contenant un package de fichiers image. Lors de la reconversion de l’objet Stream généré en objet SPFile, vérifiez que l’extension donnée au fichier résultant est .zip.

Génération d’une application PowerPoint Automation Services

Le moyen le plus simple pour montrer comment écrire du code qui utilise PowerPoint Automation Services consiste à créer une application console. Vous devez créer et exécuter l'application de console sur le SharePoint Server, et non sur un ordinateur client. Le code de démarrage des demandes de conversion est similaire, que le code de demande de conversion soit incorporé dans un composant WebPart, un flux de travail ou un gestionnaire d’événements. En utilisant la solution PowerPoint Automation Services à partir d’une application console, la procédure suivante montre comment utiliser l’API sans ajouter les complexités d’un composant WebPart, d’un gestionnaire d’événements ou d’un flux de travail.

Remarque

Étant donné que la solution PowerPoint Automation Services est un service de SharePoint, vous ne pouvez l’utiliser que dans une application s’exécutant directement sur SharePoint Server. Vous devez créer l'application comme un solution de batterie de serveurs. Vous ne pouvez pas utiliser PowerPoint Automation Services à partir d'un solution bac à sable.

Pour créer l’application

  1. Démarrez Microsoft Visual Studio 2012.

  2. Dans le menu fichier, pointez sur Nouveau, puis cliquez sur projet.

  3. Dans la boîte de dialogue Nouveau projet, sous installé, développez modèles, développez Visual c#, puis choisissez Windows.

  4. Dans la liste des modèles de projet, choisissez Application Console.

  5. N'oubliez pas que le projet dans Visual Studio cible .NET Framework 4.

    Remarque

    [!REMARQUE] Les versions précédentes du SharePoint Server nécessitaient que vous ciblez .NET Framework 3.5. Désormais, les bibliothèques Microsoft.SharePoint référencent des assemblys dans .NET Framework 4. Assurez-vous également que votre projet cible le total .NET Framework 4 et non le .NET Framework 4 Client Profile.

  6. Dans la zone nom, tapez le nom que vous souhaitez utiliser pour votre projet, par exemple PAS_Sample.

  7. Dans la zone Emplacement, entrez l'emplacement où vous souhaitez placer le projet.

  8. Cliquez sur OK pour créer la solution.

  9. Par défaut, Visual Studio 2012 crée des projets que processeurs x 86 cible, mais pour créer des applications SharePoint Server, vous devez cibler n'importe quelle UC.

    Si vous générez une application Microsoft Visual c#, dans L'Explorateur de solutions, droit sur le projet, puis cliquez sur Propriétés.

  • Dans la fenêtre Propriétés du projet, cliquez sur Générer.

  • Pointez sur la liste de Configuration et sélectionnez Toutes les Configurations.

  • Pointez sur la liste Plateforme cible, puis sélectionnez Any CPU.

    Si vous générez une Microsoft Visual Basic application .NET Framework, dans la fenêtre Propriétés, cliquez sur compiler.

  • Cliquez sur Options avancées de compilation.

  • Pointez sur la liste de Configuration et sélectionnez Toutes les Configurations.

  • Pointez sur la liste Plateforme cible, puis cliquez sur Any CPU.

  1. Dans le menu Projet, cliquez sur Ajouter la référence pour ouvrir la boîte de dialogue Ajouter la référence.

  2. Développez des assemblys et puis procédez comme suit :

  • Développez Framework et ajoutez une référence à System.Web.

  • Développer des Extensions et ajoutez une référence à Microsoft.SharePoint.

  1. Dans la boîte de dialogue Ajouter une référence , choisissez Parcourir, accédez à l’emplacement de l'Microsoft.Office.Server.PowerPoint.dll (l’emplacement par défaut est C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.Office.Server.PowerPoint\v4.0_15.0.0.0__71e9bce111e9429c), sélectionnez l’assembly, puis choisissez Ajouter.

Les exemples de code c# et Visual Basic suivants montrent une application simple PowerPoint Automation Services qui convertit un PowerPoint fichier 97-2003 (.ppt) dans le dossier Documents partagés d'un site SharePoint vers un fichier de format Open XML (.pptx) PowerPoint dans le même dossier.


using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Web;
using Microsoft.SharePoint;
using Microsoft.Office.Server.PowerPoint.Conversion;

namespace PAS_Sample
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                string siteURL = "http://localhost";
                using (SPSite site = new SPSite(siteURL))
                {
                    using (SPWeb web = site.OpenWeb())
                    {
                        Console.WriteLine("Begin conversion");

                        // Get a reference to the "Shared Documents" library
                        // and the presentation file to be converted.
                        SPFolder docs = web.Folders[siteURL +
                            "/Shared Documents"];
                        SPFile file = docs.Files[siteURL +
                            "/Shared Documents/Pres1.ppt"];

                        // Convert the file to a stream and create an
                        // SPFileStream object for the conversion output.
                        Stream fStream = file.OpenBinaryStream();
                        SPFileStream stream = new SPFileStream(web, 0x1000);

                        // Create the presentation conversion request.
                        PresentationRequest request = new PresentationRequest(
                            fStream,
                            ".ppt",
                            stream);

                        // Send the request synchronously, passing
                        // in a 'null' value for the callback parameter,
                        // and capturing the response in the result object.
                        IAsyncResult result = request.BeginConvert(
                            SPServiceContext.GetContext(site),
                            null,
                            null);

                        // Use the EndConvert method to get the result.
                        request.EndConvert(result);

                        // Add the converted file to the document library.
                        SPFile newFile = docs.Files.Add(
                            "newPres1.pptx",
                            stream,
                            true);
                        Console.WriteLine("Output: {0}", newFile.Url);

                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex.Message);
            }
            finally
            {
                Console.WriteLine("Complete");
                Console.ReadKey();
            }
        }
    }
}

Imports System
Imports System.Collections.Generic
Imports System.IO
Imports System.Linq
Imports System.Text
Imports System.Web
Imports Microsoft.SharePoint
Imports Microsoft.Office.Server.PowerPoint.Conversion

Namespace PAS_Sample
    Class Program
        Private Shared Sub Main(args As String())
            Try
                Dim siteURL As String = "http://localhost"
                Using site As New SPSite(siteURL)
                    Using web As SPWeb = site.OpenWeb()
                        Console.WriteLine("Begin conversion")

                        ' Get a reference to the "Shared Documents" library
                        ' and the presentation file to be converted.
                        Dim docs As SPFolder = web.Folders(siteURL + _
                            "/Shared Documents")
                        Dim file As SPFile = docs.Files(siteURL + _
                            "/Shared Documents/Pres1.ppt")

                        ' Convert the file to a stream and create an
                        ' SPFileStream object for the conversion output.
                        Dim fStream As Stream = file.OpenBinaryStream()
                        Dim stream As New SPFileStream(web, &H1000)

                        ' Create the presentation conversion request.
                        Dim request As New PresentationRequest(fStream, _
                            ".ppt",
                            stream)

                        ' Send the request synchronously, passing
                        ' in a Nothing value for the callback parameter,
                        ' and capturing the response in the result object.
                        Dim result As IAsyncResult = request.BeginConvert(_
                            SPServiceContext.GetContext(site), _
                            Nothing, _
                            Nothing)

                        ' Use the EndConvert method to get the result.
                        request.EndConvert(result)

                        ' Add the converted file to the document library.
                        Dim newFile As SPFile = docs.Files.Add(_
                            "newPres1.pptx", _
                            stream, _
                            True)

                        Console.WriteLine("Output: {0}", newFile.Url)
                    End Using
                End Using
            Catch ex As Exception
                Console.WriteLine("Error: " + ex.Message)
            Finally
                Console.WriteLine("Complete")
                Console.ReadKey()
            End Try
        End Sub
    End Class
End Namespace

Pour créer et exécuter l’exemple

  1. Ajouter un document PowerPoint nommé Pres1.ppt dans le dossier Documents partagés du site SharePoint.

  2. Générez et exécutez l'exemple.

  3. Après avoir attendu pour exécuter le processus de conversion d'une minute, accédez au dossier Documents partagés du site SharePoint et actualiser la page. La bibliothèque de documents contient désormais un nouveau document PowerPoint, Pres1.pptx.

La solution PowerPoint Automation Services sur SharePoint offre aux entreprises des fonctionnalités avancées pour la gestion de leurs fichiers de présentation. Cette solution très performante permet de manipuler et générer de façon évolutive une présentation côté serveur en tant que lot ou à la demande.

Remarque

Avant d’exécuter l’exemple, assurez-vous que la solution PowerPoint Automation Services a été activés dans la console Administration centrale de SharePoint.
Pour vérifier que la solution PowerPoint Automation Services est activée, procédez comme suit :

  • Dans la console d’administration centrale, sous Paramètres système, sélectionnez Gérer les services sur le serveur, puis assurez-vous que le Service de conversion PowerPoint est Démarré.
  • Toujours dans la console d’administration centrale, sous Gestion des applications, sélectionnez Gérer les applications de service, puis assurez-vous que l’application du service de conversion PowerPoint et le proxy de l’application du service de conversion PowerPoint sont Démarré.

Conclusion

La solution PowerPoint Automation Services sur SharePoint offre aux entreprises des fonctionnalités avancées pour la gestion de leurs fichiers de présentation. Cette solution très performante permet de manipuler et générer de façon évolutive une présentation côté serveur en tant que lot ou à la demande.

Voir aussi