async function createIframe(): Promise { return new Promise((resolve, reject) => { const iframe = document.createElement('iframe') iframe.width = '0px' iframe.height = '0px' iframe.style.cssText = 'position: absolute; top:0; left:0' iframe.style.display = 'none' iframe.onload = function () { resolve(iframe) } document.body.appendChild(iframe) }) } function addStylesToIframe(content: Window, sizeX: number, sizeY: number) { const style = content.document.createElement('style') style.textContent = ` @page { margin: 0; size: ${sizeX}pt ${sizeY}pt; } body { margin: 0; width: 100%; } canvas { width: 100%; page-break-after: always; page-break-before: avoid; page-break-inside: avoid; } ` content.document.head.appendChild(style) } export { addStylesToIframe, createIframe, }