// ============================================================================ // n8n Code Node: HTML → Base64 PDF (простой вариант) // ============================================================================ // Используйте этот код ПОСЛЕ ноды, которая вернула HTML // Этот код подготовит запрос для HTTP Request ноды // ============================================================================ // Получаем HTML из предыдущей ноды // Если HTML пришёл в поле "html", используем его const html = $json.html || $json.body?.html || $json; if (!html || typeof html !== 'string') { throw new Error('HTML не найден в входных данных. Проверьте структуру данных.'); } console.log('📄 HTML получен, длина:', html.length); // ==== НАСТРОЙКИ СЕРВИСА КОНВЕРТАЦИИ ==== // Выберите один из вариантов ниже и раскомментируйте его // ==== ВАРИАНТ 1: htmlpdfapi.com (рекомендуется) ==== // Бесплатный план: 100 PDF в месяц // URL: https://htmlpdfapi.com return [{ json: { // Данные для HTTP Request ноды method: 'POST', url: 'https://api.htmlpdfapi.com/v1/pdf', headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_API_KEY' // ⚠️ ЗАМЕНИТЕ на ваш API ключ }, body: JSON.stringify({ html: html, options: { format: 'A4', printBackground: true, margin: { top: '20mm', right: '15mm', bottom: '20mm', left: '15mm' } }, base64: true // Запрашиваем base64 напрямую }) } }]; // ==== ВАРИАНТ 2: pdfshift.io ==== // Раскомментируйте, если используете pdfshift.io /* return [{ json: { method: 'POST', url: 'https://api.pdfshift.io/v3/convert/pdf', headers: { 'Content-Type': 'application/json', 'Authorization': 'Basic ' + Buffer.from('api:YOUR_API_KEY').toString('base64') }, body: JSON.stringify({ source: html, format: 'A4', margin: '20mm' }) } }]; */ // ==== ВАРИАНТ 3: api2pdf.com ==== // Раскомментируйте, если используете api2pdf.com /* return [{ json: { method: 'POST', url: 'https://v2.api2pdf.com/chrome/html', headers: { 'Authorization': 'YOUR_API_KEY', 'Content-Type': 'application/json' }, body: JSON.stringify({ html: html, inlinePdf: true, fileName: 'flights-report.pdf' }) } }]; */ // ============================================================================ // ИНСТРУКЦИЯ: // ============================================================================ // 1. Этот Code Node подготавливает запрос // 2. Добавьте HTTP Request ноду после этого Code Node // 3. В HTTP Request ноде настройте: // - Method: {{ $json.method }} // - URL: {{ $json.url }} // - Headers: {{ $json.headers }} // - Body: {{ $json.body }} // 4. После HTTP Request добавьте Code Node с кодом из N8N_EXTRACT_BASE64_FROM_RESPONSE.js // для извлечения base64 из ответа // ============================================================================