Поделиться через


Службы автоматизации PowerPoint в SharePoint

Узнайте, как использовать службы автоматизации Microsoft PowerPoint для преобразования презентаций на сервере в различные форматы и из них.

Введение

Многие компании, крупных и мелких, используют их Microsoft SharePoint Server библиотек в качестве хранилища для презентаций Microsoft PowerPoint. Все эти предприятия имеют собственные конкретных нужд для хранения, распространение и обновление свои презентации. Службы автоматизации Microsoft PowerPoint — это новая функция Microsoft SharePoint, которая помогает управлять презентациями на предприятиях. Это общая служба, которая обеспечивает автоматическое преобразование презентаций на стороне сервера в альтернативные форматы. Он был разработан с самого начала работы на серверах и могут быть обработаны много файлов презентации в виде надежного и предсказуемым.

С помощью Службы автоматизации PowerPoint, можно преобразовать из формата двоичного файла PowerPoint (.ppt) и в PowerPoint формат файлов Open XML (PPTX-файл) в других форматах. Например может потребоваться обновление пакета PowerPoint 97 - 2003 файлов для файлов презентация Open XML. Можно также создать дополнительное действие в меню Правка, чтобы разрешить пользователям создавать версию PDF презентаций по запросу.

Примечание.

Службы автоматизации PowerPoint используют возможности и являются функцией SharePoint. Для использования служб автоматизации PowerPoint необходимо установить SharePoint. При использовании SharePoint в ферме серверов необходимо специально включить службы автоматизации PowerPoint.

Скрипты служб автоматизации PowerPoint

Ниже описаны несколько способов, Службы автоматизации PowerPoint можно использовать для автоматизации обработки презентаций на сервере:

  • Большое предприятие хранятся все их годовая прибыль презентаций в одну библиотеку документов на сайте интрасети. Библиотека содержит большое число презентаций, собранные за несколько лет. Как ИТ-отдел, где требуется реализовать для обновления всех файлов презентации в PowerPoint формате двоичных файлов 97 - 2003 (.ppt) в формат файлов презентация Open XML (PPTX-файл). Разработчик, используемая для выполнения преобразования решает развернуть решение на сервере, который будет выполнять итерацию по каждому из файлов в библиотеке, проверьте, является ли файл в формате .ppt и преобразование каждого PPT-файл в формате PPTX-файл.

  • Региональные отдела продаж предоставляет настраиваемые службы оценок для каждого из клиентов. Каждого продавца дается обзор их квот с клиентами в собрании, в лицо или online. После собрания, менеджер по продажам содержит копию предложения с расценками для клиента в виде PDF-файла. Отдел заключает соглашения поставщика для создания пользовательской команды в меню " Правка " для файлов PowerPoint, хранящиеся в библиотеке документов в их экстрасети. При выборе команды сервера запускает программу, который преобразует файл PowerPoint PDF-ФАЙЛ, расположенный в одной библиотеке.

Поддерживаемые форматы исходной презентации

Доступны следующие форматы презентации поддерживаемый источник для преобразования:

  • Презентация форматов Open XML формат файлов (PPTX-файл)

  • Презентация PowerPoint 97 - 2003 (.ppt)

Поддерживаемые форматы создаваемых документов

Поддерживаемые целевые форматы документов включают все поддерживаемые форматы исходных документов и следующее:

  • PPTX-файл (в формате презентации формат файлов open XML)

  • PDF

  • расширением XPS (open XML Paper Specification)

  • JPG

  • Рисунок в формате Portable Network Graphics

Ограничения служб автоматизации PowerPoint

Службы автоматизации PowerPoint не включает возможности для печати документов. Тем не менее он не вызывает затруднений для преобразования файлов PowerPoint презентации (PPT и PPTX-файл) в файл PDF или XPS и очереди их к принтеру.

API служб автоматизации PowerPoint

Чтобы использовать службы автоматизации PowerPoint, с помощью их программного интерфейса отправьте запрос на преобразование на сервер SharePoint. Для каждого преобразования запроса необходимо указать, какие файлы, которое требуется преобразовать и выходной формат задания преобразования. Для некоторых запросов на преобразование, также можно указать что преобразования типов контента, включая комментарии, скрытые слайды или свойств документа.

Службы автоматизации PowerPoint использует метод асинхронной модели для отправки и получения запросов на преобразование. Таким образом можно написать код, который продолжает выполняться после отправки запросов на преобразование. Если требуется отправлять уведомления для пользователей после завершения запросов на преобразование, можно указать делегата, который ссылается на метод обратного вызова для выполнения после завершения операции.

Примечание.

Дополнительные сведения о работе с шаблоном асинхронного проектирования см. в статье Общие сведения об асинхронном программировании.

В следующих разделах содержат ограниченный список классов, которые необходимы для отправки и получения запросами преобразования. Все эти классы содержатся в пространстве имен Microsoft.Office.Server.PowerPoint.Conversion.

Основной класс Request

Класс Request является основных классов в пространстве имен Microsoft.Office.Server.PowerPoint.Conversion. Все другие типызапроса — PresentationRequest, PictureRequest, PdfRequestи XpsRequest— от него.

Таблица 1. Запрос членов базового класса

Имя элемента Описание
метод BeginConvert(Microsoft.SharePoint.SPServiceContext, System.AsyncCallback, System.Object)
Начинает операцию преобразования. Первый параметр serviceContext указывает контекст сайта SharePoint, где находится файл для преобразования. Используйте параметр обратного вызова , чтобы указать делегат, ссылающийся на метод, выполняемый после завершения операции. Если нужно передать любые дополнительные сведения из кода, вызывающего метод обратного вызова, используйте параметр state.
Возвращает объект IAsyncResult .
метод EndConvert(IAsyncResult)
Завершает операцию преобразования. Параметр result ожидает результирующий объект IAsyncResult , возвращаемый соответствующим запросом на преобразование BeginConvert . Если этот запрос не был завершен при вызове EndConvert, вызывающий поток блокируется до завершения операции преобразования.
Не возвращает значение.

Класс PresentationRequest

Класс PresentationRequest, который наследует от класса Request, преобразует файл PowerPoint 97 - 2003 (.ppt) или презентаций формат файлов Open XML (PPTX-файл) в другой формат презентации. В первом случае уже было сказано этот класс используется для преобразования старые файлы презентаций в библиотеке документов в формате презентаций формат файлов Open XML.

Метод-конструктор для класса PresentationRequest содержит три требуемые параметры:

  • input — принимает файл, который требуется преобразовать в виде объекта Stream .

  • extension— строка, указывающая расширение файла преобразуемого файла.

  • output — объект SPFileStream , указывающий, где будут храниться выходные данные.

Класс PresentationRequest имеет один перегрузки для метода конструктора, добавляющий параметр settings. Параметр settings объект PresentationSettings принимает в качестве аргумента.

Совет: При преобразовании выходного объекта Stream обратно в объект SPFile убедитесь, что расширение, предоставленное результирующему файлу, соответствует расширению нужного типа файла (.ppt или .pptx).

Класс PdfRequest

Класс PdfRequest, который наследуется от класса Request, преобразует файл PowerPoint 97 - 2003 (.ppt) или презентаций формат файлов Open XML (PPTX-файл) в файл a.pdf. Во втором сценарии уже было сказано этот класс используется для преобразования в PDF-файлов презентаций.

Метод конструктора для класса PdfRequest также имеет три обязательных параметра: входные, расширения и выходные данные, аналогичные классу PresentationRequest .

Класс PdfRequest также имеет один перегрузки для метода конструктора, добавляющий параметр settings. Параметр settings объект FixedFormatSettings принимает в качестве аргумента.

Совет: При преобразовании выходного объекта Stream обратно в объект SPFile убедитесь, что расширение, заданное для результирующего файла, соответствует расширению нужного типа файла (.pdf).

Класс PictureRequest

Класс PictureRequest, который наследуется от класса Request, преобразует PowerPoint 97 - 2003 файла (.ppt) или презентаций формат файлов Open XML (PPTX-файл) в коллекцию файлы изображений в формате the.jpg или PNG.

Метод-конструктор для класса PictureRequest также имеет четыре требуемые параметры. Входные, расширенные и выходные параметры аналогичны параметрам конструктора класса PresentationRequest. Метод-конструктор для класса PictureRequest также имеет параметр необходимые format, должна быть константа из перечисления PictureFormat.

Класс PictureRequest имеет любой перегрузки метода конструктора.

Совет. класс PictureRequest возвращает поток, содержащий пакет файлов изображений. При преобразовании результирующего объекта Stream обратно в объект SPFile убедитесь, что созданному файлу присвоено расширение имени ZIP.

Создание приложения автоматизированных служб PowerPoint

Это самый простой способ показано, как писать код, использующий Службы автоматизации PowerPoint является создание консольного приложения. Необходимо построение и запуск консольного приложения на SharePoint Server, а не на клиентском компьютере. Для создания запросов на преобразование используется один и тот же код вне зависимости от того, встроен ли этот код в веб-часть, в рабочий процесс или в обработчик события. Как видно из следующей процедуры, при работе со службами автоматизации PowerPoint с помощью консольного приложения можно использовать API без сложностей, связанных с веб-частью,обработчиком событий или рабочим процессом.

Примечание.

Поскольку службы автоматизации PowerPoint являются службой SharePoint, вы можете использовать их только в приложении, которое работает непосредственно на сервере SharePoint. Необходимо создать приложение в качестве решение фермы. Нельзя использовать Службы автоматизации PowerPoint из изолированные решения.

Создание приложения

  1. Запустите приложение Microsoft Visual Studio 2012.

  2. В меню файл выберите команду Создать и затем выберите проект.

  3. В диалоговом окне Новый проект в разделе УстановленныеШаблоны, разверните узел Visual C# и выберите Windows.

  4. В списке шаблонов проектов выберите пункт Консольное приложение.

  5. Убедитесь, что проект в Visual Studio предназначен для .NET Framework 4.

    Примечание.

    [!Примечание] Предыдущие версии SharePoint Server требуется, предназначенных для .NET Framework 3.5. Теперь библиотек Microsoft.SharePoint ссылок на сборки в .NET Framework 4. Убедиться в том, что проект предназначен для полного .NET Framework 4 и не .NET Framework 4 профиля клиента.

  6. В поле имя введите имя, которое вы хотите использовать для проекта, например PAS_Sample.

  7. В поле Расположение укажите место для сохранения проекта.

  8. Нажмите кнопку ОК, чтобы создать решение.

  9. По умолчанию Visual Studio 2012 создаются проекты, процессоров x 86, но создавать SharePoint Server приложения, следует задать любой Процессор.

    При создании приложения Microsoft Visual C#, в Окне Обозреватель решений щелкните правой кнопкой мыши проект и выберите пункт Свойства.

  • В окне свойств проекта щелкните Построить.

  • Укажите на список конфигурации и выберите пункт Все конфигурации.

  • Укажите на список Целевая платформа и выберите Любой ЦП.

    При создании Microsoft Visual Basic приложения .NET Framework, в окне Свойства щелкните Компиляция.

  • Щелкните Дополнительные параметры компиляции.

  • Укажите на список конфигурации, а затем выберите Все конфигурации.

  • Укажите на список Целевая платформа и выберите Любой ЦП.

  1. В меню Проект выберите команду Добавить ссылку. Откроется диалоговое окно Добавление ссылки.

  2. Разверните узел сборки, а затем выполните следующее:

  • Разверните узел Framework, а затем добавьте ссылку на System.Web.

  • Разверните узел расширения, а затем добавьте ссылку на Microsoft.SharePoint.

  1. Кроме того, в диалоговом окне Добавление ссылки выберите Обзор, перейдите к расположению Microsoft.Office.Server.PowerPoint.dll (по умолчанию — C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.Office.Server.PowerPoint\v4.0_15.0.0.0__71e9bce111e9429c), выберите сборку и нажмите кнопку Добавить.

В следующих примерах C# и Visual Basic показано это приложение простого Службы автоматизации PowerPoint, преобразует PowerPoint файла 97 - 2003 (.ppt) в папке общих документов на сайте SharePoint для файла PowerPoint Open XML (PPTX-файл) в той же папке.


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

Создание и запуск примера

  1. Добавьте документ PowerPoint с именем Pres1.ppt в папку общих документов на сайте SharePoint.

  2. Постройте и запустите пример.

  3. Истечении одной минуты для запуска процесса преобразования, перейдите в папку "Общие документы" на сайте SharePoint и обновить страницу. Библиотека документов теперь содержит новый документ PowerPoint, Pres1.pptx.

Службы автоматизации PowerPoint в SharePoint предоставляют предприятиям расширенные возможности управления файлами презентаций. Это высокопроизводительное решение позволяет использовать выполняемые на сервере масштабируемые операции управления презентациями и их создания как в пакетном режиме, так и по запросу.

Примечание.

Перед запуском примера убедитесь в том, что службы автоматизации PowerPoint включены в консоли администрирования SharePoint.
Чтобы убедиться в том, что службы автоматизации PowerPoint включены, выполните указанные ниже действия.

  • В консоли центра администрирования в разделе Параметры системывыберите Управление службами на сервереи убедитесь в том, что Служба преобразования PowerPoint находится в состоянии Включено.
  • Кроме того, в консоли центра администрирования в разделе Управление приложениямивыберите Управление приложениями служби убедитесь в том, что Приложение службы преобразования PowerPoint и Прокси-сервер-приложения службы преобразования PowerPoint находятся в состоянии "Включено".

Заключение

Службы автоматизации PowerPoint в SharePoint предоставляют предприятиям расширенные возможности управления файлами презентаций. Это высокопроизводительное решение позволяет использовать выполняемые на сервере масштабируемые операции управления презентациями и их создания как в пакетном режиме, так и по запросу.

См. также