PowerPoint-Automatisierungsdienste in SharePointPowerPoint Automation Services in SharePoint

In diesem Artikel erfahren Sie, wie Sie mithilfe von Microsoft PowerPoint Automation Services Präsentationen serverseitig in verschiedene Dateiformate bzw. aus verschiedenen Dateiformaten konvertieren können.Learn to use Microsoft PowerPoint Automation Services to do server-side presentation conversions to and from a variety of file formats.

EinführungIntroduction

Viele Unternehmen unterschiedlichster Größe verwenden ihre Microsoft SharePoint Server-Bibliotheken als Repository für Microsoft PowerPoint-Präsentationen.Many businesses, large and small, use their Microsoft SharePoint Server libraries as a repository for Microsoft PowerPoint presentations. Dabei stellen sie alle jeweils eigene Anforderungen an die Speicherung, Verteilung und Aktualisierung der Präsentationen.These businesses all have their own particular needs for storing, distributing, and updating their presentations. Microsoft PowerPoint Automation Services ist ein neues Feature von Microsoft SharePoint, mit dem Unternehmen ihre Präsentationen verwalten können.Microsoft PowerPoint Automation Services is a new feature of Microsoft SharePoint that can help enterprises to manage their presentations. Es handelt sich um einen freigegebenen Dienst, der eine unbeaufsichtigte, serverseitige Konvertierung von Präsentationen in andere Formate ermöglicht.It is a shared service that provides unattended, server-side conversion of presentations into other formats. Er wurde speziell für die Ausführung auf Servern entwickelt und kann auch eine große Anzahl von Präsentationsdateien zuverlässig und vorhersehbar verarbeiten.It was designed from the outset to work on servers and can process many presentation files in a reliable and predictable manner.

Mit PowerPoint Automation Services können Sie das PowerPoint-Binärdateiformat (.ppt) und das PowerPoint-Open XML-Dateiformat (.pptx) in andere Formate konvertieren. Sie können beispielsweise mehrere PowerPoint 97-2003-Dateien in Open XML-Präsentationsdateien konvertieren. Sie können auch eine benutzerdefinierte Aktion im Menü Bearbeiten erstellen, damit Benutzer bei Bedarf eine PDF-Version ihrer Präsentationen erstellen können.Using PowerPoint Automation Services, you can convert from the PowerPoint binary file format (.ppt) and the PowerPoint Open XML file format (.pptx) to other formats. For example, you may want to upgrade a batch of PowerPoint 97-2003 files to Open XML presentation files. You could also create a custom action in the Edit menu to allow users to create a PDF version of presentations on demand.

Hinweis

PowerPoint Automation Services nutzt Funktionen von SharePoint und ist selbst ein Feature von SharePoint.PowerPoint Automation Services takes advantage of facilities of SharePoint and is a feature of it. Sie können PowerPoint Automation Services nur verwenden, wenn SharePoint installiert ist.You must have SharePoint installed to use PowerPoint Automation Services. Wenn Sie SharePoint in einer Serverfarm verwenden, müssen Sie PowerPoint Automation Services explizit aktivieren.If you are using SharePoint in a server farm, you must explicitly enable PowerPoint Automation Services.

Anwendungsszenarien für PowerPoint Automation ServicesPowerPoint Automation Services scenarios

Die folgenden Szenarien beschreiben einige Möglichkeiten der Verwendung von PowerPoint Automation Services zum Automatisieren der Präsentationsverarbeitung auf einem Server:The following scenarios describe a couple of ways that you can use PowerPoint Automation Services to automate processing presentations on a server:

  • Ein Großunternehmen speichert alle Präsentationen zum Gewinn in einer einzelnen Dokumentbibliothek auf einer Unternehmens-Intranetwebsite. Die Bibliothek enthält zahlreiche Präsentationen, die sich über die Jahre angesammelt haben. Die IT-Abteilung möchte alle Präsentationsdateien im PowerPoint 97-2003-Binärdateiformat (.ppt) in das Open XML-Präsentationsdateiformat (.pptx) umwandeln. Die diese Konvertierung durchführenden Entwickler möchten eine Lösung auf dem Server bereitstellen, die alle Dateien in der Bibliothek durchläuft, prüft, ob die Datei das PPT-Format aufweist, und anschließend eine solche Datei in das PPTX-Dateiformat umwandelt.A large enterprise stores all of their yearly earnings presentations in a single document library on a corporate intranet site. The library contains a large number of presentations that have accumulated over the years. The IT department wants to upgrade all of the presentation files in the PowerPoint 97-2003 binary file format (.ppt) to the Open XML presentation file format (.pptx). The developer who is performing the conversion decides to deploy a solution to the server that will iterate through each of the files in the library, check to see whether the file is in the .ppt format, and convert each .ppt file to the .pptx file format.

  • Eine regionale Vertriebsabteilung bietet maßgeschneiderte Kundendienstangebote für jeden einzelnen Kunden. Jeder Verkäufer überprüft zusammen mit dem Kunden seine Angebote in einem Meeting, entweder persönlich oder online. Nach dem Meeting stellt der Verkäufer eine Kopie des Angebots für den Kunden in Form einer PDF zur Verfügung. Die Abteilung beauftragt einen Anbieter damit, ein benutzerdefiniertes Verb im Menü Bearbeiten für die in einer Dokumentbibliothek in ihrem Extranet gespeicherten PowerPoint-Dateien zu erstellen. Durch Klicken auf das Verb führt der Server ein Programm aus, das die PowerPoint-Datei in eine in der gleichen Bibliothek gespeicherte PDF umwandelt.A regional sales department provides custom service estimates to each of their clients. Each salesperson reviews their quotes with clients in a meeting, either in-person or online. After the meeting, the salesperson provides a copy of the quote to the customer in the form of a PDF. The department hires a vendor to create a custom verb in the Edit menu for PowerPoint files stored in a document library in their extranet. When the verb is clicked, the server runs a program that converts the PowerPoint file to a PDF located in the same library.

Unterstützte Formate der QuellpräsentationSupported source presentation formats

Die folgenden Formate der Quellpräsentation werden bei der Konvertierung unterstützt:The supported source presentation formats for conversion are as follows:

  • Open XML-Präsentationsformat (.pptx)Open XML File Format presentation format (.pptx)

  • PowerPoint 97-2003-Präsentation (.ppt)PowerPoint 97-2003 presentation (.ppt)

Unterstützte Formate des ZieldokumentsSupported destination document formats

Die unterstützten Formate der Zieldokumente umfassen alle unterstützten Formate der Quelldokumente und die folgenden Formate:The supported destination document formats include all of the supported source document formats and the following:

  • .pptx (Open XML-Präsentationsformat).pptx (Open XML File Format presentation format)

  • .pdf.pdf

  • .xps (Open XML Paper Specification).xps (Open XML Paper Specification)

  • .jpg.jpg

  • .png (Portable Network Graphics Format).png (Portable Network Graphics Format)

Einschränkungen von PowerPoint Automation ServicesLimitations of PowerPoint Automation Services

PowerPoint Automation Services umfasst keine Funktionen zum Ausdrucken von Dokumenten. Es ist jedoch einfach, PowerPoint-Präsentationsdateien (.ppt und .pptx) in PDF- oder XPS-Dateien zu konvertieren, und sie an einen Drucker zu senden.PowerPoint Automation Services does not include capabilities for printing documents. However, it is straightforward to convert PowerPoint presentation files (.ppt and .pptx) to PDF or XPS and spool them to a printer.

PowerPoint Automation Services-APIPowerPoint Automation Services API

Wenn Sie PowerPoint Automation Services verwenden möchten, senden Sie über die Programmierschnittstelle des Features eine Konvertierungsanforderung an den SharePoint-Server.To use PowerPoint Automation Services, you use its programming interface to send a conversion request to the SharePoint server. In jeder Konvertierungsanforderung geben Sie an, welche Dateien konvertiert werden sollen und welches Ausgabeformat für den Konvertierungsauftrag gewünscht ist.For each conversion request, you specify which files you want to convert and the output format of the conversion job. In einigen Konvertierungsanforderungen können Sie zusätzlich angeben, welche Inhaltstypen konvertiert werden sollen, beispielsweise Kommentare, ausgeblendete Folien oder Dokumenteigenschaften.For some conversion requests, you can also specify what types of content is converted, including comments, hidden slides, or document properties.

PowerPoint Automation Services verwendet die asynchrone Mustermethode zum Senden und Empfangen von Konvertierungsanforderungen. Sie können somit einen Code schreiben, mit dem mit der Ausführung fortgefahren wird, nachdem eine Konvertierungsanforderung gesendet wurde. Wenn Sie die Benutzer über den Abschluss einer Konvertierungsanforderung benachrichtigen möchten, können Sie eine Stellvertretung angeben, die auf eine auszuführende Rückrufmethode verweist, sobald der Vorgang abgeschlossen ist.PowerPoint Automation Services uses the asynchronous pattern method for sending and receiving conversion requests. Thus, you can write code that continues to execute after a conversion request has been sent. If you need to provide notification to users after a conversion request has been completed, you can specify a delegate that references a callback method to execute when the operation completes.

Hinweis

Weitere Informationen zur Arbeit mit dem asynchronen Entwurfsmuster finden Sie in unserem Übersichtsartikel zum asynchronen Programmiermodell.For more information about how to work with the asynchronous design pattern, see the Asynchronous Programming Overview.

Die folgenden Abschnitte beinhalten eine eingeschränkte Liste von Klassen, die zum Senden und Empfangen von Konvertierungsanforderungen erforderlich sind. All diese Klassen sind im Microsoft.Office.Server.PowerPoint.Conversion-Namespace enthalten.The sections below contain a limited list of the classes that are necessary for sending and receiving a conversion requests. All of these classes are contained in the Microsoft.Office.Server.PowerPoint.Conversion namespace.

Request-BasisklasseRequest Base Class

Die Request-Klasse ist die grundlegendste Klasse im Microsoft.Office.Server.PowerPoint.Conversion-Namespace. Alle anderen request-Typen - PresentationRequest, PictureRequest, PdfRequest und XpsRequest - erben von dieser.The Request class is the most fundamental class within the Microsoft.Office.Server.PowerPoint.Conversion namespace. All of the otherrequest types— PresentationRequest, PictureRequest, PdfRequest, and XpsRequest—inherit from it.

Tabelle 1. Request-BasisklassenelementeTable 1. Request base class members

ElementnameMember name BeschreibungDescription
BeginConvert(Microsoft.SharePoint.SPServiceContext, System.AsyncCallback, System.Object)-MethodeBeginConvert(Microsoft.SharePoint.SPServiceContext, System.AsyncCallback, System.Object) method
Startet den Konvertierungsvorgang. Der erste Parameter, serviceContext, gibt den Kontext der SharePoint-Website an, auf der sich die zu konvertierende Datei befindet. Mit dem callback-Parameter können Sie einen Delegaten festlegen, der auf eine Methode verweist, die nach Abschluss des Vorgangs auszuführen ist. Verwenden Sie den state-Parameter, wenn weitere Informationen aus dem aufrufenden Code an die Rückrufmethode übergeben werden müssen. Begins the conversion operation. The first parameter, serviceContext, specifies the context of the SharePoint site where the file to be converted is located. Use the callback parameter to specify a delegate that references a method to execute once the operation has completed. Use the state parameter if you need to pass any additional information from the calling code to the callback method.
Gibt ein IAsyncResult -Objekt zurück.Returns an IAsyncResult object.
EndConvert(IAsyncResult)-MethodeEndConvert(IAsyncResult) method
Beendet den Konvertierungsvorgang. Der result-Parameter erwartet das resultierende IAsyncResult -Objekt, das von der entsprechenden BeginConvert-Konvertierungsanforderung zurückgegeben wird. Wenn diese Anforderung zum Zeitpunkt des Aufrufs von EndConvertnoch nicht abgeschlossen wurde, wird der aufrufende Thread blockiert, bis der Konvertierungsvorgang abgeschlossen ist. Ends the conversion operation. The result parameter expects the resulting IAsyncResult object that the corresponding BeginConvert conversion request returns. If that request has not been completed when EndConvert is called, the calling thread is blocked until the conversion operation is complete.
Gibt keinen Wert zurück.Does not return a value.

PresentationRequest-KlassePresentationRequest class

Die PresentationRequest-Klasse, die von der Request-Klasse erbt, wandelt eine PowerPoint 97-2003-Datei (.ppt) oder Open XML-Präsentationsdatei (.pptx) in ein anderes Dateiformat um. Im ersten oben erwähnten Szenario wird diese Klasse zum Konvertieren älterer Präsentationsdateien in einer Dokumentbibliothek in das Open XML-Präsentationsdateiformat verwendet.The PresentationRequest class, which inherits from the Request class, converts a PowerPoint 97-2003 file (.ppt) or Open XML File Format presentation (.pptx) to another presentation file format. In the first scenario mentioned above, you use this class to convert older presentation files in a document library to the Open XML File Format presentation format.

Die Konstruktormethode für die PresentationRequest-klasse verfügt über drei erforderliche Parameter:The constructor method for the PresentationRequest class has three required parameters:

  • input Wählt die Datei, die Sie in ein Stream -Objekt konvertiert möchten.input—Takes the file that you want to convert as a Stream object.

  • extension Eine Zeichenfolge, die die Dateierweiterung der zu konvertierenden Datei angibt.extension—A string that specifies the file extension of the file being converted.

  • output Ein SPFileStream-Objekt, das den Speicherort für die Ausgabe festlegt.output—An SPFileStream object that specifies where the output will be stored.

Die PresentationRequest-Klasse verfügt über eine Überladung für die Konstruktormethode, die einen settings-Parameter hinzufügt. Der settings-Parameter lässt ein PresentationSettings-Objekt als Argument zu.The PresentationRequest class has a single overload for its constructor method that adds a settings parameter. The settings parameter accepts a PresentationSettings object as an argument.

Tipp: Vergewissern Sie sich bei der Rückkonvertierung des Ausgabeobjekts des Typs Stream in ein Objekt des Typs SPFile, dass die Dateiendung der ausgegebenen Datei der Dateiendung des gewünschten Dateityps entspricht (.ppt oder .pptx).Tip: When converting the output Stream object back to an SPFile object, check that the extension given to the resulting file matches the extension of the file type that you want (.ppt or .pptx).

PdfRequest-KlassePdfRequest class

Die PdfRequest-Klasse, die auch von der Request-Klasse erbt, konvertiert eine PowerPoint 97-2003-Datei (.ppt) oder Open XML-Präsentationsdatei (.pptx.) in eine PDF-Datei. Im zweiten oben erwähnten Szenario wird diese Klasse zum Konvertieren von Präsentationen in PDF-Dateien verwendet.The PdfRequest class, which also inherits from the Request class, converts a PowerPoint 97-2003 file (.ppt) or Open XML File Format presentation (.pptx) to a.pdf file. In the second scenario mentioned above, you use this class to convert presentations to PDF files.

Die Konstruktormethode für die PdfRequest-Klasse verfügt, ähnlich wie die PresentationRequest-Klasse, ebenfalls über drei erforderliche Parameter: input, extension und output.The constructor method for the PdfRequest class also has three required parameters— input, extension, and output—similar to the PresentationRequest class.

Die PdfRequest-Klasse verfügt auch über eine Überladung für die Konstruktormethode, die einen settings-Parameter hinzufügt. Der settings-Parameter lässt ein FixedFormatSettings-Objekt als Argument zu.The PdfRequest class also has a single overload for its constructor method that adds a settings parameter. The settings parameter accepts a FixedFormatSettings object as an argument.

Tipp: Vergewissern Sie sich bei der Rückkonvertierung des Ausgabeobjekts des Typs Stream in ein Objekt des Typs SPFile, dass die Dateiendung der ausgegebenen Datei der Dateiendung des gewünschten Dateityps entspricht (.pdf).Tip: When converting the output Stream object back to an SPFile object, check that the extension given to the resulting file matches the extension of the file type that you want (.pdf).

PictureRequest-KlassePictureRequest class

Die PictureRequest-Klasse, die auch von der Request-Klasse erbt, wandelt eine PowerPoint 97-2003-Datei (.ppt) oder Open XML-Präsentationsdatei File (.pptx) in eine Auflistung von Bilddateien im JPG- oder PNG-Format um.The PictureRequest class, which also inherits from the Request class, converts a PowerPoint 97-2003 file (.ppt) or Open XML File Format presentation (.pptx) to a collection of image files in either the.jpg or .png format.

Die Konstruktormethode für die PictureRequest-Klasse verfügt ebenfalls über vier erforderliche Parameter. Die input-, extension- und output-Parameter ähneln den Parametern für den PresentationRequest-Klassenkonstruktor. Die Konstruktormethode für die PictureRequest-Klasse verfügt auch über einen erforderlichen format-Parameter, der eine Konstante aus der PictureFormat-Enumeration sein muss.The constructor method for the PictureRequest class also has four required parameters. The input, extension, and output parameters are similar to the parameters for the PresentationRequest class constructor. The constructor method for the PictureRequest class also has a required format parameter, which must be a constant from the PictureFormat enumeration.

Die Klasse PictureRequest hat keine Überladungen für ihre Konstruktormethode.The PictureRequest class does not have any overloads for its constructor method.

Tipp: Die Klasse PictureRequest gibt einen Datenstrom mit einem Paket von Bilddateien zurück.Tip: The PictureRequest class returns a stream that contains a package of image files. Vergewissern Sie sich bei der Rückkonvertierung des Ausgabeobjekts des Typs Stream in ein Objekt des Typs SPFile, dass die ausgegebene Datei die Dateiendung „.zip“ hat.When converting the output Stream object back to an SPFile object, check that the extension given to the resulting file is .zip.

Erstellen einer PowerPoint Automation Services-AnwendungBuilding a PowerPoint Automation Services application

Am einfachsten kann das Schreiben von Code, der PowerPoint Automation Services verwendet, anhand der Erstellung einer Konsolenanwendung veranschaulicht werden. Sie müssen die Konsolenanwendung auf dem SharePoint Server, und nicht auf einem Clientcomputer erstellen und ausführen. Der Code zum Starten von Konvertierungsanforderung weicht, abhängig davon, ob der Konvertierungsanforderungscode in einem Webpart, einem Workflow oder einem Ereignishandler integriert ist, nur gering ab. In der folgenden Vorgehensweise wird dargestellt, wie eine API bei der Verwendung von PowerPoint Automation Services aus einer Konsolenanwendung ohne zusätzliche Komplexität eines Webparts, eines Ereignishandlers oder eines Workflows verwendet werden kann.The easiest way to show how to write code that uses PowerPoint Automation Services is to build a console application. You must build and run the console application on the SharePoint Server, not on a client computer. The code to start conversion requests is similar whether the conversion request code is incorporated into a web part, a workflow, or an event handler. By using PowerPoint Automation Services from a console application, the following procedure shows how to use the API without adding the complexities of a web part, an event handler, or a workflow.

Hinweis

Da PowerPoint Automation Services ein SharePoint-Dienst ist, können Sie das Feature nur in Anwendungen verwenden, die direkt unter SharePoint Server ausgeführt werden.Because PowerPoint Automation Services is a service of SharePoint, you can use it only in an application that runs directly on a SharePoint Server. Die Anwendung muss als Farmlösung erstellt werden.You must build the application as a farm solution. PowerPoint Automation Services lässt sich nicht in Sandkastenlösungen einsetzen.You cannot use PowerPoint Automation Services from a sandboxed solution.

So erstellen Sie die AnwendungTo build the application

  1. Starten Sie Microsoft Visual Studio 2012.Start Microsoft Visual Studio 2012.

  2. Zeigen Sie im Menü Datei auf Neu, und wählen Sie dann Projekt.On the File menu, point to New, and then choose Project.

  3. Erweitern Sie im Dialogfenster Neues Projekt unter Installiert Vorlagen, erweitern Sie Visual C#, und wählen Sie dann Windows.In the New Project dialog box, under Installed, expand Templates, expand Visual C#, and then chose Windows.

  4. Wählen Sie in der Liste der Projektvorlagen KonsolenanwendungIn the list of project templates, choose Console Application.

  5. Vergewissern Sie sich, dass das Visual Studio-Projekt auf .NET Framework 4 verweist.Be sure that the project in Visual Studio targets .NET Framework 4.

    Hinweis

    Beim Einsatz früherer SharePoint Server-Versionen musste auf .NET Framework 3.5 verwiesen werden.Previous versions of SharePoint Server required that you target .NET Framework 3.5. Jetzt verweisen die Microsoft.SharePoint-Bibliotheken auf Assemblys in .NET Framework 4.The Microsoft.SharePoint libraries now reference assemblies in .NET Framework 4. Stellen Sie außerdem sicher, dass das Projekt auf die Vollversion von .NET Framework 4 verweist, nicht auf das .NET Framework 4 Client Profile.Also make sure that your project targets the full .NET Framework 4 and not the .NET Framework 4 Client Profile.

  6. Geben Sie in das Feld Name den gewünschten Namen für das Projekt ein, zum Beispiel „PAS_Sample“.In the Name box, type the name that you want to use for your project, such as PAS_Sample.

  7. Geben Sie im Feld Speicherort den Speicherort ein, an dem das Projekt abgelegt werden soll.In the Location box, type the location where you want to place the project.

  8. Klicken Sie zum Erstellen der Projektmappe auf OK.Click OK to create the solution.

  9. Standardmäßig erstellt Visual Studio 2012 Projekte, die auf x86-CPUs abzielen, zum Erstellen von SharePoint Server-Anwendungen muss jedoch auf alle CPUs abgezielt werden.By default, Visual Studio 2012 creates projects that target x86 CPUs, but to build SharePoint Server applications, you must target any CPU.

    Klicken Sie beim Erstellen einer Microsoft Visual C#-Anwendung im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, und klicken Sie dann auf Eigenschaften.If you are building a Microsoft Visual C# application, in Solution Explorer, right-click the project, and then click Properties.

  • Klicken Sie im Projektfenster Eigenschaften auf BuildIn the project Properties window, click Build.

  • Zeigen Sie auf die Liste Konfiguration, und wählen Sie Alle Konfigurationen.Point to the Configuration list, and select All Configurations.

  • Zeigen Sie auf die Liste Zielplattform, und wählen Sie Alle CPUs.Point to the Platform Target list, and select Any CPU.

    Klicken Sie beim Erstellen einer Microsoft Visual Basic .NET Framework-Anwendung im Fenster Eigenschaften auf Kompilieren.If you are building a Microsoft Visual Basic .NET Framework application, in the Properties window, click Compile.

  • Klicken Sie auf Erweiterte Kompilierungsoptionen.Click Advanced Compile Options.

  • Zeigen Sie auf die Liste Konfiguration, und wählen Sie Alle Konfigurationen.Point to the Configuration list, and then select All Configurations.

  • Zeigen Sie auf die Liste Zielplattform, und klicken Sie dann auf Alle CPUs.Point to the Platform Target list, and then click Any CPU.

  1. Klicken Sie im Menü Projekt auf Verweis hinzufügen, um das Dialogfeld Verweis hinzufügen zu öffnen.On the Project menu, click Add Reference to open the Add Reference dialog box.

  2. Erweitern Sie Assemblys, und führen Sie die folgenden Aktionen durch:Expand Assemblies, and then do the following:

  • Erweitern Sie Framework, und fügen Sie dann einen Verweis auf System.Web hinzu.Expand Framework, and then add a reference to System.Web.

  • Erweitern Sie Erweiterungen, und fügen Sie dann einen Verweis auf Microsoft.SharePoint hinzu.Expand Extensions, and then add a reference to Microsoft.SharePoint.

  1. Wählen Sie im Dialogfenster Verweis hinzufügen Durchsuchen, navigieren Sie zum Speicherort für die Datei „Microsoft.Office.Server.PowerPoint.dl" (standardmäßig ist dies C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.Office.Server.PowerPoint\v4.0_15.0.0.0__71e9bce111e9429c), wählen Sie die Assembly aus, und wählen Sie dann Hinzufügen.Also in the Add Reference dialog box, choose Browse, navigate to the location for the Microsoft.Office.Server.PowerPoint.dll (default location is C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.Office.Server.PowerPoint\v4.0_15.0.0.0__71e9bce111e9429c), select the assembly, and then choose Add.

Die folgenden C#- und Visual Basic-Beispiele zeigen eine einfache PowerPoint Automation Services-Anwendung, die eine PowerPoint 97-2003-Datei (.ppt) im Ordner „Freigegebene Dokumente" einer SharePoint-Website in eine PowerPoint Open XML-Datei (.pptx) im gleichen Ordner konvertiert.The following C# and Visual Basic examples show a simple PowerPoint Automation Services application that converts a PowerPoint 97-2003 file (.ppt) in the Shared Documents folder of a SharePoint site to a PowerPoint Open XML file (.pptx) in the same folder.


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

So erstellen Sie das Beispiel und führen es ausTo build and run the example

  1. Fügen Sie ein PowerPoint-Dokument mit dem Namen Pres1.ppt zum Ordner „Freigegebene Dokumente" auf der SharePoint-Website hinzu.Add a PowerPoint document named Pres1.ppt to the Shared Documents folder in the SharePoint site.

  2. Erstellen Sie das Beispiel, und führen Sie es aus.Build and run the example.

  3. Warten Sie eine Minute ab, bis der Konvertierungsprozess ausgeführt wird, navigieren Sie zum Ordner „Freigegebene Dokumente" auf einer SharePoint-Website, und aktualisieren Sie die Seite. Die Dokumentbibliothek enthält nun ein neues PowerPoint-Dokument, Pres1.pptx.After waiting one minute for the conversion process to run, navigate to the Shared Documents folder in the SharePoint site, and refresh the page. The document library now contains a new PowerPoint document, Pres1.pptx.

Das SharePoint-Feature PowerPoint Automation Services gibt Unternehmen erweiterte Funktionen für die Verwaltung von Präsentationsdateien an die Hand.PowerPoint Automation Services on SharePoint provides businesses with advanced capabilities for managing their presentation files. Die hochleistungsfähige Lösung ermöglicht eine skalierbare, serverseitige Verarbeitung oder Generierung von Präsentationsdateien, entweder batchbasiert oder bedarfsbasiert.This high-performance solution allows scalable, server-side presentation manipulation and generation, as a batch or on-demand.

Hinweis

Stellen Sie vor der Ausführung des Beispielcodes sicher, dass PowerPoint Automation Services in der Konsole der SharePoint-Zentraladministration aktiviert ist.Before you run the example, make sure that PowerPoint Automation Services has been enabled in the SharePoint Central Administration console.
Sie können wie folgt überprüfen, ob PowerPoint Automation Services aktiviert ist:To verify that PowerPoint Automation Services is enabled, do the following:

  • Wählen Sie in der Zentraladministrationskonsole unter Systemeinstellungen Dienste auf dem Server verwalten, und vergewissern Sie sich dann, dass der PowerPoint-Konvertierungsdienst auf Gestartet festgelegt ist.In the Central Administration console, under System Settings, choose Manage services on server, and then make sure that the PowerPoint Conversion Service is set to Started.
  • Wählen Sie in der Zentraladministrationskonsole unter Anwendungsverwaltung Dienstanwendungen verwalten, und vergewissern Sie sich dann, dass die PowerPoint-Konvertierungsdienstanwendung und der Proxy der PowerPoint-Konvertierungsdienstanwendung auf „Gestartet" festgelegt sind.Also in the Central Administration console, under Application Management, choose Manage service applications, and then make sure that the PowerPoint Conversion Service Application and PowerPoint Conversion Service Application Proxy are set to Started.

SchlussbemerkungConclusion

Das SharePoint-Feature PowerPoint Automation Services gibt Unternehmen erweiterte Funktionen für die Verwaltung von Präsentationsdateien an die Hand.PowerPoint Automation Services on SharePoint provides businesses with advanced capabilities for managing their presentation files. Die hochleistungsfähige Lösung ermöglicht eine skalierbare, serverseitige Verarbeitung oder Generierung von Präsentationsdateien, entweder batchbasiert oder bedarfsbasiert.This high-performance solution allows scalable, server-side presentation manipulation and generation, as a batch or on-demand.

Siehe auchSee also