Advertisement Headline Creator
Generate compelling headlines that capture attention and drive clicks.
Review your generated headlines below. Download them as a PDF copy brief.
No headlines generated. Please fill out the form.
'; return; } const list = document.createElement('ul'); generatedHeadlines.forEach(headline => { const listItem = document.createElement('li'); listItem.textContent = headline; list.appendChild(listItem); }); elements.outputContainer.innerHTML = ''; elements.outputContainer.appendChild(list); }; const handleDownloadPdf = () => { const { jsPDF } = window.jspdf; if (!jsPDF) { console.error("jsPDF is not loaded."); return; } const doc = new jsPDF({ orientation: 'portrait', unit: 'in', format: 'letter' }); const data = getFormData(); const margin = 0.75; const pageWidth = doc.internal.pageSize.getWidth(); const usableWidth = pageWidth - (margin * 2); let currentY = 0; // PDF Header doc.setFillColor('#3730a3'); // indigo-800 doc.rect(0, 0, pageWidth, 1.7, 'F'); // Lightbulb Icon doc.setFillColor('#e0e7ff'); // indigo-100 doc.circle(margin + 0.35, 0.85, 0.3, 'F'); doc.rect(margin + 0.2, 1.15, 0.3, 0.1, 'F'); doc.setFont('helvetica', 'bold'); doc.setFontSize(24); doc.setTextColor('#ffffff'); doc.text('Ad Copy & Headline Brief', margin + 0.9, 0.9); doc.setFontSize(11); doc.setTextColor('#c7d2fe'); // indigo-200 doc.text(`Product: ${data.productName}`, margin + 0.9, 1.2); currentY = 2.0; // Campaign Details Section doc.setFont('helvetica', 'bold'); doc.setFontSize(12); doc.setTextColor('#1e1b4b'); // indigo-900 doc.text('CAMPAIGN DETAILS', margin, currentY); doc.setDrawColor('#a5b4fc'); // indigo-300 doc.setLineWidth(0.01); doc.line(margin, currentY + 0.05, pageWidth - margin, currentY + 0.05); currentY += 0.3; const details = [ { label: 'Target Audience:', value: data.targetAudience }, { label: 'Key Benefit:', value: data.keyBenefit }, { label: 'Desired Tone:', value: data.desiredTone }, { label: 'Platform:', value: data.adPlatform }, ]; doc.setFont('helvetica', 'normal'); doc.setFontSize(10); doc.setTextColor('#374151'); // gray-700 details.forEach(detail => { doc.setFont('helvetica', 'bold'); doc.text(detail.label, margin, currentY); doc.setFont('helvetica', 'normal'); doc.text(detail.value, margin + 1.5, currentY); currentY += 0.25; }); currentY += 0.2; // Generated Headlines Section doc.setFont('helvetica', 'bold'); doc.setFontSize(12); doc.setTextColor('#1e1b4b'); // indigo-900 doc.text('GENERATED HEADLINES', margin, currentY); doc.line(margin, currentY + 0.05, pageWidth - margin, currentY + 0.05); currentY += 0.3; doc.setFont('helvetica', 'normal'); generatedHeadlines.forEach((headline, index) => { if (currentY > 10) { doc.addPage(); currentY = margin; } const textLines = doc.splitTextToSize(`• ${headline}`, usableWidth - 0.2); doc.text(textLines, margin + 0.1, currentY); currentY += (textLines.length * 0.2) + 0.05; }); doc.save('Ad-Headlines-Brief.pdf'); }; // --- Event Listeners --- elements.tabDefine.addEventListener('click', () => switchTab('define')); elements.tabReview.addEventListener('click', () => switchTab('review')); elements.nextBtn.addEventListener('click', () => currentTab === 'define' && switchTab('review')); elements.prevBtn.addEventListener('click', () => currentTab === 'review' && switchTab('define')); elements.downloadPdfBtn.addEventListener('click', handleDownloadPdf); });