2012-07-11 328 views
3

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

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>'); 

回答

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插件中会有一个打印选项。

+0

它不会触发打印对话框。只加载页面。这就是为什么我把它放在iframe onload – 1355 2012-07-11 12:10:05

+0

@ 1355:我更新了代码 – Blaster 2012-07-11 12:12:00

+0

没有触发打印:( – 1355 2012-07-11 12:16:13

1

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

+0

然后该怎么办? – 1355 2012-07-11 12:12:14

+0

但是这也不起作用。我认为下面的代码是打印内容(); printwindow.document.getElementById('docPrint')。contentWindow.print();' – 1355 2012-07-11 12:29:56

2

这不适用于JavaScript。

我不知道您的服务器是用哪种语言编写的,但可能会使您的PDF auto print

+0

如何使用JavaScript? – 1355 2012-07-11 12:19:55

+0

AFAIK,这是不可能与JS – Rab 2012-07-11 12:24:49

+0

;(。我一直在尝试此打印4天.. – 1355 2012-07-11 12:28:07