`;
for (const category in budgetData) {
if (category === 'Dashboard') continue;
html += `
${category}
`;
html += '
';
for (const key in budgetData[category]) {
const item = budgetData[category][key];
const value = parseFloat(item.value).toLocaleString('en-US', {minimumFractionDigits: 2, maximumFractionDigits: 2});
html += `
| ${item.label} |
$${value} |
`;
}
html += '
';
}
pdfContainer.innerHTML = html;
document.body.appendChild(pdfContainer);
html2canvas(pdfContainer, { scale: 2 }).then(canvas => {
const imgData = canvas.toDataURL('image/png');
const imgProps = pdf.getImageProperties(imgData);
const pdfWidth = pdf.internal.pageSize.getWidth();
const pdfHeight = (imgProps.height * pdfWidth) / imgProps.width;
let heightLeft = pdfHeight;
let position = 0;
pdf.addImage(imgData, 'PNG', 0, position, pdfWidth, pdfHeight);
heightLeft -= pdf.internal.pageSize.getHeight();
while (heightLeft > 0) {
position = heightLeft - pdfHeight;
pdf.addPage();
pdf.addImage(imgData, 'PNG', 0, position, pdfWidth, pdfHeight);
heightLeft -= pdf.internal.pageSize.getHeight();
}
pdf.save('destination-wedding-budget.pdf');
document.body.removeChild(pdfContainer);
});
}
initialize();
});