`;
}
function downloadPDF() {
const { jsPDF } = window.jspdf;
const contentToCapture = document.getElementById('pdf-content');
if (!contentToCapture) return;
html2canvas(contentToCapture, { scale: 2 }).then(canvas => {
const imgData = canvas.toDataURL('image/png');
const pdf = new jsPDF({ orientation: 'portrait', unit: 'pt', format: 'a4' });
const pdfWidth = pdf.internal.pageSize.getWidth();
const margin = 50;
const contentWidth = pdfWidth - (margin * 2);
const contentHeight = (canvas.height * contentWidth) / canvas.width;
pdf.addImage(imgData, 'PNG', margin, margin, contentWidth, contentHeight);
pdf.save('Signed-Document.pdf');
});
}
// --- Event Listeners ---
canvas.addEventListener('mousedown', startDrawing);
canvas.addEventListener('mousemove', draw);
canvas.addEventListener('mouseup', stopDrawing);
canvas.addEventListener('mouseout', stopDrawing);
canvas.addEventListener('touchstart', startDrawing, { passive: false });
canvas.addEventListener('touchmove', draw, { passive: false });
canvas.addEventListener('touchend', stopDrawing);
clearBtn.addEventListener('click', clearCanvas);
signerNameInput.addEventListener('input', updateDocumentDetails);
signatureDateInput.addEventListener('input', updateDocumentDetails);
tabs.forEach((tab, index) => tab.addEventListener('click', () => switchTab(index)));
nextBtn.addEventListener('click', () => {
if (currentTab < tabs.length - 1) switchTab(currentTab + 1);
});
prevBtn.addEventListener('click', () => {
if (currentTab > 0) switchTab(currentTab - 1);
});
drawTabBtn.addEventListener('click', () => {
signatureMode = 'draw';
drawSection.classList.remove('hidden');
typeSection.classList.add('hidden');
drawTabBtn.classList.replace('bg-gray-200', 'bg-blue-600');
drawTabBtn.classList.replace('text-gray-700', 'text-white');
typeTabBtn.classList.replace('bg-blue-600', 'bg-gray-200');
typeTabBtn.classList.replace('text-white', 'text-gray-700');
});
typeTabBtn.addEventListener('click', () => {
signatureMode = 'type';
typeSection.classList.remove('hidden');
drawSection.classList.add('hidden');
typeTabBtn.classList.replace('bg-gray-200', 'bg-blue-600');
typeTabBtn.classList.replace('text-gray-700', 'text-white');
drawTabBtn.classList.replace('bg-blue-600', 'bg-gray-200');
drawTabBtn.classList.replace('text-white', 'text-gray-700');
});
document.getElementById('download-pdf-btn').addEventListener('click', downloadPDF);
// --- Initial Setup ---
resizeCanvas();
updateNavButtons();
updateDocumentDetails();
// Set default date
signatureDateInput.valueAsDate = new Date();
updateDocumentDetails();
});