в моем приложении реагирования у меня есть iframe
, который загружен с документом HTML, и его содержание превышает 1 страницу.при нажатии Ctrl+p
я хочу напечатать его на нескольких страницах, но при предварительном просмотре печати отображается только одна страница.
как с ней следует обращаться, чтобы распознать, что содержание iframe
превышает одну страницу А4?
DOM в Chrome Devtool выглядит как
<div class="article-container">
<iframe style="">#document
/* hundreds of <p> tags */
</iframe>
</div>
структура в приложении реагирует как
<div className="article-container">
<FrameText content={content} status={!this.state.editStatus} />
</div>
и FrameText
class FrameText extends React.Component<Props> {
iframe: HTMLIFrameElement;
compinentDidMount(){
window.addEventListener('beforeprint',(e)=>{console.log(e);})
}
/* other stuff*/
render() {
const { status } = this.props;
return <iframe ref={(ref) => (this.iframe = ref!)} style={!status ? { display: 'none' } : {}} />;
}
такздесь, когда нажата ctrl+p
, я получаю событие, и документ iframe находится в событии.Кроме того, у меня есть содержимое iframe и в локальном состоянии.
Я нигде не смог найти, что при срабатывании этого события, что я могу с ним сделать, чтобы манипулировать или как-то сообщать предварительному просмотру печати, что контент длинный,
Кроме того, CSS составляет
@media print {
.article-container {
background-color: white;
height: 100%;
width: 100%;
position: fixed;
top: 0;
left: 0;
margin: 0;
padding: 15px;
font-size: 14px;
line-height: 18px;
}
}