我希望能够在用户点击打印按钮时自动打印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#。
答案 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
}