在IE6中以编程方式自动打印PDF

时间:2011-11-07 00:58:47

标签: javascript pdf printing

我希望能够在用户点击打印按钮时自动打印PDF文档。目前我正在做的是我渲染PDF并保存到服务器磁盘并将其显示在iframe中然后我尝试使用javascript:print()打印iframe的内容。但是打印的是一个空的html页面。

我这样做是因为使用标准HTML打印正在破坏我试图打印的网页的布局。所以我将页面呈现为pdf格式以打印网页。我不希望用户能够保存pdf因此我试图slient打印pdf页面。因此我通过更改后面代码中的src并重新呈现页面然后触发js脚本将其加载到iframe中。

             function printPDF(){                     document.iframe_printArea.focus();                     document.iframe_printArea.print();                  }

我想知道是否可以使用print()打印iframe中加载的pdf文档,或者是否可以。我已经广泛搜索了这一点,并且尚未提出适用于Web应用程序的任何解决方案。大部分资源都用于C#windows app。我使用的平台是.NET C#。

1 个答案:

答案 0 :(得分:0)

首先,对于那些必须处理IE6的人,我感到非常抱歉。

Microsoft开发的非标准DOM事件在打印前触发。这是onbeforeprint事件(docs)。您可以做的是隐藏除iframe之外的所有内容,并在打印前将iframe缩小到窗口大小。并且在打印后将文档反转为具有onafterprint事件的正常雕像。

function window.onbeforeprint()
{
    // hide other elements and shrink the iframe
}

function window.onafterprint()
{
   // unde what heppened onbeforeprint
}