Pular para o conteúdo principal

Geração de PDFs no Power Automate a partir de uma lista do SharePoint: um modelo Handlebars e um fluxo de trabalho de fatura HTML para PDF

· 30 min para ler
SEO and Content Writer

PDF4me Gerar Documento Único É uma ação do Power Automate que renderiza um modelo HTML Handlebars e um payload JSON em um documento HTML finalizado, que a ação correspondente "Converter HTML para PDF" pagina para o formato A4. Uma nova linha em uma lista do SharePoint inicia o fluxo, o Compose monta o JSON e o Dropbox armazena o PDF da fatura com o nome do número da fatura. Sem conector premium, sem código.

Todas as equipes financeiras se deparam com o mesmo obstáculo no Power Automate. O recurso nativo Converter arquivo A ação requer uma licença premium e se recusa a usar um modelo HTML. Os serviços do Adobe PDF têm custos. O Encodian também tem custos. A solução alternativa popular de matthewdevaney ignora completamente o HTML e te prende ao Power Apps. O padrão abaixo é aquele que ninguém entre os dez primeiros resultados da SERP mostra de ponta a ponta: um conjunto de colunas de uma lista do SharePoint se torna uma carga útil JSON, um verdadeiro Modelo de guidão O arquivo está localizado em /Shared Documents/E duas ações do PDF4me realizam a renderização e a paginação pelo custo do conector da camada gratuita.

Renderização de templates Handlebars: PDF4me versus alternativas

A comparação que todo arquiteto do Power Automate faz antes de escolher um conector para PDFs de faturas:

Abordagem vs PDF4meModelos de guidão?Paginador de HTML para PDF?Camada de conectoresNotas
PDF4me (este blog)Sim, gerar documento únicoSim, converter HTML para PDFPadrãoDuas ações de propósito único, sem necessidade de licença premium.
Serviços de PDF da AdobeNãoSimPremiumCusto por usuário, sem mecanismo de modelos, somente HTML
EncodedianSem modelos nativosSimPremiumPopular, mas pago por invocação.
rota do Power Apps de Matthew DevaneyModelo do Word apenasN / DPadrãoIgnora completamente o HTML, ficando restrito ao front-end do Power Apps.
nativo Convert FileNãoSomente Word/Excel, não HTMLPremiumNão é possível renderizar uma fatura em HTML.
O fluxo em resumo
1. When an item is created
SharePoint trigger on the Invoices list. Fires per new row, hands every column to the flow as dynamic content.
2. Compose
Builds one JSON payload from the row: invoice, customer, items[], totals, notes. The exact shape the Handlebars template expects.
3. Get file content using path
SharePoint /Shared Documents/invoice_template.html. The Handlebars template lives beside the data, versioned in the same site.
4. PDF - Generate Document (Single)
PDF4me action. Template File Type Html (Handlebars Syntax), Document Data Type Json, Output Type Html.
5. Convert HTML to PDF
PDF4me action. A4, portrait, scale 0.8, 40px margins, print backgrounds Yes.
6. Create file
Dropbox /. File Name Title.pdf, so INV-1005 is saved as INV-1005.pdf.
A versão curta

Uma lista de faturas do SharePoint é a fonte de dados principal. Um único modelo HTML Handlebars é armazenado ao lado. A cada nova linha, o Compose gera o JSON, o PDF4me Generate Document (Single) preenche o modelo, o PDF4me Convert HTML to PDF pagina o documento e o Dropbox salva a fatura finalizada com o nome do título da linha. Seis ações, todos conectores de nível padrão, um PDF personalizado por linha.

Perguntas e respostas baseadas no "porquê".

Por que armazenar o modelo Handlebars no SharePoint em vez de codificar o HTML diretamente no fluxo? O modelo se torna um arquivo editável que as equipes de finanças ou design podem atualizar no navegador. Altere um logotipo, ajuste a linha de totais ou adicione uma linha de IVA, e a próxima fatura já incluirá as alterações. O fluxo de trabalho nunca precisa ser reiniciado.

Por que duas ações do PDF4me em vez de uma? A função "Gerar Documento (Único)" é um mecanismo de modelos, não um paginador. Ela mescla JSON em HTML e retorna o HTML. A função "Converter HTML para PDF" é o paginador que lê esse HTML, aplica o tamanho de página A4, as margens e a impressão de fundo, e retorna os bytes do PDF. A separação das funções mantém cada ação com um propósito específico e permite visualizar o HTML renderizado antes de paginar.

Por que compor no meio? O modelo Handlebars é aninhado (fatura, cliente, matriz de itens, totais). O SharePoint fornece 12 colunas simples. A etapa "Compor" é responsável por "montar o JSON", transformando as colunas simples na carga útil aninhada que o modelo itera. Fazer isso na etapa "Compor" significa que a opção "Gerar Documento (Único)" recebe uma única entrada limpa, em vez de 12 blocos de conteúdo dinâmico espalhados pela configuração.

Por que usar o Dropbox para a saída, em vez de retornar para o SharePoint? O Dropbox é o armazenamento de demonstração. Qualquer conector de arquivo serve para a última etapa: Criar arquivo no SharePoint, Criar arquivo no OneDrive, Criar arquivo no Google Drive ou Carregar arquivo via SFTP. O corpo da conversão de HTML para PDF é um arquivo binário simples; o destino é uma troca (swap), não uma reescrita.


O que você receberá

Entrada: uma lista do SharePoint chamada Invoices (colunas: Título, Data da Fatura, Data de Vencimento, Nome do Cliente, Endereço do Cliente, E-mail do Cliente, Moeda, Subtotal, Alíquota de Imposto, Valor do Imposto, Total Geral, Observações) mais um único modelo Handlebars em /Shared Documents/invoice_template.html. Saída: um PDF A4 por linha no Dropbox, nomeado {Title}.pdf (INV-1005 torna-se INV-1005.pdf).


Do que você precisa

  • Power Automate. Abra o Power AutomateOs conectores SharePoint, Dropbox e PDF4me usados abaixo são todos de nível padrão, não sendo necessário nenhum plano premium.
  • Chave da API do PDF4me. Obtenha sua chave de APIConecte-o na primeira vez que adicionar uma ação do PDF4me.
  • Site do SharePoint com uma lista chamada Invoices e uma biblioteca de Documentos (com qualquer nome) onde o modelo Handlebars está armazenado.
  • Conta do Dropbox (ou qualquer destino de arquivo: SharePoint, OneDrive, Google Drive, SFTP, todos funcionam sem alterações).
  • Modelo de fatura Handlebars, pronto para ser carregado em /Shared Documents/. invoice_template.htmlCada caminho Handlebars nele corresponde à tabela de mapeamento abaixo.
  • Exemplo de fatura assinada em PDF, exatamente o que o fluxo produziu para INV-1005. Exemplo de fatura.pdf.

Primeiro, pegue as amostras. Baixe o modelo de guidão e faça o upload para /Shared Documents/ Antes de criar o fluxo, certifique-se de que a Etapa 3 tenha um arquivo de referência. O PDF de exemplo mostra exatamente o que significa "sucesso".


O Fluxo em Resumo

  1. Quando um item é criado (Gatilho do SharePoint em Invoices lista).
  2. Compor a carga útil JSON aninhada (fatura / cliente / itens / totais / notas).
  3. Obter o conteúdo do arquivo usando o caminho para /Shared Documents/invoice_template.html.
  4. PDF - Gerar Documento (Único) Com o corpo do modelo mais o JSON, tipo de saída HTML.
  5. Converter HTML para PDF Formato A4 retrato, escala 0,8, margens de 40px, fundos de impressão: Sim.
  6. Criar arquivo no Dropbox /, nome do arquivo {Title}.pdf.

Visão geral completa do fluxo

Visão geral do fluxo do Power Automate mostrando seis ações sequenciais com marcas de seleção verdes de sucesso e durações de execução: SharePoint - Quando um item é criado (0,4s), Compor (0s), SharePoint - Obter conteúdo do arquivo usando o caminho (0,3s), PDF4me - Gerar documento único (0,4s), PDF4me - Converter HTML para PDF (11s) e Dropbox - Criar arquivo (1s).

Execução completa do processo. A etapa de 11 segundos para converter HTML em PDF refere-se à paginação; todo o restante leva menos de meio segundo.


Passo 1: Como acionar um fluxo do Power Automate em uma nova fatura do SharePoint?

Fluxo até o momento: O fluxo começa aqui.

Aponte o gatilho do SharePoint para o site e a lista que contêm as linhas de suas faturas. Cada coluna se tornará conteúdo dinâmico posteriormente.

  1. Adicionar SharePoint > Quando um item é criado como gatilho.
  2. Configurar:
    • Endereço do siteSelecione o site do SharePoint (no exemplo: PDF4me Sharepoints - https://ynoox1.sharepoint.com/sites/PDF4meSharepoints).
    • Nome da lista: Invoices.
  3. Salve e deixe o gatilho detectar o esquema da lista. As linhas na captura de tela abaixo (INV-1002, INV-1003, INV-1005) mostram exatamente as 12 colunas que o modelo Handlebars irá consumir.

A lista de faturas

Lista de faturas do SharePoint com três linhas de exemplo: INV-1002 Globex Ltd, INV-1003 Initech Inc e INV-1005 Initech LLC, mostrando as colunas Título, InvoiceJson, InvoiceDate, DueDate, CustomerName, CustomerAddress, CustomerEmail, Currency, Subtotal, TaxRate, TaxAmount, GrandTotal e Notes.

A lista do SharePoint é a fonte da verdade. Cada coluna aqui corresponde a um campo do payload Handlebars.

Configuração do gatilho

O gatilho "Quando um item é criado" do Power Automate SharePoint está configurado com o endereço do site "PDF4me SharePoints" e o nome da lista "Faturas", exibindo o status "Conectado ao SharePoint".

Dois campos, esse é o gatilho completo. Todo o resto vem da linha.

Dica. Se sua equipe financeira já possui as faturas no Excel ou no Dataverse, mantenha-as lá. Troque o gatilho para Excel - Quando uma linha é adicionada ou Dataverse - Quando uma linha é adicionadaO restante do fluxo não se altera.


Etapa 2: Como construir o payload JSON do Handlebars a partir de uma linha do SharePoint?

Fluxo até o momento: Gatilho do SharePoint.

O Compose transforma as 12 colunas planas do SharePoint no JSON aninhado que o modelo Handlebars itera. O modelo espera invoice, customer, um items variedade, totalse um notes corda.

  1. Adicionar Compor.
  2. Em EntradasCole o JSON abaixo e, em seguida, insira o componente de conteúdo dinâmico do SharePoint correspondente entre as aspas de cada valor para que números e datas sejam exibidos como strings.
{
"invoice": {
"number": "Title",
"date": "InvoiceDate",
"dueDate": "DueDate"
},
"customer": {
"name": "CustomerName",
"address": "CustomerAddress",
"email": "CustomerEmail"
},
"items": [
{ "description": "Item1Description", "quantity": "Item1Qty", "unitPrice": "Item1UnitPrice", "lineTotal": "Item1Amount", "currency": "Currency" },
{ "description": "Item2Description", "quantity": "Item2Qty", "unitPrice": "Item2UnitPrice", "lineTotal": "Item2Amount", "currency": "Currency" },
{ "description": "Item3Description", "quantity": "Item3Qty", "unitPrice": "Item3UnitPrice", "lineTotal": "Item3Amount", "currency": "Currency" },
{ "description": "Item4Description", "quantity": "Item4Qty", "unitPrice": "Item4UnitPrice", "lineTotal": "Item4Amount", "currency": "Currency" },
{ "description": "Item5Description", "quantity": "Item5Qty", "unitPrice": "Item5UnitPrice", "lineTotal": "Item5Amount", "currency": "Currency" }
],
"totals": {
"currency": "Currency",
"subTotal": "Subtotal",
"taxRate": "TaxRate",
"taxAmount": "TaxAmount",
"grandTotal": "GrandTotal"
},
"notes": "Notes"
}

Compor configuração

Visualização do código da ação Compose do Power Automate mostrando uma carga útil JSON aninhada com fatura (número, data, data de vencimento), cliente (nome, endereço, e-mail), matriz de itens com 5 itens de linha (descrição, quantidade, preço unitário, total da linha, moeda), totais (moeda, subtotal, alíquota de imposto, valor do imposto, total geral) e observações, cada valor vinculado a um gatilho do SharePoint.

Componha no modo de visualização de código. Cada valor JSON é um elemento do SharePoint entre as aspas, portanto, números e datas chegam como strings que o modelo Handlebars pode renderizar.

Dica. Mantenha o tamanho da matriz de itens fixo, correspondente ao número de colunas adicionadas ao SharePoint (cinco neste exemplo). Se uma linha tiver apenas três itens, deixe os campos Item4/Item5 em branco no SharePoint e adicione um novo item. {{#if description}} Crie uma linha de proteção ao redor da linha no modelo de guidão para que as linhas vazias sejam ignoradas.

Referência: Coluna do SharePoint para caminho Handlebars

O mapeamento exato entre uma coluna do SharePoint e seu respectivo local no modelo. Adicione esta tabela aos seus favoritos ao estender o esquema.

Coluna do SharePointCaminho do guidãoTipoUsado no modelo
Titleinvoice.numberTextoCabeçalho com o número da fatura e nome do arquivo do Dropbox
InvoiceDateinvoice.dateDataCabeçalho da fatura
DueDateinvoice.dueDateDataCabeçalho da fatura
CustomerNamecustomer.nameTextoBloqueio de fatura
CustomerAddresscustomer.addressTextoBloqueio de fatura
CustomerEmailcustomer.emailTextoBloqueio de fatura
Item{N}Descriptionitems[N-1].descriptionTextoLinha de item
Item{N}Qtyitems[N-1].quantityNúmeroLinha de item
Item{N}UnitPriceitems[N-1].unitPriceNúmeroLinha de item
Item{N}Amountitems[N-1].lineTotalNúmeroLinha de item
Currencytotals.currency e cada um items[].currencyTextoSímbolo da moeda
Subtotaltotals.subTotalNúmeroBloco de totais
TaxRatetotals.taxRateNúmeroBloco de totais
TaxAmounttotals.taxAmountNúmeroBloco de totais
GrandTotaltotals.grandTotalNúmeroBloco de totais
NotesnotesTextoRodapé

Passo 3: Como carregar o arquivo de modelo Handlebars do SharePoint?

Fluxo até o momento: Gatilho do SharePoint mais Compor.

Armazene o modelo como um arquivo simples. .html O arquivo está na biblioteca de Documentos do site. A ação "Obter conteúdo do arquivo usando o caminho" lê seus bytes brutos para que a ação "Gerar Documento (Único)" possa usá-los como corpo do modelo.

O próprio modelo

O modelo é HTML comum com CSS embutido, além de expressões Handlebars onde os dados são inseridos. Duas estruturas realizam o trabalho principal. {{#each items}} repete uma linha da tabela por item de linha, e o {{#if description}} O guarda interno ignora os espaços em branco deixados pelas colunas Item4 e Item5 não utilizadas.

<tbody>
{{#each items}}
{{#if description}}
<tr>
<td>{{description}}</td>
<td class="num">{{quantity}}</td>
<td class="num">{{currency}}{{unitPrice}}</td>
<td class="num">{{currency}}{{lineTotal}}</td>
</tr>
{{/if}}
{{/each}}
</tbody>

Todo o resto é uma substituição direta: {{invoice.number}} no cabeçalho, o {{customer.*}} bloco para faturamento, {{totals.*}} na tabela de totais, e {{notes}} no rodapé.

Baixe o modelo. Faça o upload para /Shared Documents/ como invoice_template.htmlEm seguida, edite o nome do vendedor, o endereço e o número de IVA na parte superior. Esses campos são estáticos propositalmente, portanto, são as únicas linhas que você precisa alterar antes da sua primeira execução.

  1. Adicionar SharePoint > Obter o conteúdo do arquivo usando o caminho.
  2. Configurar:
    • Endereço do site: mesmo local que o gatilho.
    • Caminho do arquivo: /Shared Documents/invoice_template.html.
    • Inferir tipo de conteúdo: Yes (Deixe o padrão).

Obter o conteúdo do arquivo usando o caminho

Power Automate SharePoint Obter conteúdo de arquivo usando ação de caminho com Endereço do Site PDF4me SharePoints, Caminho do Arquivo /Documentos Compartilhados/invoice_template.html e Inferir tipo de conteúdo Sim

O modelo reside em /Shared Documents/ e é obtido por caminho absoluto. O histórico de versões é automático, pois trata-se apenas de um arquivo do SharePoint.

Dica. Se o seu modelo estiver armazenado no OneDrive ou no Dropbox, substitua esta ação pela opção equivalente "Obter conteúdo do arquivo" do respectivo serviço de armazenamento. Body O resultado de qualquer uma delas é o que a próxima etapa envia para os Dados do Arquivo de Modelo.


Passo 4: Como o PDF - Gerar Documento (Único) preenche o modelo Handlebars?

Fluxo até o momento: Gatilho do SharePoint mais Compor mais Obter conteúdo do arquivo usando o caminho.

O Generate Document (Single) é o mecanismo de modelos. Ele lê o código-fonte Handlebars ({{invoice.number}}, {{#each items}}...{{/each}}), substitui valores da carga útil JSON e retorna o HTML renderizado. Não realiza paginação. Essa é a tarefa da próxima etapa.

  1. Adicionar PDF4me PDF > PDF - Gerar Documento (Único).
  2. Configurar:
    • Tipo de arquivo de modelo: Html (Handlebars Syntax).
    • Nome do arquivo de modelo: invoice_template.html.
    • Dados do arquivo de modelo: conteúdo dinâmico, Body da etapa Obter conteúdo do arquivo do SharePoint.
    • Tipo de dados do documento: Json.
    • Texto dos dados do documento: conteúdo dinâmico, Body da etapa Compor.
    • Tipo de saída: Html.
    • Mantenha o modelo de PDF editável.: No.

Configuração de geração de documento (único)

Ação PDF4me PDF - Gerar Documento (Único) com Tipo de Arquivo de Modelo HTML (Sintaxe Handlebars), Nome do Arquivo de Modelo invoice_template.html, Dados do Arquivo de Modelo mapeados do Corpo do SharePoint, Tipo de Dados do Documento JSON, Texto dos Dados do Documento mapeado do Corpo de Composição, Tipo de Saída HTML, Manter Modelo PDF Editável Não e Status Conectado ao PDF4me PDF

Tipo de saída é Html, não PdfA opção "Gerar Documento (Único)" passa o HTML renderizado para a próxima etapa, de modo que a paginação permaneça uma preocupação separada e testável.

Dica. A opção Gerar Documento (Único) também é compatível com modelos do Word e PDF. Se a equipe de design lhe entregar um .docx Modelo de fatura, defina o tipo de arquivo do modelo como Word e altere o Tipo de Saída para Pdf Para ignorar completamente a etapa de conversão. O método Handlebars é o mais indicado quando você deseja controle de CSS e iteração de pré-visualização no navegador.


Passo 5: Como paginar o HTML renderizado em um PDF A4?

Fluxo até o momento: Gatilho do SharePoint + Compor + Obter conteúdo do arquivo usando o caminho + PDF - Gerar documento (único).

A função Converter HTML para PDF é o mecanismo de paginação. Ela lê o HTML gerado por Gerar Documento (Único), aplica o tamanho da página e as margens e retorna os bytes do PDF.

  1. Adicionar PDF4me PDF > Converter HTML para PDF.
  2. Configurar:
    • Conteúdo do arquivo: conteúdo dinâmico, Body da etapa Gerar Documento (Único).
    • Nome do arquivo HTML: invoice.html.
    • Layout da página: Portrait.
    • Tamanho da página: A4.
    • Escala: 0.8 (A fatura de 5 itens cabe em uma página).
    • Margem superior / inferior / esquerda / direita: 40px cada.
    • Fundo para impressão: Yes (Exibe a cor de fundo do bloco de totais).

Converter configuração de HTML para PDF

Ação PDF4me Converter HTML para PDF com Conteúdo do Arquivo mapeado de Gerar Corpo do Documento, Nome do Arquivo HTML invoice.html, Layout da Página Retrato, Tamanho da Página A4, Escala 0,8, Margens Superior, Inferior, Esquerda e Direita todas de 40px e Imprimir Fundo Sim

A escala 0,8 permite que uma fatura de cinco linhas caiba em uma única página A4. Aumente para 0,9 ou 1,0 se tiver menos itens e desejar uma fonte maior.

Dica. Print Background: Yes é o cenário que finalmente torna tudo colorido. <td> As células e os gradientes CSS aparecem. Os navegadores removem as cores de fundo da impressão por padrão. Se a sua linha de totais estiver branca no PDF, é por isso.


Passo 6: Como salvar o PDF da fatura no Dropbox com um nome fácil de entender?

Fluxo até o momento: Gatilho do SharePoint + Compor + Obter conteúdo do arquivo usando o caminho + PDF - Gerar documento (único) + Converter HTML para PDF.

A etapa final consiste em colocar o PDF em uma pasta do Dropbox com um nome vinculado ao número da fatura.

  1. Adicionar Dropbox > Criar arquivo.
  2. Configurar:
    • Caminho da pasta: / (ou uma subpasta como /invoices/).
    • Nome do arquivo: conteúdo dinâmico, Title do gatilho do SharePoint, seguido pela string literal .pdf. INV-1005 torna-se INV-1005.pdf.
    • Conteúdo do arquivo: conteúdo dinâmico, Body da etapa Converter HTML para PDF.

Criar arquivo de configuração

Ação "Criar arquivo" do Power Automate para o Dropbox com caminho da pasta (/), nome do arquivo gerado a partir do campo de título do SharePoint seguido por ".pdf" e conteúdo do arquivo mapeado de "Converter HTML para corpo do PDF", exibindo o status "Conectado ao Dropbox".

Ao nomear o arquivo com o número da fatura, a pasta do Dropbox se torna automaticamente um arquivo de faturas pesquisável e sem duplicatas.

Dica. Se duas linhas puderem compartilhar o mesmo título, adicione um _ e um registro de data e hora: concat(triggerBody()?['Title'], '_', ticks(utcNow()), '.pdf')Caso contrário, o Dropbox sobrescreve silenciosamente o arquivo anterior com o mesmo nome.


Execute o fluxo e verifique.

  1. Salvar o fluxo no canto superior direito.
  2. Adicione uma nova linha ao Invoices Lista do SharePoint. Defina o título para algo reconhecível (INV-1005) e preencha todas as colunas para que o modelo tenha dados reais.
  3. Abra o fluxo Histórico de execução e selecione a execução mais recente. Todos os cartões devem estar verdes, semelhante à captura de tela da visão geral do fluxo. O cartão "Converter HTML para PDF" é o mais lento (cerca de 11 segundos) porque é onde a paginação ocorre.
  4. Abra o Dropbox e confirme. INV-1005.pdf (ou seu título) está na raiz. Baixe-o, abra-o e compare com o exemplo.

O que você construiu exatamente? Um gerador de faturas nativo do SharePoint com um modelo HTML editável, tudo em seis ações de conector de nível padrão. O mesmo padrão (linha + modelo + renderização + paginação + armazenamento) funciona para orçamentos, notas de entrega, pedidos de compra, certificados de garantia ou qualquer PDF personalizado por linha. Troque o SharePoint pelo Dataverse ou Excel, o Dropbox pelo OneDrive e mantenha as duas ações do PDF4me.


Variações comuns que você pode adicionar sem reconstruir

Enviar a fatura por e-mail ao cliente.
Insira um Outlook Enviar um e-mail (V2) Após criar o arquivo, anexe o arquivo "Converter HTML para PDF". Body e direcione-o ao SharePoint CustomerEmail coluna.
Assine na página 1.
Adicionar um PDF - Assinar Ação após a conversão de HTML para PDF. Sobreponha uma assinatura PNG do Dropbox no canto inferior direito da página 1 para faturas autorizadas.
Enviar uma cópia de volta para o SharePoint
Adicione um segundo SharePoint Criar arquivo Após o Dropbox, arraste e solte o PDF em Shared Documents/Signed Invoices/ assim, ele é preservado ao lado da lista de fontes.
Convert vs Adobe / Encodian (comparação)
Tanto o Adobe PDF Services quanto o Encodian oferecem conectores de HTML para PDF, mas exigem licenças premium por usuário. O PDF4me funciona no nível de conector padrão e utiliza a função "Gerar Documento (Único)" para criação de modelos, recurso que o fluxo de trabalho da Adobe não inclui.

Perguntas frequentes

Como criar um PDF usando o Power Automate a partir de um item de lista do SharePoint?

Use o SharePoint When an item is created como gatilho, um Compose ação para transformar as colunas planas da linha em uma carga útil JSON aninhada, um Get file content using path ação para carregar seu modelo HTML de /Shared Documents/, PDF4me Generate Document (Single) para mesclar o JSON no modelo e PDF4me Convert HTML to PDF Para paginar o resultado, salve a saída em qualquer conector de arquivo (Dropbox, OneDrive, SharePoint). Todas as ações nessa cadeia estão no nível de conector padrão, portanto, você não precisa de uma licença do Power Automate Premium.

O Power Automate consegue gerar um PDF?

Sim. O Power Automate nativo não consegue renderizar um PDF a partir de um modelo HTML, mas o PDF4me O conector adiciona as duas ações que tornam isso possível: Generate Document (Single) para renderização de modelos e Convert HTML to PDF para paginação. Ambos são de nível padrão e gratuitos para instalar. Juntos, transformam qualquer linha do SharePoint / Dataverse / Excel em um PDF personalizado usando um modelo HTML editável armazenado ao lado dos dados.

Como criar um PDF a partir de um HTML no Power Automate?

Adicione o PDF4me Converte HTML para PDF Ação em qualquer lugar onde o fluxo tenha HTML no escopo (uma saída do Compose, um corpo de conteúdo de arquivo Get, uma expressão do Compose, uma carga útil de webhook). Configure o tamanho da página (A4), layout (Portrait), margens (40px), e definir Print Background: Yes Assim, os planos de fundo CSS são preservados. A ação Body A saída é o arquivo binário PDF que você envia para sua ação de armazenamento. Esta é a mesma ação usada na Etapa 5 acima.

O Power Automate consegue converter HTML em PDF sem a versão premium?

Sim. A ação Converter HTML para PDF do conector PDF4me está no nível de conector padrão, o que significa que você pode instalá-la e usá-la em qualquer plano do Power Automate sem precisar da licença Premium, que é necessária para a versão nativa. Convert File Os conectores do Adobe PDF Services também exigem uma chave de API do PDF4me (disponível na versão gratuita), que você deve colar ao adicionar a ação pela primeira vez.

Como gerar um PDF a partir de um modelo no Power Automate?

Usar PDF4me Gerar Documento (Único) com Template File Type: Html (Handlebars Syntax) (para modelos HTML) ou Word (para .docx modelos). Alimente os bytes do modelo em Template File Data e uma carga útil JSON em Document Data Text. Definir Output Type: Html se você precisar paginar posteriormente (como neste blog), ou Pdf para obter um PDF de volta em uma única etapa. A ação suporta toda a sintaxe Handlebars, incluindo {{#each}} e {{#if}} para itens de linha e blocos condicionais.


Solução de problemas

Renderizações de guidão {{invoice.number}} literalmente no PDF

O marcador de posição do modelo não foi substituído, o que significa que o texto dos dados do documento estava vazio ou era um JSON malformado. Abra as saídas da etapa Compose no histórico de execução e confirme se é um objeto JSON válido com o caminho de chave exato que o Handlebars está procurando (respeitando maiúsculas e minúsculas).

A linha de totais aparece em branco no PDF, mas colorida na pré-visualização do navegador.

Definir Print Background: Yes Converter HTML para PDF. O mecanismo de impressão do Chromium remove as cores de fundo. <td> e <div> Por padrão; esta opção os reativa.

A fatura ocupa duas páginas, sendo que a segunda página contém apenas uma linha.

Diminua o Scale Converter HTML para PDF de 0,8 para 0,7. Como alternativa, adicione page-break-inside: avoid no <table> No modelo, a paginação é quebrada entre as linhas e não dentro delas.

O Dropbox, ao criar um arquivo, sobrescreve silenciosamente uma fatura anterior.

Duas fileiras compartilhavam o mesmo TitleAltere a expressão Nome do Arquivo para concat(triggerBody()?['Title'], '_', ticks(utcNow()), '.pdf') Assim, cada execução gera um nome de arquivo único.


Próximos passos

O mesmo padrão de seis etapas (linha + modelo + renderização + paginação + nome + armazenamento) lida com qualquer PDF personalizado por linha que você possa descrever em HTML.