Smart Whiteboard Assistant

Smart Whiteboard Assistant

Generated on: ${new Date().toLocaleDateString("en-US", { year: 'numeric', month: 'long', day: 'numeric' })}

Whiteboard Snapshot

Whiteboard Snapshot

AI-Powered Analysis

${analysisHtml || '

No analysis was generated for this session.

'}
`; const pdfTemplate = document.getElementById('pdf-template'); pdfTemplate.innerHTML = reportHtml; pdfTemplate.style.position = 'absolute'; pdfTemplate.style.left = '-9999px'; pdfTemplate.classList.remove('invisible'); try { const { jsPDF } = window.jspdf; const pdfCanvas = await html2canvas(pdfTemplate.querySelector('.pdf-report-container'), { scale: 2, backgroundColor: '#ffffff', useCORS: true }); const imgData = pdfCanvas.toDataURL('image/png'); const pdf = new jsPDF({ orientation: 'p', unit: 'pt', format: 'a4' }); const pdfWidth = pdf.internal.pageSize.getWidth(); const pdfHeight = (pdfCanvas.height * pdfWidth) / pdfCanvas.width; pdf.addImage(imgData, 'PNG', 0, 0, pdfWidth, pdfHeight); pdf.save('Smart_Whiteboard_Summary.pdf'); } catch(e) { console.error(e); alert('Error generating PDF.'); } finally { pdfTemplate.style.position = ''; pdfTemplate.style.left = '-left-full'; pdfTemplate.classList.add('invisible'); button.disabled = false; button.textContent = originalText; } } // --- Event Listeners --- window.addEventListener('resize', resizeCanvas); canvas.addEventListener('mousedown', handleStart); canvas.addEventListener('mousemove', draw); canvas.addEventListener('mouseup', handleEnd); canvas.addEventListener('mouseleave', handleEnd); canvas.addEventListener('touchstart', handleStart); canvas.addEventListener('touchmove', draw); canvas.addEventListener('touchend', handleEnd); clearBtn.addEventListener('click', () => { ctx.fillStyle = "white"; ctx.fillRect(0, 0, canvas.width, canvas.height); }); toolBtns.forEach(btn => { btn.addEventListener('click', () => { setActiveTool(btn.dataset.tool); }); }); document.getElementById('analyze-btn').addEventListener('click', analyzeWhiteboard); document.getElementById('download-pdf-btn').addEventListener('click', generatePdfReport); // --- Initial Setup --- resizeCanvas(); setActiveTool('pencil'); });
Scroll to Top