`;
pdfContainer.innerHTML = pdfContentHtml;
const contentToCapture = document.getElementById('pdf-content');
if (!contentToCapture) return;
const sanitizedFileName = title.replace(/[^a-z0-9]/gi, '_').toLowerCase();
const fileName = `${sanitizedFileName}.pdf`;
html2canvas(contentToCapture, { scale: 2, useCORS: true, logging: false })
.then(canvas => {
const imgData = canvas.toDataURL('image/jpeg', 0.95);
const pdf = new jsPDF({ orientation: 'portrait', unit: 'pt', format: 'a4' });
const imgProps = pdf.getImageProperties(imgData);
const pdfWidth = pdf.internal.pageSize.getWidth();
const pdfHeight = pdf.internal.pageSize.getHeight();
const ratio = imgProps.width / imgProps.height;
const scaledImgHeight = pdfWidth / ratio;
let heightLeft = scaledImgHeight;
let position = 0;
pdf.addImage(imgData, 'JPEG', 0, position, pdfWidth, scaledImgHeight);
heightLeft -= pdfHeight;
while (heightLeft > 0) {
position -= pdfHeight;
pdf.addPage();
pdf.addImage(imgData, 'JPEG', 0, position, pdfWidth, scaledImgHeight);
heightLeft -= pdfHeight;
}
pdf.save(fileName);
pdfContainer.innerHTML = '';
}).catch(error => {
console.error("Error generating PDF:", error);
pdfContainer.innerHTML = '';
});
};
// --- RUN ON LOAD ---
showTab(1);
// Add some default key points
keyPoints = [
{ id: pointIdCounter++, text: 'The Limitations of Traditional Audience Segmentation' },
{ id: pointIdCounter++, text: 'How AI Creates Dynamic, Individual Customer Profiles' },
{ id: pointIdCounter++, text: 'Case Study: A Successful Implementation of Hyper-Personalization' }
];
renderKeyPoints();
});