window.print() и научить юзера использовать стандартный функционал печати браузера. Браузер прекрасно всё распечатает сам как надо. Разве что со своей стороны тебе придётся немного пофиксить css под media print. Это предпочтительный вариант.useEffect(() => {
if (mark && isOpen) {
const printContent = document.querySelector('.popup_content');
if (printContent) {
const printDiv = printContent.cloneNode(true) as HTMLElement;
printDiv.style.display = 'block';
document.body.appendChild(printDiv);
window.print();
document.body.removeChild(printDiv);
}
}
}, [mark, isOpen]);.popup_content {
display: flex;
flex-direction: column;
row-gap: 30px;
box-sizing: border-box;
overflow: hidden;
z-index: 202;
position: relative;
width: calc(100% - 208px); /* 104px с каждой стороны */
height: 90vh;
background: white;
padding: 50px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
border-radius: 25px;
}
@media print {
.popup_content {
display: flex;
flex-direction: column;
row-gap: 30px;
box-sizing: border-box;
overflow: hidden;
z-index: 202;
position: relative;
width: 100%;
height: 600px;
background: red;
padding: 50px;
}
}