`;
pdfContent.classList.remove('hidden');
html2canvas(pdfContent, { scale: 2 }).then(canvas => {
const imgData = canvas.toDataURL('image/png');
const pdf = new jsPDF('p', 'pt', 'a4');
const pdfWidth = pdf.internal.pageSize.getWidth();
const pdfHeight = (canvas.height * pdfWidth) / canvas.width;
pdf.addImage(imgData, 'PNG', 0, 0, pdfWidth, pdfHeight);
pdf.save('image-background-remover-report.pdf');
pdfContent.classList.add('hidden');
}).catch(err => {
console.error("PDF generation failed:", err);
pdfContent.classList.add('hidden');
});
};
// --- Event Listeners ---
uploadButton.addEventListener('click', () => fileInput.click());
fileInput.addEventListener('change', (e) => handleFileSelect(e.target.files[0]));
['dragenter', 'dragover', 'dragleave', 'drop'].forEach(eventName => {
dropZone.addEventListener(eventName, (e) => {
e.preventDefault();
e.stopPropagation();
}, false);
});
['dragenter', 'dragover'].forEach(eventName => {
dropZone.addEventListener(eventName, () => dropZone.classList.add('drag-over'), false);
});
['dragleave', 'drop'].forEach(eventName => {
dropZone.addEventListener(eventName, () => dropZone.classList.remove('drag-over'), false);
});
dropZone.addEventListener('drop', (e) => handleFileSelect(e.dataTransfer.files[0]), false);
startOverBtn.addEventListener('click', handleStartOver);
downloadPdfBtn.addEventListener('click', handlePdfDownload);
downloadPngBtn.addEventListener('click', () => {
const link = document.createElement('a');
link.download = `background-removed-${uploadedFile?.name || 'image'}.png`;
link.href = resultImage.src;
link.click();
});
});
