Postagem em PDF
POST JSON, obtenha de volta um PDF com pixels perfeitos. Auto-hospedado, MIT, sem preços por documento. Projete um modelo uma vez no Liquid e renderize documentos de qualquer aplicativo com uma chamada de API autenticada.
Faturas, recibos, certificados, relatórios e imagens og. A renderização é feita por Gotenberg (headless Chromium), então o que você vê na visualização é o que chega ao PDF. Imagens multiarquiteturas pré-construídas (amd64 e arm64) são publicadas em ghcr.io/andyshrx/pdfpost em cada versão.
Em vez disso, para compilar a partir do código-fonte, execute docker compose build primeiro. Isso fornece o aplicativo em http://localhost:8080, um trabalhador de fila, um agendador e Gotenberg em uma rede interna. O assistente de instalação cria sua conta, opcionalmente propaga a galeria de modelos de amostra e cria seu primeiro token de API.
As inscrições fecham assim que sua conta existe, portanto, uma porta exposta não é uma página de inscrição aberta (defina PDFPOST_ALLOW_REGISTRATION=true se desejar que ela seja aberta). Precisa de mais tokens mais tarde? Há uma página de tokens de API no painel, ou use o cli: O token é impresso uma vez.
Copie-o e configure-o em seu shell para que os exemplos abaixo funcionem como estão (mantenha as aspas, o token contém um |): O assistente executa migrações para você e, em seguida, orienta você pelas mesmas etapas de conta, valor inicial e token da configuração do docker. Crie um modelo (ou use o editor de painel): HTML embutido único também funciona e "format": "png" retorna uma imagem og de 1200x630 em vez de um PDF. Usando n8n?
exemplos/n8n tem um fluxo de trabalho importável que chama o endpoint de renderização de um nó de solicitação HTTP. Você obtém um 202 com um ID de renderização. Faça uma pesquisa GET /api/v1/renders/{id} ou aguarde o webhook: a carga carrega o status e um artefato_url assinado expirando, e a solicitação é assinada com HMAC-SHA256 no cabeçalho X-PDFPost-Signature.
Verifique assim: Defina PDFPOST_WEBHOOK_SECRET como um valor que você compartilha com seu destinatário para poder verificar a assinatura. Se você deixá-lo sem definição, um segredo será derivado de APP_KEY, mas você terá que retirá-lo do aplicativo, portanto, será mais fácil definir o seu próprio. Os artefato_urls do Webhook são criados a partir de APP_URL (um trabalho na fila não tem nenhuma solicitação para inferir o host), portanto, defina APP_URL como o endereço onde o PDFPost está realmente acessível, a porta incluída ou o link de download não será resolvido.
Gotenberg não é um concorrente, é o motor. PDFPost é a camada de modelagem, autenticação, fila e webhook que o transforma em uma API de documento. Encontrou um problema de segurança?
Use o relatório de vulnerabilidade privada do GitHub neste repositório em vez de abrir um problema público. Compartilhamento/importação de modelos, controles de paginação de relatórios de várias páginas, exemplos de artefatos S3, uma demonstração hospedada e tudo o que a página de problemas diz que as pessoas precisam. Olá, meu nome é Andy.
Eu construí o PDFPost porque pagar por documento para mesclar JSON em algum HTML nunca me agradou, e eu queria uma desculpa real para me aprofundar no Laravel. Agora ele cuida da minha própria papelada. Se estiver faltando algo que você precisa, abra um problema e conte-me sobre seu caso de uso.
Fico feliz em fazer atualizações e as solicitações de recursos realmente alegram o meu dia. Se o PDFPost economizar algum dinheiro ou tempo, você pode me pagar um café. p.s.
agradecimento especial ao Cláudio. O logotipo, porém, era tudo eu.
💬 Comentários
Carregando comentários…