window.print()打印空白页面

时间:2012-07-11 11:53:04

标签: javascript

打印时我得到空白页。打印边框(可能是框架)。但不是框架内的内容。如果我们手动打印新页面,它将被正确打印。为什么会这样?

var printwindow = window.open('', '', 'fullScreen=no');
printwindow.document.write('<iframe id="docPrint" onLoad="window.print()" width="100%" height="100%" src="http://localhost:8080/hiring/docs/Keneth _1340800082258/Keneth _resume_1340800082258.pdf"></iframe>');

4 个答案:

答案 0 :(得分:2)

由于您是动态注入它,请尝试在/中转义</iframe>

'.....<\/iframe>'

同时将onload应用于窗口而不是iframe:

printwindow.onload = printwindow.print;

所以试试这个:

var printwindow = window.open('', '', 'fullScreen=no');
printwindow.document.write('<iframe id="docPrint" width="100%" height="100%" src="http://localhost:8080/hiring/docs/Keneth _1340800082258/Keneth _resume_1340800082258.pdf"></iframe>');
printwindow.onload = printwindow.print;

我不确定浏览器是否会将您的pdf文件打印出来,如果pdf直接在浏览器中打开,则浏览器pdf插件中会有一个打印选项。

答案 1 :(得分:2)

使用JavaScript无法做到这一点。

我不知道您的服务器是用哪种语言编写的,但也可以制作PDF auto print

答案 2 :(得分:1)

这里的问题是来自iframe的window.print()指的是包含iFrame的窗口,而不是其中的内容。

答案 3 :(得分:0)

我正在寻找其他问题,并发现它是打开的,所以请尝试做它。

观看加载iframe的操作并获取其中的内容,因为您必须处理此iframe的加载,否则您可以ajax获取整个页面并将其保存在iframeContent

>
let iframeContent = document.getElementById("docPrint").innerHTML;
const iframePage = window.open('', 'PRINT', 'height=400,width=600');
iframePage.document.write(iframeContent);
iframePage.document.close();
iframePage.focus();
iframePage.onload = relatorio.print;