Online AI-Generated Text Detection Tool

AI-Generated Text Detector

Analyze text to determine the likelihood of AI generation.

1. Input Text
2. AI Detection Analysis
3. Export Report

Download Your Analysis Report

Export the complete AI detection analysis as a professional PDF document.

${conclusionText}

Linguistic Metrics

  • Sentence Variation (Burstiness): ${burstiness} (Lower scores are more robotic)
  • Flesch Reading Ease: ${readingEase} (Scores 50-70 are common for AI)
`; }; // --- PDF UTILITY --- const downloadPDF = () => { if (!analysisData.probability) { alert("Please analyze text before downloading the report."); return; } const { jsPDF } = window.jspdf; const pdf = new jsPDF({ orientation: 'p', unit: 'pt', format: 'a4' }); const title = "AI-Generated Text Analysis Report"; const PAGE_WIDTH = pdf.internal.pageSize.getWidth(); const MARGIN = 50; let y = 0; // Header pdf.setFillColor(20, 83, 100); // teal-800 pdf.rect(0, 0, PAGE_WIDTH, 70, 'F'); pdf.setFont('helvetica', 'bold'); pdf.setFontSize(22); pdf.setTextColor(255, 255, 255); pdf.text(title, MARGIN, 45); y = 110; const addSection = (secTitle, secContent) => { if (y > pdf.internal.pageSize.getHeight() - 80) { pdf.addPage(); y = MARGIN; } pdf.setFont('helvetica', 'bold'); pdf.setFontSize(14); pdf.setTextColor(15, 116, 144); // cyan-700 pdf.text(secTitle, MARGIN, y); y += 20; pdf.setFont('helvetica', 'normal'); pdf.setFontSize(10); pdf.setTextColor(51, 65, 85); // slate-700 from light theme for readability const lines = pdf.splitTextToSize(secContent, PAGE_WIDTH - MARGIN * 2); pdf.text(lines, MARGIN, y); y += lines.length * 12 + 25; }; addSection("Detection Probability", `${analysisData.probability.toFixed(0)}% Likelihood of AI Generation`); const summary = `Sentence Variation (Burstiness): ${analysisData.burstiness}\nFlesch Reading Ease: ${analysisData.readingEase}`; addSection("Key Linguistic Metrics", summary); pdf.addPage(); y = MARGIN; addSection("Analyzed Text", analysisData.originalText); pdf.save(`AI_Detection_Report.pdf`); }; // --- EVENT LISTENERS --- elements.prevBtn.addEventListener('click', () => nextPrev(-1)); elements.nextBtn.addEventListener('click', () => nextPrev(1)); elements.tabs.forEach((tab, i) => { tab.addEventListener('click', () => { if (i <= maxUnlockedTab) { if (i === 1 && !analysisData.probability) { if (!performAnalysis()) return; } showTab(i); } }); }); elements.downloadPdfBtn.addEventListener('click', downloadPDF); // Initialize showTab(currentTab); });
Scroll to Top