PDF-отчёты
Создавайте профессиональные PDF-отчёты для натальных карт, синастрии, солярного возврата и многого другого. Модуль PDF-отчётов позволяет создавать настраиваемые астрологические отчёты с интерпретациями, картами и таблицами.
Обзор
Функция PDF-отчётов обеспечивает:
- Несколько типов отчётов: натальные, синастрия, композит, транзиты, солярный возврат, лунный возврат, прогрессии, нумерология и китайская астрология
- Настраиваемые шаблоны: создавайте и управляйте собственными PDF-шаблонами с пользовательской разметкой
- Автоматические расчёты: астрологические данные вычисляются на лету и встраиваются в ваш шаблон
- Профессиональный результат: высококачественная генерация PDF с поддержкой верхних и нижних колонтитулов, номеров страниц и пользовательского CSS
Поддерживаемые типы отчётов
| Тип отчёта | Описание |
|---|---|
natal | Анализ карты рождения с позициями планет, домами и аспектами |
synastry | Совместимость отношений двух карт |
composite | Объединённая карта для отношений |
transit | Текущие планетарные транзиты к натальной карте |
solar-return | Годовая карта именинника |
lunar-return | Ежемесячная карта лунного возврата |
progressions | Вторичные прогрессии |
numerology | Нумерологические расчёты и анализ |
chinese | Отчёт по китайской астрологии |
Создание PDF-отчёта
Создайте PDF-отчёт, предоставив данные о рождении и, при желании, указав шаблон.
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.pdfПараметры запроса
| Параметр | Тип | Обязателен | Описание |
|---|---|---|---|
reportType | string | Да | Тип отчёта (см. поддерживаемые типы выше) |
templateId | string | Нет | ID конкретного шаблона (используется шаблон по умолчанию, если не указан) |
subject | object | Да | Данные о рождении основного субъекта |
partner | object | Нет | Данные о рождении партнёра (обязательны для синастрии/композита) |
transitDate | object | Нет | Целевая дата для транзитных/возвратных отчётов |
Объект Subject
| Поле | Тип | Обязателен | Описание |
|---|---|---|---|
name | string | Да | Имя человека |
birthDate | object | Да | Дата и время рождения |
birthDate.year | number | Да | Год рождения |
birthDate.month | number | Да | Месяц рождения (1–12) |
birthDate.day | number | Да | День рождения (1–31) |
birthDate.hour | number | Да | Час рождения (0–23) |
birthDate.minute | number | Да | Минута рождения (0–59) |
birthPlace | object | Да | Место рождения |
birthPlace.name | string | Да | Название места |
birthPlace.latitude | number | Да | Широта (от -90 до 90) |
birthPlace.longitude | number | Да | Долгота (от -180 до 180) |
birthPlace.timezone | string | Да | Идентификатор часового пояса IANA |
Ответ
Эндпоинт возвращает PDF-файл (application/pdf) со сгенерированным отчётом.
Пример отчёта синастрии
Создание отчёта синастрии для сравнения двух натальных карт:
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.pdfПример отчёта солярного возврата
Создание карты солярного возврата для конкретного года:
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.pdfУправление шаблонами
Шаблоны определяют разметку и содержимое ваших PDF-отчётов. Каждый шаблон связан с определённым типом отчёта.
Список шаблонов
curl -X GET "https://api.astroapi.cloud/api/pdf-reports/templates" \
-H "X-Api-Key: your-api-key"Возвращает как шаблоны организации, так и глобальные (общие) шаблоны.
Получение конкретного шаблона
curl -X GET "https://api.astroapi.cloud/api/pdf-reports/templates/{templateId}" \
-H "X-Api-Key: your-api-key"Создание шаблона
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
}
}
}'Атрибуты шаблона
| Атрибут | Тип | Описание |
|---|---|---|
name | string | Название шаблона (1–100 символов) |
description | string | Необязательное описание |
reportType | string | Тип отчёта для данного шаблона |
editorConfig | object | Конфигурация блоков Editor.js |
pageSettings | object | Настройки макета страницы |
customCss | string | Пользовательские CSS-стили |
isDefault | boolean | Установить как шаблон по умолчанию для данного типа отчёта |
isActive | boolean | Активен ли шаблон |
Настройки страницы
| Настройка | Тип | Описание |
|---|---|---|
format | string | Размер страницы: "A4" или "Letter" |
orientation | string | "portrait" (книжная) или "landscape" (альбомная) |
margins | object | Поля страницы в мм (top, right, bottom, left) |
header | object | Конфигурация верхнего колонтитула |
footer | object | Конфигурация нижнего колонтитула |
pageNumbers | object | Настройки нумерации страниц |
Конфигурация верхнего/нижнего колонтитула
{
"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>"
}
}Обновление шаблона
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"
}
}
}'Удаление шаблона
curl -X DELETE "https://api.astroapi.cloud/api/pdf-reports/templates/{templateId}" \
-H "X-Api-Key: your-api-key"Дублирование шаблона
Скопируйте существующий шаблон (включая глобальные) в вашу организацию:
curl -X POST "https://api.astroapi.cloud/api/pdf-reports/templates/{templateId}/duplicate" \
-H "X-Api-Key: your-api-key"Установка шаблона по умолчанию
Установите шаблон как шаблон по умолчанию для его типа отчёта:
curl -X POST "https://api.astroapi.cloud/api/pdf-reports/templates/{templateId}/set-default" \
-H "X-Api-Key: your-api-key"Предварительный просмотр шаблона
Просмотр рендеринга шаблона с примерными данными (возвращает 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"
}'Выбор шаблона
При создании PDF система выбирает шаблон в следующем порядке:
- Конкретный шаблон: если
templateIdуказан в запросе - По умолчанию для организации: шаблон по умолчанию организации для данного типа отчёта
- Глобальный по умолчанию: глобальный (общий) шаблон по умолчанию для данного типа отчёта
Необходимые разрешения
| Эндпоинт | Разрешение |
|---|---|
| Список/Просмотр шаблонов | content:read |
| Генерация PDF | content:read |
| Предварительный просмотр шаблона | content:read |
| Создание шаблона | content:create |
| Обновление шаблона | content:update |
| Удаление шаблона | content:delete |
| Дублирование шаблона | content:create |
| Установка по умолчанию | content:update |
Содержимое отчёта
Сгенерированные отчёты включают:
- Информация о субъекте: имя, дата, время и место рождения
- Позиции планет: все основные планеты со знаком, домом и градусом
- Куспиды домов: все 12 куспидов домов со знаками
- Аспекты: планетарные аспекты с орбами и интерпретациями
- Интерпретации: текстовый контент из CMS для каждой позиции и аспекта
Фактическое содержимое зависит от конфигурации шаблона и доступного контента CMS.