Compartilhar via


Serviços de Automação do PowerPoint no SharePoint

Saiba como usar os Serviços de Automação do PowerPoint para fazer conversões de apresentação no servidor para e de uma variedade de formatos de arquivos.

Introdução

Muitas empresas grandes e médias, usam suas bibliotecas Microsoft SharePoint Server como um repositório para apresentações Microsoft PowerPoint. Essas empresas todos têm suas próprias necessidades específicas para armazenar, distribuir e atualizar suas apresentações. Os Serviços de Automação do PowerPoint são um novo recurso do Microsoft SharePoint que ajuda as empresas a gerenciar suas apresentações. É um serviço compartilhado que oferece conversão autônoma do servidor, de apresentações em outros formatos. Ele foi projetado desde o início trabalhem nos servidores e pode processar vários arquivos de apresentação de maneira confiável e previsível.

Usando os Serviços de Automação do PowerPoint, você pode converter do formato de arquivo binário do PowerPoint (.ppt) e do formato de arquivo XML Aberto do PowerPoint (.pptx) em outros formatos. Por exemplo, você pode querer atualizar um lote de arquivos do PowerPoint 97-2003 para Abrir arquivos de apresentação XML. Você também pode criar uma ação personalizada no menu Editar para permitir que os usuários criem uma versão EM PDF de apresentações sob demanda.

Observação

Os Serviços de Automação do PowerPoint aproveitam as instalações do SharePoint e é um recurso dele. Você deve ter o SharePoint instalado para usar os Serviços de Automação do PowerPoint. Se você estiver usando o SharePoint em um farm de servidores, deverá habilitar explicitamente os Serviços de Automação do PowerPoint.

Cenários dos Serviços de Automação do PowerPoint

Os cenários a seguir descrevem algumas maneiras que você pode usar PowerPoint Automation Services para automatizar o apresentações de processamento em um servidor:

  • Uma grande empresa armazena todas as suas apresentações de lucro anual em uma única biblioteca de documentos em um site de intranet corporativa. A biblioteca contém um grande número de apresentações que se acumularam ao longo dos anos. O departamento de TI deseja atualizar todos os arquivos de apresentação no formato de arquivo binário do PowerPoint 97-2003 (.ppt) para o formato de arquivo de apresentação Open XML (.pptx). O desenvolvedor que está executando a conversão decide implantar uma solução no servidor que iterará por meio de cada um dos arquivos na biblioteca, verifique se o arquivo está no formato .ppt e converta cada arquivo .ppt no formato de arquivo .pptx.

  • Um departamento de vendas regional fornece estimativas de serviço personalizado a cada um dos seus clientes. Cada vendedor analisa suas aspas com clientes em uma reunião, pessoalmente ou online. Após a reunião, vendedor fornece uma cópia da citação ao cliente em formato PDF. O departamento contrata um fornecedor para criar um verbo personalizado no menu Editar para arquivos do PowerPoint armazenada em uma biblioteca de documentos em sua extranet. Quando o verbo é clicado, o servidor executa um programa que converte o arquivo do PowerPoint em PDF localizado na mesma biblioteca.

Formatos de apresentação de fonte com suporte

Os formatos de apresentação de fonte com suporte para conversão são:

  • Formato de apresentação de formato de arquivo XML aberto (. pptx)

  • apresentação de PowerPoint 97 - 2003 (. ppt)

Os formatos de documentos de destino com suporte

Os formatos de documentos de destino com suporte incluem todos os formatos de documentos de origem com suporte e o seguinte:

  • . pptx (formato de apresentação de formato de arquivo do open XML)

  • .pdf

  • . XPS (open XML Paper Specification)

  • .jpg

  • PNG Portable Network Graphics Format

Limitações dos Serviços de Automação do PowerPoint

Os Serviços de Automação do PowerPoint não incluem recursos para impressão de documentos. No entanto, é simples converter arquivos de apresentação do PowerPoint (.ppt e .pptx) em PDF ou XPS e carreá-los em uma impressora.

API dos Serviços de Automação do PowerPoint

Para usar os Serviços de Automação do PowerPoint, use sua interface de programação para enviar uma solicitação de conversão para o servidor do SharePoint. Para cada solicitação de conversão, especifique quais arquivos que você deseja converter e o formato de saída do trabalho de conversão. Para algumas solicitações de conversão, você também pode especificar quais tipos de conteúdo for convertido, incluindo comentários, os slides ocultos ou propriedades do documento.

PowerPoint Automation Services usa o método padrão assíncrono para envio e recebimento de solicitações de conversão. Assim, você pode escrever código que continua a executar depois que uma solicitação de conversão foi enviada. Se você precisar fornecer notificações aos usuários depois que uma solicitação de conversão foi concluída, você pode especificar um representante que faz referência a um método de retorno de chamada a ser executada quando a operação for concluída.

Observação

Para obter mais informações sobre como trabalhar com o padrão de design assíncrono, consulte a Visão geral de programação assíncrona.

As seções a seguir contêm uma lista limitada das classes que são necessárias para envio e recebimento de que solicitações de uma conversão. Todas essas classes estão contidas no namespace Microsoft.Office.Server.PowerPoint.Conversion.

Classe Request Base

A classe Request é a classe mais fundamental no namespace da Microsoft.Office.Server.PowerPoint.Conversion. Todos os outros tipos desolicitação de — PresentationRequest, PictureRequest, PdfRequeste XpsRequest— herdar a partir dele.

Tabela 1. Solicitar membros da classe base

Nome do membro Descrição
método BeginConvert(Microsoft.SharePoint.SPServiceContext, System.AsyncCallback, System.Object)
Começa a operação de conversão. O primeiro parâmetro, serviceContext, especifica o contexto do site do SharePoint em que o arquivo a ser convertido está localizado. Use o parâmetro de retorno de chamada para especificar um delegado que faz referência a um método a ser executado depois que a operação for concluída. Use o parâmetro state se você precisar passar qualquer informação adicional de código de chamada para o método de retorno de chamada.
Retorna um objeto IAsyncResult .
método EndConvert(IAsyncResult)
Termina a operação de conversão. O parâmetro de resultado espera o objeto IAsyncResult resultante que a solicitação de conversão BeginConvert correspondente retorna. Se essa solicitação não foi concluída quando EndConvert é chamado, o thread de chamada está bloqueado até que a operação de conversão seja concluída.
Não retorna um valor.

Classe PresentationRequest

A classe PresentationRequest , que herda da classe Request , converte um arquivo do PowerPoint 97-2003 (.ppt) ou apresentação de Formato de Arquivo XML Aberto (.pptx) em outro formato de arquivo de apresentação. No primeiro cenário mencionado acima, você usa essa classe para converter arquivos de apresentação mais antigos em uma biblioteca de documentos para o formato de apresentação Open XML File Format.

O método construtor para a classe PresentationRequest tem três parâmetros obrigatórios:

  • input — Usa o arquivo que você deseja converter como um objeto Stream .

  • extension uma cadeia de caracteres que especifica a extensão de arquivo do arquivo sendo convertido.

  • output — um objeto SPFileStream que especifica onde a saída será armazenada.

A classe PresentationRequest tem uma sobrecarga de única para seu método de construtor que adiciona um parâmetro settings. O parâmetro settings aceita um objeto PresentationSettings como um argumento.

Ponta: Ao converter o objeto Stream de saída de volta em um objeto SPFile , verifique se a extensão dada ao arquivo resultante corresponde à extensão do tipo de arquivo desejado (.ppt ou .pptx).

Classe PdfRequest

A classe PdfRequest , que também herda da classe Request , converte um arquivo do PowerPoint 97-2003 (.ppt) ou apresentação de Formato de Arquivo XML Aberto (.pptx) em a.pdf arquivo. No segundo cenário mencionado acima, você usa essa classe para converter apresentações em arquivos PDF.

O método de construtor da classe PdfRequest também tem três parâmetros necessários: entrada, extensão e saída, semelhantes à classe PresentationRequest .

A classe PdfRequest também tem uma única sobrecarga para seu método de construtor que adiciona um parâmetro settings. O parâmetro settings aceita um objeto FixedFormatSettings como um argumento.

Ponta: Ao converter o objeto Stream de saída de volta em um objeto SPFile , verifique se a extensão dada ao arquivo resultante corresponde à extensão do tipo de arquivo que você deseja (.pdf).

Classe PictureRequest

A classe de PictureRequest, que também é herdada da classe Request, converte um PowerPoint 97 - 2003 arquivo (. ppt) ou apresentação de formato de arquivo do Open XML (. pptx) a uma coleção de arquivos de imagem no formato the.jpg ou. PNG.

The constructor method for the PictureRequest class also has four required parameters. Os parâmetros de entrada, extensão e saída são semelhantes aos parâmetros do construtor da classe PresentationRequest . The constructor method for the PictureRequest class also has a required format parameter, which must be a constant from the PictureFormat enumeration.

A classe PictureRequest não tem nenhum sobrecargas para seu método de construtor.

Dica: a classe PictureRequest entrega um fluxo que contém um conjunto de arquivos de imagem. Ao converter o objeto de saída Stream de volta para um objeto de SPFile, verifique se a extensão dada ao arquivo resultante é .zip.

Compilar um aplicativo dos Serviços de Automação do PowerPoint

A maneira mais fácil para mostrar como escrever código que usa PowerPoint Automation Services é criar um aplicativo de console. Você deve criar e executar o aplicativo de console, no SharePoint Server, não em um computador cliente. O código para iniciar as solicitações de conversão é parecido, seja o código de solicitação de conversão incorporado a uma web part, um fluxo de trabalho ou um manipulador de eventos. Usando os Serviços de Automação do PowerPoint a partir de um aplicativo de console, o procedimento a seguir mostra como usar a API sem aumentar a complexidade de uma web part, um manipulador de eventos ou um fluxo de trabalho.

Observação

Como os Serviços de Automação do PowerPoint são um serviço do SharePoint, você pode usá-los somente em um aplicativo executado diretamente em um servidor do SharePoint. Você deve criar o aplicativo como um farm solution. Você não pode usar PowerPoint Automation Services de um soluçăo em área restrita.

Para compilar o aplicativo

  1. Inicie Microsoft Visual Studio 2012.

  2. No menu arquivo, aponte para novo e, em seguida, selecione o projeto.

  3. Na caixa de diálogo Novo projeto, em Installed, expanda modelos, expanda Visual c# e escolha Windows.

  4. Na lista de modelos de projeto, escolha o Aplicativo de Console.

  5. Certifique-se de que o projeto na Visual Studio refere-se .NET Framework 4.

    Observação

    As versões anteriores do SharePoint Server exigiam que você direcionasse .NET Framework 3.5. As bibliotecas do Microsoft.SharePoint agora fazem referência a assemblies no .NET Framework 4. Certifique-se também de que seu projeto tenha como destino o .NET Framework 4 completo e não o perfil de cliente .NET Framework 4.

  6. Na caixa nome, digite o nome que você deseja usar para o seu projeto, como PAS_Sample.

  7. Na caixa local, digite o local onde você deseja colocar o projeto.

  8. Clique em OK para criar a solução.

  9. Por padrão, Visual Studio 2012 cria projetos que CPUs x86 de destino, mas para criar aplicativos SharePoint Server, devem ser direcionados qualquer CPU.

    Se você estiver criando um aplicativo Microsoft Visual c#, no Solution Explorer, clique com botão direito do projeto e, em seguida, clique em Propriedades.

  • Na janela de Propriedades do projeto, clique em criar.

  • Aponte para a lista de configuração e selecione Todas as configurações.

  • Aponte para a lista de Alvos de plataforma e selecione Any CPU.

    Se você estiver criando um Microsoft Visual Basic aplicativo .NET Framework, na janela Propriedades, clique em Compilar.

  • Clique em Compilar opções avançadas.

  • Aponte para a lista de configuração e selecione Todas as configurações.

  • Aponte para a lista de Alvos de plataforma e, em seguida, clique em Qualquer CPU.

  1. No menu projeto, clique em Adicionar referência para abrir a caixa de diálogo Adicionar referência.

  2. Expanda Assemblies e faça o seguinte:

  • Expanda Framework e, em seguida, adicione uma referência ao System. Web.

  • Expanda extensões e, em seguida, adicione uma referência ao Microsoft. SharePoint.

  1. Também na caixa de diálogo Adicionar Referência , escolha Procurar, navegue até o local do Microsoft.Office.Server.PowerPoint.dll (o local padrão é C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.Office.Server.PowerPoint\v4.0_15.0.0.0__71e9bce111e9429c), selecione o assembly e escolha Adicionar.

Os seguintes exemplos de c# e Visual Basic mostram um aplicativo simples PowerPoint Automation Services que converte um PowerPoint arquivo 97 - 2003 (. ppt) na pasta de documentos compartilhados de um site do SharePoint para um arquivo de Open XML (. pptx) PowerPoint na mesma pasta.


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

Para compilar e executar um exemplo

  1. Adicione um documento de PowerPoint chamado Pres1.ppt para a pasta de documentos compartilhados no site do SharePoint.

  2. Criar e executar o exemplo.

  3. Após um minuto executar o processo de conversão, navegue até a pasta de documentos compartilhados no site do SharePoint e atualize a página. Agora, a biblioteca de documentos contém um novo documento do PowerPoint, Pres1.pptx.

Os Serviços de Automação do PowerPoint no SharePoint fornecem às empresas recursos avançados para gestão de seus arquivos de apresentação. Essa solução de alto desempenho permite a geração e manipulação de apresentações dimensionáveis no servidor, como um lote ou por demanda.

Observação

Antes de executar o exemplo, certifique-se de que os Serviços de Automação do PowerPoint tenham sido habilitados no console de Administração Central do SharePoint.
Para verificar se os Serviços de Automação do PowerPoint estão habilitados, siga este procedimento:

  • No console de Administração Central, em Configurações do Sistema, escolha Gerenciar serviços no servidor e, em seguida, certifique-se de que osServiços de Conversão do PowerPoint estejam definidos como Iniciado.
  • Além disso, no console de Administração Central, em Gerenciamento de Aplicativos, escolha Gerenciar aplicativos de serviço, e certifique-se de que o Aplicativo de Serviço Conversão do PowerPoint e Proxy do Aplicativo de Serviço de Conversão do PowerPoint estejam definidos como Iniciado.

Conclusão

Os Serviços de Automação do PowerPoint no SharePoint fornecem às empresas recursos avançados para gestão de seus arquivos de apresentação. Essa solução de alto desempenho permite a geração e manipulação de apresentações dimensionáveis no servidor, como um lote ou por demanda.

Confira também