Language Syntax Analyzer

Language Syntax Analyzer

"${sentence.text}"

${tableRows}
Token Part of Speech Lemma Dependency
`; resultsContainer.innerHTML += sentenceHtml; }); downloadContainer.style.display = 'block'; } /** * Generates and downloads a professional PDF report of the analysis. */ function downloadPDF() { if (!currentAnalysis) { alert('No analysis available to download.'); return; } const { jsPDF } = window.jspdf; const doc = new jsPDF(); const pageWidth = doc.internal.pageSize.getWidth(); const margin = 15; let finalY = 0; // --- PDF Header --- doc.setFillColor(37, 99, 235); doc.rect(0, 0, pageWidth, 25, 'F'); doc.setTextColor(255, 255, 255); doc.setFont('helvetica', 'bold'); doc.setFontSize(16); doc.text('Language Syntax Analysis Report', pageWidth / 2, 15, { align: 'center' }); // --- Summary Section --- doc.setFont('helvetica', 'bold'); doc.setTextColor(30, 41, 59); doc.setFontSize(14); doc.text('Analysis Summary', margin, 40); doc.setFont('helvetica', 'normal'); doc.setFontSize(11); const summaryLines = doc.splitTextToSize(currentAnalysis.summary, pageWidth - (margin * 2)); doc.text(summaryLines, margin, 48); finalY = doc.lastAutoTable.finalY || 50 + summaryLines.length * 5; // --- Detailed Breakdown --- currentAnalysis.sentences.forEach((sentence, index) => { finalY += 15; // Space before next section doc.setFont('helvetica', 'bold'); doc.setFontSize(12); doc.text(`Sentence ${index + 1}:`, margin, finalY); doc.setFont('helvetica', 'italic'); doc.setTextColor(100, 116, 139); doc.text(`"${sentence.text}"`, margin, finalY + 6); doc.setTextColor(30, 41, 59); // Reset color const tableBody = sentence.tokens.map(t => [t.text, t.pos, t.lemma, t.dependency]); doc.autoTable({ startY: finalY + 10, head: [['Token', 'Part of Speech', 'Lemma', 'Dependency']], body: tableBody, theme: 'grid', headStyles: { fillColor: [59, 130, 246] }, didDrawPage: (data) => { // Add footer to each page doc.setFontSize(10); doc.setTextColor(150); doc.text(`Page ${doc.internal.getNumberOfPages()}`, pageWidth / 2, doc.internal.pageSize.getHeight() - 10, { align: 'center' }); } }); finalY = doc.lastAutoTable.finalY; }); doc.save('Syntax-Analysis-Report.pdf'); } // --- Utility Functions --- function showLoader() { resultsContainer.innerHTML = '
'; } function hideLoader() { const loader = resultsContainer.querySelector('.loader'); if (loader) loader.remove(); } function clearResults() { resultsContainer.innerHTML = ''; downloadContainer.style.display = 'none'; currentAnalysis = null; } function displayError(message) { clearResults(); resultsContainer.innerHTML = `
${message}
`; } });
Scroll to Top