3

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

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

4 回答 4

2

这在 JavaScript 中是不可能的。

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

于 2012-07-11T12:02:54.413 回答
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 插件中有一个单独的打印选项。

于 2012-07-11T11:57:59.250 回答
1

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

于 2012-07-11T11:59:07.480 回答
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;
于 2019-10-16T17:16:40.387 回答