【问题标题】:PrintPreview of generated docs生成文档的打印预览
【发布时间】:2016-01-03 04:23:01
【问题描述】:

我正在尝试打印由 asp.net webforms 应用程序中的代码创建的 pdf,但在实际打印之前,我想显示打印预览弹出窗口,例如当我使用 javascript 的 window.print() 时出现的弹出窗口

基本上,我需要显示完全相同的弹出窗口,而不更改我当前所在的页面,但我不想在弹出窗口中显示我当前所在的页面,而是显示创建的 PDF。

问题是我找不到任何能让我得到这个结果的东西。也许我不知道该寻找什么,所以提前感谢您的任何建议。

【问题讨论】:

    标签: javascript c# asp.net printing itextsharp


    【解决方案1】:

    window.open("path to pdf");window.location.href = "path to pdf";

    这将在新窗口中打开您的 pdf。我不知道打印预览,但它可以让他们查看生成的 pdf。

    【讨论】:

      【解决方案2】:

      简短的回答,不,打印预览是一种常见但可选的客户端功能和偏好,在不受控制的环境(互联网)中,您无法以编程方式访问。

      如果您确实有一个受控的环境,那么您只需安装可以编程的自定义软件。但既然你一开始就问,我假设这对你来说不是一个选择。

      正如@jaredlee.exe 所说,最好的办法是弹出一个新窗口,但不要直接链接到 PDF,您可以尝试链接到具有整页 iframeobject 的简单页面(或可能指向您的 PDF 的 embed)。然后你可以绑定一个onload(或onreadystatechangedomcontentloaded或其他任何东西)事件来触发该特定对象的print()方法。

      总而言之,有一个非常重要的问题需要理解,那就是能够原生呈现 PDF 的网络浏览器是一个相对较新的事物。 Adobe 在 90 年代为 IE(可能还有 Netscape)提供了一个插件,并且多年来添加了 Chrome 和 Firefox 等更新的浏览器。然而,随着时间的推移,这些程序开始添加他们自己的 PDF 渲染器,一旦他们这样做了,他们实际上禁用 Adob​​e。最重要的是,操作系统供应商(经常碰巧也是浏览器供应商)开始将原生 PDF 渲染器直接添加到他们的操作系统中。有些人(包括我自己)认为,与 Adob​​e 的参考渲染器相比,所有这些渲染器都显得苍白无力,因此我们会在找到它们的任何地方禁用内置渲染器。所以对我来说(我知道我很奇怪),所有这些选项充其量仍然会导致一个空窗口,它试图打印一个空白页和一个下载的 PDF。

      为了重申上述内容,网络浏览器最常用于查看网页。当您切换到 PDF 时,您不再处于“网络世界”而是“PDF 世界”,您控制的不是“网络浏览器”而是“PDF 渲染器”。不幸的是,目前还没有与“PDF 渲染器”对话的规范,因为该领域仍然太新。

      重申我的重述,这一切可能在部分或大部分时间都有效,但如果存在完全失败的极端情况,也不要感到惊讶。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-08-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-02
        • 1970-01-01
        相关资源
        最近更新 更多