Adventure Travel Risk Assessment Tool

Adventure Travel Risk Assessment Tool

Assess Your Adventure

${severity}

Recommendations:

${recommendations}

`; resultsElements.section.classList.remove('hidden'); } // --- PDF DOWNLOAD LOGIC --- function downloadResultsAsPDF() { const { jsPDF } = window.jspdf; if (!jsPDF) { alert("PDF library not loaded."); return; } const doc = new jsPDF(); const activityId = parseInt(assessmentInputs.activity.value, 10); const activity = riskData.find(a => a.id === activityId); const duration = assessmentInputs.duration.value; const groupSize = assessmentInputs.groupSize.value; const riskScoreHTML = resultsElements.output.querySelector('.text-5xl'); const severityHTML = resultsElements.output.querySelector('.text-4xl'); const recommendationsHTML = resultsElements.output.querySelector('p.text-slate-600'); if (!activity || !riskScoreHTML || !severityHTML || !recommendationsHTML) { alert("Please calculate the risk before downloading."); return; } // --- PDF Content & Formatting --- doc.setFontSize(20); doc.setFont("helvetica", "bold"); doc.text("Adventure Travel Risk Assessment Report", 105, 20, null, null, "center"); doc.autoTable({ startY: 30, head: [['Parameter', 'Value']], body: [ ['Activity', activity.name], ['Duration', `${duration} days`], ['Group Size', `${groupSize} people`], ], theme: 'striped', headStyles: { fillColor: [37, 99, 235] } // blue-600 }); doc.autoTable({ startY: doc.autoTable.previous.finalY + 10, head: [['Assessment Result', 'Details']], body: [ ['Overall Risk Score', riskScoreHTML.textContent.trim()], ['Severity Level', severityHTML.textContent.trim()], ['Recommendations', recommendationsHTML.textContent.trim()], ], theme: 'grid', headStyles: { fillColor: [37, 99, 235] }, columnStyles: { 1: { cellWidth: 'auto' } } }); doc.save('Risk-Assessment-Report.pdf'); } // --- START THE APP --- initialize(); });
Scroll to Top