fix: render PDF from attached DOM container to avoid blank pages
This commit is contained in:
@@ -500,22 +500,43 @@ async function downloadPdf(){
|
|||||||
alert('PDF-Export-Bibliothek nicht geladen.');
|
alert('PDF-Export-Bibliothek nicht geladen.');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const root = document.createElement('div');
|
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.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.innerHTML = app.innerHTML;
|
||||||
|
|
||||||
root.querySelectorAll('.card-actions,.card-action-btn,button,[data-edit-all]').forEach(el => el.remove());
|
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 = {
|
const opt = {
|
||||||
margin: [8, 8, 8, 8],
|
margin: [5, 5, 5, 5],
|
||||||
filename: `coachingcards-${new Date().toISOString().slice(0,10)}.pdf`,
|
filename: `coachingcards-${new Date().toISOString().slice(0,10)}.pdf`,
|
||||||
image: { type: 'jpeg', quality: 0.96 },
|
image: { type: 'jpeg', quality: 0.98 },
|
||||||
html2canvas: { scale: 2, useCORS: true, backgroundColor: '#ffffff' },
|
html2canvas: { scale: 2, useCORS: true, backgroundColor: '#ffffff', logging: false },
|
||||||
jsPDF: { unit: 'mm', format: 'a4', orientation: 'portrait' },
|
jsPDF: { unit: 'mm', format: 'a4', orientation: 'portrait' },
|
||||||
pagebreak: { mode: ['css', 'legacy'] }
|
pagebreak: { mode: ['css', 'legacy'] }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
try {
|
||||||
await window.html2pdf().set(opt).from(root).save();
|
await window.html2pdf().set(opt).from(root).save();
|
||||||
|
} finally {
|
||||||
|
root.remove();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function syncActiveJob(){
|
async function syncActiveJob(){
|
||||||
|
|||||||
Reference in New Issue
Block a user