【问题标题】:Printing a page without displaying it?打印页面而不显示它?
【发布时间】:2011-03-21 17:10:17
【问题描述】:

我有一个用户可以从中打印的页面。但是,将要打印的页面不是用户正在查看的页面,而是我想在后台生成的新页面,并且(可能)只显示它的打印对话框。

只是为了说清楚:

  1. 用户在“View.aspx”上并单击我的打印按钮(不是浏览器的按钮)。
  2. Print 按钮加载“Printable.aspx”的内容,并在用户仍在“View.aspx”。

仅供参考,我要避免的是在新窗口中打开“Printable.aspx”,然后显示其打印对话框。

提前致谢。

【问题讨论】:

    标签: c# asp.net html printing


    【解决方案1】:

    在 CSS 中使用 MEDIA 标记的组合来显示/隐藏要打印的对象。

    <STYLE type="text/css">
    @media print {
       .PrintOnly {font-size: 10pt; line-height: 120%; background: white;}
    }
    @media screen {
       .PrintOnly {display: none}
    }
    </STYLE>
    

    您可以在媒体屏幕上制作样式为Display:none 的控件,以便用户仅在打印时看到它们。

    <DIV class="PrintOnly">
    This control will only show up during printing
    </DIV>
    

    您的任何控件都可以归类为“PrintOnly”,因此您只能在打印时看到它们。您只需为“@media screen”和“@media print”定义一次 css 类,以确保它们的行为不同。

    您还可以引入整个样式表以仅用于打印。

    <LINK rel="stylesheet" type"text/css" href="screen.css" media="screen">
    <LINK rel="stylesheet" type"text/css" href="print.css" media="print">
    

    【讨论】:

    • +1:这样你甚至不需要第二个页面,只需要第二个样式表。相同的页面将通过打印机以不同的方式呈现。
    • 我想要一个这样的工作示例。我有几个我不想打印的控件和容器,但完全不知道如何有效地这样做。谢谢。
    • 如果可打印版本包含尚未加载到屏幕版本上的元素怎么办?我应该通过 Ajax 之类的东西加载它,还是像 user378806 建议的那样在隐藏面板上加载一个单独的页面?谢谢。
    • @Rafael:如果你不想弄乱 IFRAME,你可以添加 "" 到您的“Printable.aspx”页面。它将打印然后返回到上一个屏幕。它在不支持 IFRAME 的浏览器中会更好地工作。
    【解决方案2】:

    当点击Print按钮时,将Printable.aspx添加到view.aspx的隐藏面板中。 通过在 view.aspx 的 onload 事件中添加 javascript 来响应并使用 window.print()

    打印隐藏面板

    【讨论】:

      【解决方案3】:

      您可以将页面加载到隐藏的 IFrame 元素中,然后使用 javascript 执行该页面的打印功能。

      但是,就像@carter 建议的那样,CSS 是更好的方法。当您可以重新设置当前内容的样式时,为什么要多次加载重复的内容?

      【讨论】:

      • 如果要显示的数据没有加载到当前页面上,并且可打印版本包含其所有详细信息怎么办:最好通过ajax之类的方式加载剩余内容或仅加载内容隐藏面板?
      【解决方案4】:

      我不认为你正在尝试什么是可能的。但我可能是错的。尽管解决此问题的更好方法是使用不同的 css 样式表。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-06-18
        • 1970-01-01
        • 2020-10-23
        • 1970-01-01
        • 2014-04-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多