window.print() 打印空白页

问题描述 投票:0回答:5

打印时出现空白页。打印边框(可能是框架)。但不是框架内的内容。如果我们手动打印新页面,它就会正确打印。为什么会出现这种情况?

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>');
javascript
5个回答
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插件中单独有一个打印选项。


2
投票

这对于 JavaScript 来说是不可能的。

我不知道你的服务器是用哪种语言编写的,但也许可以让你的PDF自动打印


1
投票

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


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;

0
投票
HI all of you i have found the solution. 
i have also had a blank page as i have write my javascript code on belowe of html. Then i have put my javascript code in <head>

*<script type="text/javascript">
    window.onload = function() {
        window.print(); // PDF ni chop etish oynasini ochadi
    };
</script>
* 然后我的空白页被删除了
© www.soinside.com 2019 - 2024. All rights reserved.