`;
}
async function downloadPDF() {
downloadPdfButton.disabled = true;
pdfLoadingMessage.classList.remove('hidden');
const tasks = getChecklistData();
const completedTasks = tasks.filter(t => t.completed);
const pendingTasks = tasks.filter(t => !t.completed);
const renderPdfSection = (title, taskList) => {
if (taskList.length === 0) return '';
return `
`;
pdfContainer.style.display = 'block';
try {
const canvas = await html2canvas(pdfContainer.querySelector('#pdf-content-wrapper'), { scale: 2 });
const imgData = canvas.toDataURL('image/png');
const pdf = new jsPDF({ orientation: 'p', unit: 'px', format: 'a4' });
const pdfWidth = pdf.internal.pageSize.getWidth();
const pdfHeight = (canvas.height * pdfWidth) / canvas.width;
pdf.addImage(imgData, 'PNG', 0, 0, pdfWidth, pdfHeight);
pdf.save('Franchise-Compliance-Checklist.pdf');
} catch (error) {
console.error("Error generating PDF:", error);
} finally {
downloadPdfButton.disabled = false;
pdfLoadingMessage.classList.add('hidden');
pdfContainer.style.display = 'none';
}
}
// --- EVENT LISTENERS ---
prevButton.addEventListener('click', () => navigateTabs(-1));
nextButton.addEventListener('click', () => navigateTabs(1));
downloadPdfButton.addEventListener('click', downloadPDF);
tabButtons.forEach(button => {
button.addEventListener('click', () => showTab(parseInt(button.dataset.tab, 10)));
});
initialize();
});
${title}
${taskList.map(task => `
${task.completed ? '✅' : '🔲'}
${task.text}
`).join('')}
`;
};
const pdfContainer = document.getElementById('pdf-clone-container');
pdfContainer.innerHTML = `
