window.print()不能打印整个页面

时间:2020-05-26 07:34:55

标签: javascript jquery window

我正在尝试使用window.print()打印新打开的窗口。

我的问题是,仅打印页面的 start 部分(仅滚动到窗口左上角时看到的内容)。

这是我的代码:

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包含在标题中

<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>...

1 个答案:

答案 0 :(得分:0)

JavaScript中的

窗口仅指可见窗口。如图所示,屏幕上可见的所有内容。

1)一种解决方法是分别滚动和打印每页。

2)其他方法是使用@media CSS,但是您还需要将div标签设置为高度100%。

@media print {
      body, html, div, #wrapper {
          height: 100%;
      }
}

如果这还是行不通的,请在浏览器中检查页面并签出所有标签。某些网站使用标签或其他标签,因此您需要查看要打印的网站中所有标签的内容,然后将所有标签都添加到相同的CSS打印样式中。

也请尝试这样做是否有帮助:http://jsfiddle.net/nAFSN/1/

编辑:我还花了很多时间在很长一段时间内挠头,我强烈建议使用pdf。尝试创建内容的pdf文件,然后在用户单击打印时将其发送回给用户。这样,您将可以更好地控制在每个页面上显示的方式和内容。