【问题标题】:is it possible to have a link/button that directly prints a document via website?是否可以通过网站直接打印文档的链接/按钮?
【发布时间】:2009-10-12 03:13:19
【问题描述】:

是否可以通过网站直接打印文档的链接/按钮?

【问题讨论】:

    标签: asp.net printing


    【解决方案1】:

    使用常规技术最接近的方法是使用 javascript 显示打印对话框。

    此限制已内置于系统中,旨在保护像您这样的用户免受垃圾邮件发送者的侵害,他们梦想将您的打印机变成另一台传真机的垃圾邮件目标。要绕过它,您必须深入第三方插件的世界。

    【讨论】:

    • 这让事情变得更糟:您必须使用应用程序来打印它,并且无法通过网络向这些应用程序发送直接打印命令,原因与您只能在 javascript 中显示打印对话框。
    【解决方案2】:

    假设您不需要呈现适合打印的页面版本,而只想触发浏览器的“打印”功能,就这样:

    <input type="button" value="Print" onclick="window.print();" />
    

    或使用 webcontrol 按钮

    <asp:button id="button1" runat="server" onclientclick="window.print(); return false;" text=Print" />
    

    【讨论】:

    • 嗯,我的评论和乔尔的一样。
    • 补充一点,即使有触发打印的方法,您首先也不能确定客户端确实可以打开文档。例如。在没有任何软件打开 Powerpoint 2007 格式的旧 MacOS 上打开“pptx”文件。
    【解决方案3】:

    您可能需要为此编写 Applet、Flash、ActiveX 组件。

    另请注意:

    ActiveX 组件仅适用于 Windows(主要是 IE)。
    Applet/Flash 可在 Windows/MAC/Linux 等主要操作系统上运行

    我建议您使用 Applet,尽管客户端需要安装 JRE。

    【讨论】:

      【解决方案4】:

      是的,只需在链接或按钮上调用 javascript“window.print()”即可。

      编辑:看到您关于想要打印 Office 文档的其他评论。您在这里唯一的选择是使用本机应用程序打开文档,或者转换为 HTML 或 PDF 服务器端。

      正如另一个帖子指出的那样,您可能会嵌入一个 ActiveX 对象,但这会导致各种安全问题,并且不太可能在默认的 IE 安全设​​置中工作,在其他网络浏览器上根本无法工作。

      如果您在 Intranet 中工作,您可以让服务器直接连接到办公室打印机,但除此之外,恐怕没有真正的方法可以做到这一点而没有明显的警告。我建议只为用户提供下载,让他们自己打印。

      【讨论】:

        【解决方案5】:

        我认为您可能需要借助某种库来读取要打印的完整文档,该库将整个文档作为文本/html 读取到内存流中并写入输出流,最后调用 window.print() ;

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-02-28
          • 1970-01-01
          • 1970-01-01
          • 2023-04-02
          • 2013-09-27
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多