Document Sentiment Analyzer

Document Sentiment Analyzer

Enter Text for Analysis

None found.

'; }; // --- Download Logic --- const generateReportText = () => { if (!analysisResult) return "No analysis performed yet."; let report = `--- Document Sentiment Analysis Report ---\n\n`; report += `Overall Sentiment: ${analysisResult.sentiment}\n`; report += `Sentiment Score: ${analysisResult.score}\n\n`; report += `--- Positive Keywords ---\n`; report += `${analysisResult.positive.join(', ') || 'None'}\n\n`; report += `--- Negative Keywords ---\n`; report += `${analysisResult.negative.join(', ') || 'None'}\n\n`; report += `--- Original Document ---\n`; report += inputText.value; return report; }; downloadTxtButton.addEventListener('click', () => { const text = generateReportText(); const blob = new Blob([text], { type: 'text/plain' }); const url = URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = 'sentiment_analysis_report.txt'; document.body.appendChild(a); a.click(); document.body.removeChild(a); URL.revokeObjectURL(url); }); downloadPdfButton.addEventListener('click', () => { if (!analysisResult) { alert("Please analyze a document first."); return; } const { jsPDF } = window.jspdf; const doc = new jsPDF({ orientation: 'p', unit: 'mm', format: 'a4' }); const margin = 20; const pageWidth = doc.internal.pageSize.getWidth(); let y = margin; doc.setFont('helvetica', 'bold').setFontSize(18).text('Document Sentiment Analysis Report', pageWidth / 2, y, { align: 'center' }); y += 15; doc.setFontSize(14).text('Analysis Summary', margin, y); y += 8; doc.setFont('helvetica', 'normal').setFontSize(11); doc.text(`Overall Sentiment: ${analysisResult.sentiment}`, margin + 5, y); y += 6; doc.text(`Sentiment Score: ${analysisResult.score}`, margin + 5, y); y += 10; doc.setFont('helvetica', 'bold').setFontSize(12).setTextColor('#16A34A').text('Positive Keywords', margin, y); y += 6; doc.setFont('helvetica', 'normal').setFontSize(10).setTextColor('#4B5563'); const posText = doc.splitTextToSize(analysisResult.positive.join(', ') || 'None found.', pageWidth - margin * 2); doc.text(posText, margin, y); y += (posText.length * 5) + 5; doc.setFont('helvetica', 'bold').setFontSize(12).setTextColor('#DC2626').text('Negative Keywords', margin, y); y += 6; doc.setFont('helvetica', 'normal').setFontSize(10).setTextColor('#4B5563'); const negText = doc.splitTextToSize(analysisResult.negative.join(', ') || 'None found.', pageWidth - margin * 2); doc.text(negText, margin, y); y += (negText.length * 5) + 10; doc.setDrawColor('#E5E7EB').line(margin, y, pageWidth - margin, y); y += 10; doc.setFont('helvetica', 'bold').setFontSize(14).setTextColor('#1F2937').text('Original Document Text', margin, y); y += 8; doc.setFont('helvetica', 'normal').setFontSize(10).setTextColor('#4B5563'); const originalText = doc.splitTextToSize(inputText.value, pageWidth - margin * 2); doc.text(originalText, margin, y); doc.save('Sentiment-Analysis-Report.pdf'); }); // --- Initial Setup --- showTab(0); });
Scroll to Top