打印时我得到空白页。打印边框(可能是框架)。但不是框架内的内容。如果我们手动打印新页面,它将被正确打印。为什么会这样?
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>');
答案 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;