PrintPreview生成的文档
本文关键字:文档 PrintPreview | 更新日期: 2023-09-27 18:16:17
我试图打印从asp.net webforms应用程序的代码创建的pdf,但在实际打印之前,我想显示打印预览弹出,例如,当我使用javascript的window.print()
基本上,我需要完全相同的弹出窗口出现,而不改变我目前所在的页面,但不是在弹出窗口中显示我目前所在的页面,我想显示创建的PDF。
问题是我找不到任何能让我得到这个结果的东西。也许我不知道要找什么,所以提前感谢你的建议。
window.open("path to pdf");
或window.location.href = "path to pdf";
这将打开你的PDF在一个新的窗口。我不知道打印预览,但它可以让他们查看生成的pdf。
简短的回答,不,打印预览是一个常见的但可选的客户端特性和首选项,在不受控制的环境(Internet)中,您无法通过编程访问。
如果您确实有一个受控的环境,那么您可以安装您可以编程的自定义软件。但既然你是第一个问的,我想这对你来说是不可能的。
作为@jaredlee.exe说,你最好的最好的是弹出一个新窗口,而不是直接链接到PDF,你可以尝试链接到一个简单的页面,有一个完整的页面iframe
或object
(或可能embed
)指向你的PDF。然后,您可以绑定一个onload
(或onreadystatechange
或domcontentloaded
或其他)事件,为该特定对象触发print()
方法。
说了这么多,有一个非常重要的点需要理解,那就是web浏览器具有原生渲染pdf的能力是一个相对较新的东西。Adobe在90年代为IE(也许还有网景)推出了一个插件,多年来,Chrome和Firefox等新浏览器也被添加了进来。然而,随着时间的推移,这些程序开始添加自己的PDF渲染器,一旦他们这样做了,他们实际上禁用了Adobe的。最重要的是,操作系统供应商(通常也是浏览器供应商)开始将本机PDF呈现器直接添加到他们的操作系统中。有些人(包括我自己)认为所有这些渲染器与Adobe的参考渲染器相比都相形见绌,所以我们就禁用了内置的渲染器。所以对我来说(我知道我很奇怪),所有这些选项最多仍然会导致一个空窗口,试图打印一个空白页面和下载的PDF。
重申一下上面的内容,网页浏览器是最常用的浏览网页的工具。当你切换到PDF的那一刻,你就不再是在"网络世界",而是在"PDF世界",你控制的不是一个"网络浏览器",而是一个"PDF渲染器"。不幸的是,目前还没有与"PDF渲染器"对话的规范,因为该字段仍然太新。
重申我的重述,这可能在某些情况下或大多数情况下都有效,但如果存在完全失败的边缘情况,也不要感到惊讶。