我有一个iframe需要直接指向PDF文件(不是带PDF的页面):
<iframe id="ecard-pdf" name="ecard-pdf" style="position: absolute;" src="/profile.pdf">
</iframe>
我希望能够在此iFrame中打印PDF
我在其他问题中找到了几个不符合我需求的解决方案:
然而,如果iframe的src直接指向PDF而不是指向围绕PDF的页面,似乎FireFox和IE无法执行此操作。
火狐:
它不显示打印,而是显示此对话框:“使用”确定“和”取消“按钮显示”阻止此页面创建其他对话“,这两个按钮均不打印PDF。
IE :
忽略了我使用上述方法进行打印的尝试。
问题:
我怎样才能允许用户在iFrame中打印PDF,无论他们使用什么浏览器?
答案 0 :(得分:4)
我一直在努力寻找适用于IE和Chrome的解决方案。这对我有用:
$(function() {
var ua = window.navigator.userAgent;
var msie = ua.indexOf('MSIE ');
var trident = ua.indexOf('Trident/');
var edge = ua.indexOf('Edge/');
var url = '/url/to/file.pdf';
var pdf ='';
var style = 'position:fixed; top:0px; left:0px; bottom:0px; right:0px; width:100%; height:100%; border:none; margin:0; padding:0; overflow:hidden;';
if(msie > 0 || trident > 0 || edge > 0){
pdf = '<object data="' + url + '" name="print_frame" id="print_frame" style="' + style + '" type="application/pdf">';
}
else{
pdf ='<iframe src="' + url + '" name="print_frame" id="print_frame" style="' + style + '"></iframe>';
}
$(document.body).append(pdf);
setTimeout(function(){
window.frames["print_frame"].focus();
window.frames["print_frame"].print();
},2000);
});
...欢呼声。
答案 1 :(得分:1)
答案 2 :(得分:0)
选项1:
我没有对此进行测试,但我在此处找到了另一个答案:https://stackoverflow.com/a/4096547/2528978
假设您可以使用以下内容:
<style type="text/css" media="print">
body *{display:none}
iframe{display:block}
</style>
那么只显示pdf?
选项2:
制作指向“打印我”
的pdf文件的超链接<a href='Path/To/PDF'>Print Me</a>
希望这会有所帮助......
-Andrew
答案 3 :(得分:0)
这似乎有效:
<style type="text/css" media="print">
body *{display:none}
iframe{display:block}
</style>
那么只显示pdf?
答案 4 :(得分:-1)
您可以直接使用窗口打印选项。 使用onclick选项
的onclick = “JavaScript的:window.print();”