javascript - window.print() 不打印整个页面
问题描述
我正在尝试使用 打印新打开的窗口window.print()
。
我的问题是,只有页面的开始部分正在打印(只有当您滚动到窗口左上角时看到的内容)。
这是我的代码:
var printWindow = window.open("", "Print", "width=" + nWidth + "px, height=" + nHeight+ "px");
printWindow.document.write(sSvgData, sDivData);
printWindow.document.close();
printWindow.print();
我已经尝试过的解决方案,但对我不起作用:
1)将整个 html 写入文档(使用window.document.write()
)并包括我css
的 in 标题
<html><head><link rel="stylesheet" href="../css/style.css" type="text/css" media="print"/></head>
<body>...
style.css:
@media print {
body, html, div, #wrapper {
height: 100%;
width: 100%;
}
}
2) 与 1) 相同,但包括内联样式,如下所示:
<html><style>@media print { body, html, #wrapper { height: 100%; width: 100%;} }</style><body>...
解决方案
JavaScript 中的 window 仅指可见窗口。如在屏幕上可见的任何内容。
1) 一种方法是单独滚动和打印每一页。
2) 其他方法是使用@media css,但您还需要将 div 标签设置为高度 100%。
@media print {
body, html, div, #wrapper {
height: 100%;
}
}
如果这也不起作用,请在浏览器中检查页面并检查所有标签。某些网站使用标签或其他标签,因此您需要查看您尝试打印的网站中的所有标签,并将所有标签添加到相同的 css 打印样式中。
另外,如果这有帮助,请尝试:http: //jsfiddle.net/nAFSN/1/
编辑:很久以前,我也花了相当多的时间在它周围摸索,我强烈建议使用 pdf。尝试创建内容的 pdf,并在用户单击打印时将其发送回给用户。这样,您将可以更好地控制在每个页面上显示的方式和内容。
推荐阅读
- c# - XAML/UWP 为画布上的形状添加阴影
- php - Symfony 5 抛出拒绝访问异常
- z3 - seq.nth 在存在表达式中的奇怪行为
- dataframe - pySpark dict(键,值,值)
- linux - 如何更改 asm x64 中的 errno 值
- typescript - 如何以有效的方式替换对象值?
- php - 如何连接 AS400 和 Laravel
- c# - C# checkboxlist:如何避免通过单击标签来更改复选框状态?
- android - 如何在基于 Kotlin 的壁纸应用中将位图图像设置为锁屏壁纸?
- javascript - prisma2:如何获取嵌套字段?