我试图从打印代码的asp.net web表单应用程序创建的PDF,但实际打印之前,我想说明,例如,当我使用JavaScript的window.print()
打印预览
基本上,我需要完全相同的弹出窗口才能显示,而不必更改我正在使用的页面,但不是在弹出窗口中显示我正在使用的页面,而是要显示创建的PDF。
问题是我找不到任何能让我得到这个结果的东西。也许我不知道要寻找什么,所以提前感谢任何建议。
我试图从打印代码的asp.net web表单应用程序创建的PDF,但实际打印之前,我想说明,例如,当我使用JavaScript的window.print()
打印预览
基本上,我需要完全相同的弹出窗口才能显示,而不必更改我正在使用的页面,但不是在弹出窗口中显示我正在使用的页面,而是要显示创建的PDF。
问题是我找不到任何能让我得到这个结果的东西。也许我不知道要寻找什么,所以提前感谢任何建议。
window.open("path to pdf");
或window.location.href = "path to pdf";
这将在新窗口中打开您的PDF。我不知道打印预览,但它可以让他们查看生成的PDF。
简短的回答,不,Print Preview是一种常见但可选的客户端功能和首选项,在不受控制的环境(Internet)中,您不具有编程访问权限。
如果你有做有一个受控环境,那么你可以安装自定义软件,你可以编程。但是,既然你首先要问,我认为这不适合你。
正如@ jaredlee.exe说,你最好的最好的是弹出打开一个新的窗口,但不是直接链接到你可以尝试链接到有一个整版的一个简单的页面的PDF iframe
或object
(或可能embed
)指向您的PDF。然后,您可以绑定一个onload
(或onreadystatechange
或domcontentloaded
或其他任何事件)事件,该事件触发该特定对象的print()
方法。
大家都说,理解这点非常重要,那就是能够原生呈现PDF的Web浏览器是一个相对较新的事物。 Adobe在90年代为IE(也许是Netscape)提供了一个插件,并且多年来新增了Chrome和Firefox等浏览器。然而,加班,但是,这些程序开始添加他们自己的PDF渲染器,一旦他们这样做,他们实际上已禁用 Adobe的。最重要的是,操作系统供应商(通常也是浏览器供应商)开始将本机PDF渲染器直接添加到他们的操作系统中。有些人(包括我自己)认为,所有这些渲染器与Adobe的参考渲染器相比都是苍白的,所以我们随后禁用内置的渲染器,无论我们找到它们。所以对我来说(我知道我很奇怪),所有这些选项仍然会导致一个空白窗口,试图打印空白页面和下载的PDF。
为了重申上述内容,Web浏览器最常用于查看网页。当你切换到PDF文件时,你不再处于“网络世界”,而是“PDF世界”,你不是在控制“网络浏览器”,而是在“PDF渲染器”。不幸的是,没有与“PDF渲染器”进行对话的规范,因为该领域还太新。
要重申我的重述,这一切可能会在一些或大部分时间都有效,但如果存在完全失败的边缘案例,也不要感到惊讶。