Relatórios PDF
Gera relatórios PDF profissionais para mapas natais, sinastria, revoluções solares e muito mais. O módulo de Relatórios PDF permite-te criar relatórios astrológicos personalizáveis com interpretações, mapas e tabelas.
Visão Geral
A funcionalidade de Relatórios PDF oferece:
- Múltiplos tipos de relatório: Natal, sinastria, composto, trânsito, revolução solar, revolução lunar, progressões, numerologia e astrologia chinesa
- Modelos personalizáveis: Cria e gere os teus próprios modelos de PDF com layouts personalizados
- Cálculos automáticos: Os dados astrológicos são calculados em tempo real e integrados no teu modelo
- Saída profissional: Geração de PDF de alta qualidade com suporte para cabeçalhos, rodapés, números de página e CSS personalizado
Tipos de Relatório Suportados
| Tipo de Relatório | Descrição |
|---|---|
natal | Análise do mapa natal com posições planetárias, casas e aspectos |
synastry | Compatibilidade de relacionamento entre dois mapas |
composite | Mapa combinado para relacionamentos |
transit | Trânsitos planetários actuais ao mapa natal |
solar-return | Mapa de aniversário anual |
lunar-return | Mapa de revolução lunar mensal |
progressions | Progressões secundárias |
numerology | Cálculos e análise de numerologia |
chinese | Relatório de astrologia chinesa |
Gerar um Relatório PDF
Gera um relatório PDF fornecendo dados de nascimento e opcionalmente especificando um modelo.
curl -X POST "https://api.astroapi.cloud/api/pdf-reports/generate" \
-H "X-Api-Key: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"reportType": "natal",
"subject": {
"name": "John Doe",
"birthDate": {
"year": 1990,
"month": 6,
"day": 15,
"hour": 14,
"minute": 30
},
"birthPlace": {
"name": "London, UK",
"latitude": 51.5074,
"longitude": -0.1278,
"timezone": "Europe/London"
}
}
}' \
--output natal-report.pdfParâmetros do Pedido
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
reportType | string | Sim | Tipo de relatório (ver tipos suportados acima) |
templateId | string | Não | ID do modelo específico a usar (usa o padrão se não fornecido) |
subject | object | Sim | Dados de nascimento do sujeito principal |
partner | object | Não | Dados de nascimento do parceiro (necessário para sinastria/composto) |
transitDate | object | Não | Data alvo para relatórios de trânsito/revolução |
Objecto Subject
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Sim | Nome da pessoa |
birthDate | object | Sim | Data e hora de nascimento |
birthDate.year | number | Sim | Ano de nascimento |
birthDate.month | number | Sim | Mês de nascimento (1–12) |
birthDate.day | number | Sim | Dia de nascimento (1–31) |
birthDate.hour | number | Sim | Hora de nascimento (0–23) |
birthDate.minute | number | Sim | Minuto de nascimento (0–59) |
birthPlace | object | Sim | Local de nascimento |
birthPlace.name | string | Sim | Nome do local |
birthPlace.latitude | number | Sim | Latitude (-90 a 90) |
birthPlace.longitude | number | Sim | Longitude (-180 a 180) |
birthPlace.timezone | string | Sim | Identificador de fuso horário IANA |
Resposta
O endpoint devolve um ficheiro PDF (application/pdf) com o relatório gerado.
Exemplo de Relatório de Sinastria
Gera um relatório de sinastria comparando dois mapas natais:
curl -X POST "https://api.astroapi.cloud/api/pdf-reports/generate" \
-H "X-Api-Key: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"reportType": "synastry",
"subject": {
"name": "Person A",
"birthDate": {
"year": 1990,
"month": 6,
"day": 15,
"hour": 14,
"minute": 30
},
"birthPlace": {
"name": "London, UK",
"latitude": 51.5074,
"longitude": -0.1278,
"timezone": "Europe/London"
}
},
"partner": {
"name": "Person B",
"birthDate": {
"year": 1988,
"month": 3,
"day": 22,
"hour": 9,
"minute": 15
},
"birthPlace": {
"name": "Paris, France",
"latitude": 48.8566,
"longitude": 2.3522,
"timezone": "Europe/Paris"
}
}
}' \
--output synastry-report.pdfExemplo de Relatório de Revolução Solar
Gera um mapa de revolução solar para um ano específico:
curl -X POST "https://api.astroapi.cloud/api/pdf-reports/generate" \
-H "X-Api-Key: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"reportType": "solar-return",
"subject": {
"name": "John Doe",
"birthDate": {
"year": 1990,
"month": 6,
"day": 15,
"hour": 14,
"minute": 30
},
"birthPlace": {
"name": "London, UK",
"latitude": 51.5074,
"longitude": -0.1278,
"timezone": "Europe/London"
}
},
"transitDate": {
"year": 2025,
"month": 6,
"day": 15,
"hour": 0,
"minute": 0
}
}' \
--output solar-return-2025.pdfGestão de Modelos
Os modelos definem o layout e o conteúdo dos teus relatórios PDF. Cada modelo está associado a um tipo de relatório específico.
Listar Modelos
curl -X GET "https://api.astroapi.cloud/api/pdf-reports/templates" \
-H "X-Api-Key: your-api-key"Devolve tanto os modelos específicos da organização como os modelos globais (partilhados).
Obter um Modelo Específico
curl -X GET "https://api.astroapi.cloud/api/pdf-reports/templates/{templateId}" \
-H "X-Api-Key: your-api-key"Criar um Modelo
curl -X POST "https://api.astroapi.cloud/api/pdf-reports/templates" \
-H "X-Api-Key: your-api-key" \
-H "Content-Type: application/vnd.api+json" \
-d '{
"data": {
"type": "templates",
"attributes": {
"name": "My Natal Report Template",
"description": "Custom natal chart report",
"reportType": "natal",
"editorConfig": {},
"pageSettings": {
"format": "A4",
"orientation": "portrait",
"margins": {
"top": 20,
"right": 20,
"bottom": 20,
"left": 20
}
},
"isDefault": true
}
}
}'Atributos do Modelo
| Atributo | Tipo | Descrição |
|---|---|---|
name | string | Nome do modelo (1–100 caracteres) |
description | string | Descrição opcional |
reportType | string | Tipo de relatório para o qual este modelo se destina |
editorConfig | object | Configuração de blocos do Editor.js |
pageSettings | object | Definições de layout de página |
customCss | string | Estilos CSS personalizados |
isDefault | boolean | Definir como padrão para este tipo de relatório |
isActive | boolean | Se o modelo está activo |
Definições de Página
| Definição | Tipo | Descrição |
|---|---|---|
format | string | Tamanho de página: "A4" ou "Letter" |
orientation | string | "portrait" ou "landscape" |
margins | object | Margens da página em mm (top, right, bottom, left) |
header | object | Configuração do cabeçalho |
footer | object | Configuração do rodapé |
pageNumbers | object | Definições dos números de página |
Configuração do Cabeçalho/Rodapé
{
"header": {
"enabled": true,
"height": 15,
"content": "My Astrology Report"
},
"footer": {
"enabled": true,
"height": 15,
"content": "Generated by AstroAPI"
},
"pageNumbers": {
"enabled": true,
"position": "bottom-center",
"format": "Page <span class=\"pageNumber\"></span> of <span class=\"totalPages\"></span>"
}
}Actualizar um Modelo
curl -X PATCH "https://api.astroapi.cloud/api/pdf-reports/templates/{templateId}" \
-H "X-Api-Key: your-api-key" \
-H "Content-Type: application/vnd.api+json" \
-d '{
"data": {
"type": "templates",
"attributes": {
"name": "Updated Template Name"
}
}
}'Eliminar um Modelo
curl -X DELETE "https://api.astroapi.cloud/api/pdf-reports/templates/{templateId}" \
-H "X-Api-Key: your-api-key"Duplicar um Modelo
Copia um modelo existente (incluindo modelos globais) para a tua organização:
curl -X POST "https://api.astroapi.cloud/api/pdf-reports/templates/{templateId}/duplicate" \
-H "X-Api-Key: your-api-key"Definir Modelo Padrão
Define um modelo como padrão para o seu tipo de relatório:
curl -X POST "https://api.astroapi.cloud/api/pdf-reports/templates/{templateId}/set-default" \
-H "X-Api-Key: your-api-key"Pré-visualizar um Modelo
Pré-visualiza como um modelo será renderizado com dados de exemplo (devolve HTML):
curl -X POST "https://api.astroapi.cloud/api/pdf-reports/preview" \
-H "X-Api-Key: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"templateId": "your-template-id"
}'Resolução de Modelos
Ao gerar um PDF, o sistema resolve qual o modelo a utilizar nesta ordem:
- Modelo específico: Se
templateIdfor fornecido no pedido - Padrão da organização: O modelo padrão da organização para o tipo de relatório
- Padrão global: Um modelo padrão global (partilhado) para o tipo de relatório
Permissões Necessárias
| Endpoint | Permissão |
|---|---|
| Listar/Obter modelos | content:read |
| Gerar PDF | content:read |
| Pré-visualizar modelo | content:read |
| Criar modelo | content:create |
| Actualizar modelo | content:update |
| Eliminar modelo | content:delete |
| Duplicar modelo | content:create |
| Definir padrão | content:update |
Conteúdo do Relatório
Os relatórios gerados incluem:
- Informação do sujeito: Nome, data de nascimento, hora e local
- Posições planetárias: Todos os planetas principais com signo, casa e grau
- Cúspides das casas: Todas as 12 cúspides das casas com signos
- Aspectos: Aspectos planetários com orbes e interpretações
- Interpretações: Textos de conteúdo do CMS para cada posicionamento e aspecto
O conteúdo real depende da configuração do modelo e do conteúdo CMS disponível.