Gerar com HTML direto
Envie o HTML na requisição quando você mesmo o produz, quando ele vem de outro sistema, ou quando quer um documento avulso e nada para manter no portal.
curl -X POST https://api.example.com/v1/render \ -H "Authorization: Bearer $RUSTEDF_KEY" \ -H "Content-Type: application/json" \ -d '{ "html": "<h1>Olá {{ name }}</h1><p>{{ total | currency(code=\"BRL\") }}</p>", "data": { "name": "Mundo", "total": "1234.50" }, "locale": "pt-BR" }' \ -o ola.pdfO campo html é um template, como um salvo: {{ }}, {% %} e os filtros de formatação
funcionam (veja Templates). Se o seu HTML já está pronto, sem
campos, envie-o como está e omita data.
Montando a requisição
Seção intitulada “Montando a requisição”Não cole dados dentro da string de HTML; passe-os em data, para serem escapados. Em
Node.js:
const response = await fetch('https://api.example.com/v1/render', { method: 'POST', headers: { Authorization: `Bearer ${process.env.RUSTEDF_KEY}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ html: '<h1>{{ title }}</h1><ul>{% for i in items %}<li>{{ i }}</li>{% endfor %}</ul>', data: { title: 'Lista de compras', items: ['Pão', 'Leite'] }, }),});O que saber
Seção intitulada “O que saber”- Envie
htmloutemplate_id, nunca os dois e nunca nenhum: isso é um400. - Nada é salvo. Não há versão nem pré-visualização no portal; o HTML é enviado de novo a cada requisição, e o limite de tamanho do seu plano vale para ele.
- As imagens precisam ser imagens enviadas (
asset:<id>) ou URLsdata:; veja Imagens. - Use
/v1/validatecom o mesmo corpo para conferir o documento sem gastar crédito.
Quando o mesmo layout é gerado com frequência, um template salvo é mais fácil de manter. A requisição e a resposta estão em Gerar um PDF.