🤖 Document Templater - Microserviço de Geração de Documentos Baseados em Modelos
O Document Templater é um microserviço poderoso e flexível projetado para simplificar a geração de documentos complexos e personalizados a partir de modelos predefinidos. Combinando a facilidade de uso com a capacidade de criar documentos altamente personalizados, este microserviço é ideal para automatizar o processo de geração de relatórios, contratos, formulários e muito mais.
README language: 🇦🇴 Português, 🇺🇸 English
O Document Templater utiliza a biblioteca Carbone para fundir modelos com dados, produzindo os documentos de saída desejados. Utiliza Node.js e Express.js para o backend, permitindo-lhe construir um serviço de geração de documentos robusto e personalizável.
As principais características do Document Templater incluem:
- 📝 Gere documentos profissionais e elegantes a partir de modelos pré-carregados.
- 🎨 Personalize facilmente os documentos incorporando dados específicos.
- 🌈 Suporte a diversos formatos de modelo, incluindo Word (docx) e PDF.
- 🍏 Integração simples com APIs externas para buscar dados em tempo real.
- ⭐️ Configurações flexíveis para ajustar a aparência e o conteúdo dos documentos.
- 📐 API intuitiva que permite a integração perfeita em seus projetos existentes.
O Document Templater oferece uma solução escalável e eficiente para atender às suas necessidades de geração de documentos, economizando tempo e garantindo resultados consistentes e de alta qualidade.
Dê vida à geração de documentos de forma fácil e confiável com o Document Templater.
Siga estes passos para começar a utilizar o Document Templater:
- Node.js: Certifique-se de ter o Node.js instalado em sua máquina.
- LibreOffice: Certifique-se de ter o LibreOffice versão 7.5.1.1 instalado em sua máquina.
-
Clone o repositório:
git clone https://github.com/m4nd0mb3/document-templater.git
-
Navegue até o diretório do projeto:
cd document-templater
-
Instale as dependências:
npm install
-
Inicie o servidor:
npm start
-
Abra seu navegador web e navegue até http://localhost:3000.
-
Explore os endpoints e exemplos fornecidos para ver como gerar diferentes tipos de documentos.
Para executar o Document Templater usando o Docker, siga estas etapas:
-
Construa a imagem do Docker:
docker build -t document-templater:latest .
-
Executar o contentor Docker:
docker run -p 3000:3000 -d document-templater:latest
-
Abra o navegador da Web e navegue até http://localhost:3000.
Document Templater provides a set of basic endpoints to interact with the document generation service. Below are the examples of how to use these endpoints.
Endpoint: api/v1/document/create
Method: POST
Description: Create or save a template document based on a provided template and data. Only document file field is required all others will be used to test the data in the sandbox.
Request Body:
{
"document": "path/to/pdf-template.docx",
"data":{
"firstname": "John",
"lastname": "Doe"
}
}
Response:
{
"message":"Data inserted successfully!"
}
Endpoint: api/v1/documents
Method: GET
Description: List all templates stored. Look that the string on tests_data we gonna use to test our sandbox...
Request Body:
{
}
Response:
{
"message": "success",
"data": [
{
"reference": "3da7aa72-0760-4b56-9ba6-efa337c1db2b.odt",
"name": "simple",
"tests_data": "{\"firstname\":\"rasmushed\",\"lastname\":\"Igor\",\"age\":\"30\"}"
},
{
"reference": "fbc57e45-6cbd-4250-8616-1e5038b01ad5.pptx",
"name": "Capa Envelope SV",
"tests_data": "{\"title\":\"Test PPTX\"}"
}
]
}
Endpoint: api/v1/document/{reference}/sandbox
Method: GET
Description: Generates a PDF document based on a reference provided template and data.
Request Body: Optional, but if you enter, the body data must to have the sabe key structure with tests_data.
Response:
A generated PDF document.
Endpoint: api/v1/document/{reference}/generate
Method: GET
Description: Generates a PDF document based on a reference provided template and data.
Request Body: Dhe body data must to have the sabe key structure with tests_data.
Response:
A generated PDF document.
Modifique a configuração em .env
para personalizar configurações como porta, caminhos de arquivos e mais.
Contribuições são bem-vindas! Se você encontrar problemas ou quiser adicionar novas funcionalidades, sinta-se à vontade para enviar um pull request.
Este projeto está licenciado sob a Licença Apache-2.0.