113 lines
3.1 KiB
Markdown
113 lines
3.1 KiB
Markdown
|
|
# Полный Workflow: HTML → Base64 PDF
|
|||
|
|
|
|||
|
|
## Структура
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
[HTTP Request: FlightAware]
|
|||
|
|
↓
|
|||
|
|
[HTTP Request: FlightRadar24]
|
|||
|
|
↓
|
|||
|
|
[Code: Process Flights Data] ← Генерирует HTML + подготавливает запрос для PDF
|
|||
|
|
↓
|
|||
|
|
[HTTP Request: Convert to PDF] ← Конвертирует HTML в base64 PDF
|
|||
|
|
↓
|
|||
|
|
[Code: Extract Base64 PDF] ← Извлекает base64 из ответа
|
|||
|
|
↓
|
|||
|
|
[Использование base64 PDF]
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Настройка нод
|
|||
|
|
|
|||
|
|
### 1. Code: Process Flights Data
|
|||
|
|
|
|||
|
|
**Код:** Используйте обновлённый `N8N_CODE_PROCESS_FLIGHTS_DATA.js`
|
|||
|
|
|
|||
|
|
**Выходные данные:**
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"html": "<!DOCTYPE html>...",
|
|||
|
|
"flights": [...],
|
|||
|
|
"pdf_request_method": "POST",
|
|||
|
|
"pdf_request_url": "https://api.htmlpdfapi.com/v1/pdf",
|
|||
|
|
"pdf_request_headers": {...},
|
|||
|
|
"pdf_request_body": "{...}"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. HTTP Request: Convert to PDF
|
|||
|
|
|
|||
|
|
**Название:** `HTTP Request: Convert to PDF`
|
|||
|
|
|
|||
|
|
**Настройка:**
|
|||
|
|
- **Method:** `{{ $json.pdf_request_method }}`
|
|||
|
|
- **URL:** `{{ $json.pdf_request_url }}`
|
|||
|
|
- **Authentication:** None (или по необходимости)
|
|||
|
|
- **Headers:**
|
|||
|
|
```json
|
|||
|
|
{{ $json.pdf_request_headers }}
|
|||
|
|
```
|
|||
|
|
- **Body:**
|
|||
|
|
```json
|
|||
|
|
{{ $json.pdf_request_body }}
|
|||
|
|
```
|
|||
|
|
- **Response Format:** `JSON`
|
|||
|
|
|
|||
|
|
### 3. Code: Extract Base64 PDF
|
|||
|
|
|
|||
|
|
**Название:** `Code: Extract Base64 PDF`
|
|||
|
|
|
|||
|
|
**Код:** Используйте `N8N_EXTRACT_BASE64_FROM_RESPONSE.js`
|
|||
|
|
|
|||
|
|
**Выходные данные:**
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"pdf_base64": "JVBERi0xLjQKJeLjz9MK...",
|
|||
|
|
"pdf_size_mb": "0.12",
|
|||
|
|
"filename": "flights-report-2026-01-16.pdf",
|
|||
|
|
"success": true
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Альтернатива: Использование Convert to File
|
|||
|
|
|
|||
|
|
Если вы хотите использовать ноду **Convert to File** для создания HTML файла, а затем конвертировать его в PDF:
|
|||
|
|
|
|||
|
|
### Вариант A: HTML файл → PDF через сервис
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
[Code: Process Flights Data]
|
|||
|
|
↓
|
|||
|
|
[Convert to File] ← Operation: "html", Put Output File in Field: {{ $json.html }}
|
|||
|
|
↓
|
|||
|
|
[HTTP Request: Convert to PDF] ← Отправьте binary HTML файл в сервис конвертации
|
|||
|
|
↓
|
|||
|
|
[Code: Extract Base64 PDF]
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Вариант B: Прямая конвертация HTML → Base64 PDF
|
|||
|
|
|
|||
|
|
Пропустите ноду Convert to File и используйте HTML напрямую:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
[Code: Process Flights Data]
|
|||
|
|
↓
|
|||
|
|
[HTTP Request: Convert to PDF] ← Используйте {{ $json.html }} в body
|
|||
|
|
↓
|
|||
|
|
[Code: Extract Base64 PDF]
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Настройка API ключа
|
|||
|
|
|
|||
|
|
В файле `N8N_CODE_PROCESS_FLIGHTS_DATA.js` найдите строку:
|
|||
|
|
```javascript
|
|||
|
|
const PDF_API_KEY = 'YOUR_API_KEY';
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Замените `YOUR_API_KEY` на ваш реальный API ключ от сервиса конвертации.
|
|||
|
|
|
|||
|
|
## Популярные сервисы
|
|||
|
|
|
|||
|
|
1. **htmlpdfapi.com** - 100 PDF/месяц бесплатно
|
|||
|
|
2. **pdfshift.io** - 100 PDF/месяц бесплатно
|
|||
|
|
3. **api2pdf.com** - 50 PDF/месяц бесплатно
|