`;
let tableHTML = `
';
document.getElementById('pdf-projection-details').innerHTML = tableHTML;
// Add chart image to PDF
const chartImage = growthChart.toBase64Image();
document.getElementById('pdf-chart-image').src = chartImage;
// Use html2canvas to render the prepared report element
const reportElement = document.getElementById('pdf-report');
reportElement.style.display = 'block'; // Make it visible for rendering
const canvas = await html2canvas(reportElement, {
scale: 2 // Increase resolution for better quality
});
reportElement.style.display = 'none'; // Hide it again
const imgData = canvas.toDataURL('image/png');
const imgProps = pdf.getImageProperties(imgData);
const pdfWidth = pdf.internal.pageSize.getWidth();
const pdfHeight = (imgProps.height * pdfWidth) / imgProps.width;
pdf.addImage(imgData, 'PNG', 0, 0, pdfWidth, pdfHeight);
pdf.save('Investment-Forecast-Report.pdf');
}
// Run a forecast with default values on page load for demonstration
runForecast();
});
| Year | Start Balance | Contributions | Interest Earned | End Balance |
|---|---|---|---|---|
| ${d.year} | ${formatCurrency(d.startBalance)} | ${formatCurrency(yearlyContribution)} | ${formatCurrency(d.interestEarned)} | ${formatCurrency(d.endBalance)} |
