Como converter páginas do SharePoint em arquivos PDF

Por Luiz Antonio Sgargeta
Como converter páginas do SharePoint em arquivos PDF

Nesta postagem, mostramos como você pode usar o Power Automate para converter páginas modernas do SharePoint em arquivos PDF e salvá-los em uma biblioteca de documentos.

O que você precisará

  • Uma biblioteca moderna de páginas de sites do SharePoint
  • Um local do OneDrive para armazenar temporariamente as saídas da página do SharePoint
  • Power Automate para criar a automação
  • Uma biblioteca de documentos para armazenar os arquivos PDF de saída

Nota sobre a biblioteca de páginas do site

No meu exemplo, eu não queria que todas as páginas do site fossem convertidas em arquivos PDF, então adicionei uma coluna de escolha para ‘marcar’ todas as páginas que deveriam ser convertidas. Eu defino o valor padrão da coluna de escolha como ‘Página do site’, para que as únicas páginas convertidas sejam aquelas em que estou interessado. Isso se reflete no fluxo abaixo com a etapa de condição.

Construindo o fluxo

A ação do gatilho para nosso fluxo é quando um arquivo é criado ou modificado (somente propriedades)  Isso nos permite executar novamente o fluxo quando as páginas do SharePoint são atualizadas para também atualizar os arquivos PDF.

  • Selecione o site que você está usando para criar as páginas do SharePoint no endereço do site (se você não o vir listado, basta pressionar inserir o valor personalizado e colar o URL)
  • Selecione a biblioteca de páginas do site sob o nome da biblioteca

Condição

Em seguida, adicionei uma condição para converter apenas as páginas marcadas como ‘Runbook’ em PDF.

  • Nota: certifique-se de selecionar o conteúdo dinâmico Valor para sua coluna de escolha, em vez da própria coluna de escolha, pois isso interromperá seu fluxo.

API REST

Se sim, a próxima é enviar uma solicitação HTTP para a etapa do SharePoint. Aqui estou usando uma chamada de API REST para obter o conteúdo do corpo da página do SharePoint.

  • Defina o endereço do site para o site em questão
  • Defina o método como GET
  • Digite o seguinte em Uri:_api/web/lists/GetByTitle(‘Site%20Pages’)/items(‘ID’)/CanvasContent1
  • Substitua ‘ID’ pelo ID de conteúdo dinâmico da etapa quando um arquivo é criado ou modificado

JSON

Usei a etapa de análise JSON para remover a marcação indesejada e apenas obter o texto simples do conteúdo do corpo.

  • Adicionei o conteúdo dinâmico do corpo da etapa enviar uma solicitação HTTP para o SharePoint no campo de conteúdo na etapa JSON de análise
  • Copiei o corpo de saída de enviar uma solicitação HTTP para o SharePoint de uma execução bem-sucedida no histórico de fluxo e colei-o na etapa de análise JSON

Em seguida, pressionei gerar a partir da amostra, que gerou o seguinte

{
    "type": "object",
    "properties": {
        "d": {
            "type": "object",
            "properties": {
                "CanvasContent1": {
                    "type": "string"
                }
            }
        }
    }
}

Create File

A partir disso, usei uma ação de criação de arquivo para criar um arquivo HTML temporário no OneDrive, com a seguinte configuração:

  • Caminho da pasta: / (raiz da conta OneDrive)
  • Nome do arquivo: Nome de quando um arquivo é criado ou passo modificado
  • Conteúdo do arquivo: CanvasContent1 da etapa de análise JSON

Em seguida, uma etapa de conversão de arquivo para converter a página HTML em um arquivo PDF:

  • Arquivo: ID da etapa de criação do arquivo
  • Tipo de destino: PDF

Agora podemos usar uma ação de criação de arquivo para criar um PDF em nossa biblioteca de documentos de saída no SharePoint:

  • Defina o endereço do site para o site em que você deseja armazenar os arquivos PDF
  • Defina o caminho da pasta para a biblioteca de documentos ou navegue até a pasta relevante dentro dessa biblioteca
  • Defina o nome do arquivo para o nome do arquivo na etapa de conversão do arquivo
  • Defina o conteúdo do arquivo para o conteúdo do arquivo na etapa de conversão do arquivo

Em seguida, usei uma ação de atualização de propriedades do arquivo para passar metadados da biblioteca de páginas do site para a biblioteca de documentos de destino – esta etapa é opcional. Por fim, uma ação de exclusão de arquivo para excluir o arquivo HTML temporário do OneDrive que criamos anteriormente.

Aqui está o fluxo na íntegra:

Como converter páginas do SharePoint em arquivos PDF

Problemas e solução de problemas

Problemas de formatação com o envio de uma solicitação HTTP para o SharePoint

Conforme mencionado acima, ao usar apenas a ação enviar uma solicitação HTTP para o SharePoint, a saída contém marcações que não farão sentido no PDF. A ação parse JSON limpa isso e apenas deixa o conteúdo do corpo da página.

Criar ação de arquivo cria arquivos PDF corrompidos

Ao testar esse fluxo, originalmente não tinha a ação converter arquivo em vigor. No nome do arquivo eu adicionei ‘.PDF’, mas toda vez que o PDF de saída estava corrompido e com erro assim ao tentar abrir:

Como converter páginas do SharePoint em arquivos PDF

O fluxo também falhou nesta etapa e o erro dizia que “A conversão deste arquivo para PDF não é suportada. (InputFormatNotSupported / pdf)” . Decidi descartar essa abordagem e criar uma página HTML e adicionar a ação de converter arquivo que resolveu esse problema.

Substituir arquivos PDF existentes causa falha no fluxo

Durante o teste desse fluxo, também notei que, ao acionar o fluxo com base na atualização de uma página do site, a ação de criar arquivo criar arquivo apresentaria um erro de status 400 dizendo “Já existe um arquivo com o nome [nome do arquivo]” .

Como converter páginas do SharePoint em arquivos PDF

Para mais conteúdos como este continue acessando o blog da Trinapse.

Ver mais artigos

Entre em Contato

Vamos juntos transformar sua dor
em solução!

#moveFast