Consumer Data Privacy Compliance Checker

Consumer Data Privacy Compliance Checker

Assess your data handling practices against key privacy principles.

This includes having a clear privacy policy and not using pre-ticked boxes.

Compliance Score: ${compliancePercentage}%

Actionable Recommendations

`; if (recommendations.length > 0) { reportHTML += `
    `; recommendations.forEach(rec => { reportHTML += `
  • ${rec.title}

    ${rec.recommendation}

  • `; }); reportHTML += `
`; } else { reportHTML += `

Excellent! Based on your answers, your practices appear to be well-aligned with key data privacy principles.

`; } reportHTML += `
`; document.getElementById('report-output-container').innerHTML = reportHTML; document.getElementById('pdf-download-section').classList.remove('hidden'); lucide.createIcons(); showTab(tabs.length - 1); } async function downloadPdf() { const pdfLoader = document.getElementById('pdf-loader'); const downloadBtn = document.getElementById('downloadPdfBtn'); const content = document.getElementById('report-output'); if(!content) return; pdfLoader.classList.remove('hidden'); downloadBtn.disabled = true; try { const canvas = await html2canvas(content, { scale: 2 }); const imgData = canvas.toDataURL('image/png'); const { jsPDF } = window.jspdf; const pdf = new jsPDF('p', 'pt', 'letter'); const pdfWidth = pdf.internal.pageSize.getWidth(); const margin = 40; const contentWidth = pdfWidth - (margin * 2); const contentHeight = (canvas.height * contentWidth) / canvas.width; const pageHeight = pdf.internal.pageSize.getHeight() - (margin * 2); let heightLeft = contentHeight; let position = margin; pdf.addImage(imgData, 'PNG', margin, position, contentWidth, contentHeight); heightLeft -= pageHeight; while (heightLeft > 0) { position = position - pageHeight - margin; pdf.addPage(); pdf.addImage(imgData, 'PNG', margin, position, contentWidth, contentHeight); heightLeft -= pageHeight; } pdf.save('Data-Privacy-Compliance-Report.pdf'); } catch (error) { console.error("Error generating PDF:", error); alert("There was an error generating the PDF. Please try again."); } finally { pdfLoader.classList.add('hidden'); downloadBtn.disabled = false; } } // Event Listeners generateBtn.addEventListener('click', generateReport); downloadPdfBtn.addEventListener('click', downloadPdf); // Initial UI setup showTab(currentTab); lucide.createIcons(); });
Scroll to Top