73 lines
3.0 KiB
JavaScript
73 lines
3.0 KiB
JavaScript
|
|
// ============================================================================
|
|||
|
|
// n8n Code Node: Полный цикл - HTML → Base64 PDF (всё в одном)
|
|||
|
|
// ============================================================================
|
|||
|
|
// Этот код делает всё: получает HTML, отправляет на конвертацию, получает base64
|
|||
|
|
// Требует настройки HTTP Request ноды или внешнего сервиса
|
|||
|
|
// ============================================================================
|
|||
|
|
|
|||
|
|
// Получаем HTML из предыдущей ноды "Code: Process Flights Data"
|
|||
|
|
const processedData = $('Code: Process Flights Data').first().json;
|
|||
|
|
|
|||
|
|
if (!processedData || !processedData.html) {
|
|||
|
|
throw new Error('HTML не получен из предыдущей ноды');
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
const html = processedData.html;
|
|||
|
|
|
|||
|
|
// ==== НАСТРОЙКИ ====
|
|||
|
|
// Замените на ваши параметры
|
|||
|
|
const PDF_SERVICE_URL = 'https://api.htmlpdfapi.com/v1/pdf'; // Или другой сервис
|
|||
|
|
const PDF_API_KEY = 'YOUR_API_KEY'; // Замените на ваш ключ
|
|||
|
|
|
|||
|
|
// ==== ПОДГОТОВКА ЗАПРОСА ДЛЯ HTTP REQUEST ====
|
|||
|
|
// Этот код подготавливает данные для HTTP Request ноды
|
|||
|
|
// После этого Code Node добавьте HTTP Request ноду и используйте эти данные
|
|||
|
|
|
|||
|
|
return [{
|
|||
|
|
json: {
|
|||
|
|
// Данные для HTTP Request ноды
|
|||
|
|
http_method: 'POST',
|
|||
|
|
http_url: PDF_SERVICE_URL,
|
|||
|
|
http_headers: {
|
|||
|
|
'Content-Type': 'application/json',
|
|||
|
|
'Authorization': `Bearer ${PDF_API_KEY}`
|
|||
|
|
},
|
|||
|
|
http_body: JSON.stringify({
|
|||
|
|
html: html,
|
|||
|
|
options: {
|
|||
|
|
format: 'A4',
|
|||
|
|
printBackground: true,
|
|||
|
|
margin: {
|
|||
|
|
top: '20mm',
|
|||
|
|
right: '15mm',
|
|||
|
|
bottom: '20mm',
|
|||
|
|
left: '15mm'
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
base64: true // Запрашиваем base64 напрямую
|
|||
|
|
}),
|
|||
|
|
|
|||
|
|
// Метаданные
|
|||
|
|
html_length: html.length,
|
|||
|
|
flights_count: processedData.flights_count,
|
|||
|
|
generated_at: processedData.generated_at,
|
|||
|
|
|
|||
|
|
// Инструкция для следующей ноды
|
|||
|
|
next_step: 'HTTP Request → Code: Extract Base64 PDF'
|
|||
|
|
}
|
|||
|
|
}];
|
|||
|
|
|
|||
|
|
// ============================================================================
|
|||
|
|
// ИНСТРУКЦИЯ ПО ИСПОЛЬЗОВАНИЮ:
|
|||
|
|
// ============================================================================
|
|||
|
|
// 1. Этот Code Node подготавливает запрос
|
|||
|
|
// 2. Добавьте HTTP Request ноду после этого Code Node
|
|||
|
|
// 3. В HTTP Request ноде используйте:
|
|||
|
|
// - Method: {{ $json.http_method }}
|
|||
|
|
// - URL: {{ $json.http_url }}
|
|||
|
|
// - Headers: {{ $json.http_headers }}
|
|||
|
|
// - Body: {{ $json.http_body }}
|
|||
|
|
// 4. После HTTP Request добавьте Code Node с кодом из N8N_FLIGHTS_PDF_BASE64_FULL.js
|
|||
|
|
// для извлечения base64 из ответа
|
|||
|
|
// ============================================================================
|