附件打开时自动显示打印对话框

时间:2014-03-16 12:15:31

标签: javascript jquery html html5 pdf

我有一个要求。单击链接时,附件应在新窗口中打开(使用window.open())。理想情况下,附件是一个pdf文件,它驻留在Web服务器虚拟目录上(使用IIS 7进行测试)。 pdf附件的输入通常是一个URL,例如 -

http://localhost/attachments/sample.pdf

pdf打开正常,但页面应自动向用户显示打印对话框。问题是 - 1.附件有不同的尺寸。 2.附件装载时间根据其大小而变化。

我试过以下 - 1. body / iframe的'onload'事件。 2. jQuery加载函数来跟踪文件的加载。 3.通过在我请求的内容上启用CORS来实现$ .get操作。 但他们都没有工作。

这是我试过的 -

var dom = window.open( '', '', 'scrollbars=no,menubar=no,height=600,width=800,resizable=yes,toolbar=no,status=no');
            dom.document.writeln('<html><title>Attachment</title><head>');
            dom.document.writeln('<script type=\'text/javascript\' language=\'javascript\' src=\'http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\'><\/script>');
            dom.document.writeln('<script type=\'text/javascript\' language=\'javascript\'>' );
            dom.document.writeln('$(document).ready(function() {  /*load/get function goes here */});');
            dom.document.writeln('<\/script>')
            dom.document.writeln('</head><body><iframe width="100%" height="100%" id="container" type="application\/pdf" src="http://localhost/attachments/sample.pdf"></iframe></body></html>');
            dom.document.close();

有没有办法跟踪附件的加载,因为我现在完全没有选择了?

1 个答案:

答案 0 :(得分:0)

如果你可以自己修改PDF,你可以add a print function到文件本身,这可以解决加载iframe时的跟踪问题。