fix: render PDF from attached DOM container to avoid blank pages

This commit is contained in:
2026-03-08 10:32:58 +01:00
parent d62e0cf35c
commit a3e75c0950

View File

@@ -500,22 +500,43 @@ async function downloadPdf(){
alert('PDF-Export-Bibliothek nicht geladen.');
return;
}
const root = document.createElement('div');
root.style.position = 'fixed';
root.style.left = '0';
root.style.top = '0';
root.style.width = '210mm';
root.style.minHeight = '297mm';
root.style.background = '#fff';
root.style.padding = '8px';
root.style.padding = '8mm';
root.style.zIndex = '-1';
root.style.opacity = '0.01';
root.style.pointerEvents = 'none';
root.innerHTML = app.innerHTML;
root.querySelectorAll('.card-actions,.card-action-btn,button,[data-edit-all]').forEach(el => el.remove());
root.querySelectorAll('.exercise-container').forEach(el => { el.style.pageBreakAfter = 'always'; });
root.querySelectorAll('.card-size').forEach(el => {
el.style.boxShadow = 'none';
el.style.margin = '0 auto 10mm auto';
});
document.body.appendChild(root);
const opt = {
margin: [8, 8, 8, 8],
margin: [5, 5, 5, 5],
filename: `coachingcards-${new Date().toISOString().slice(0,10)}.pdf`,
image: { type: 'jpeg', quality: 0.96 },
html2canvas: { scale: 2, useCORS: true, backgroundColor: '#ffffff' },
image: { type: 'jpeg', quality: 0.98 },
html2canvas: { scale: 2, useCORS: true, backgroundColor: '#ffffff', logging: false },
jsPDF: { unit: 'mm', format: 'a4', orientation: 'portrait' },
pagebreak: { mode: ['css', 'legacy'] }
};
try {
await window.html2pdf().set(opt).from(root).save();
} finally {
root.remove();
}
}
async function syncActiveJob(){