【问题标题】:ASP.NET: Print functionalityASP.NET:打印功能
【发布时间】:2016-03-14 18:23:45
【问题描述】:

我有一个包含以下字段/控件的大表单:

  1. SharePoint Peoplepicker
  2. SharePoint 日期时间控件
  3. 文本框单行/多行
  4. 下拉菜单
  5. 网格视图

我正在寻找打印此表单的解决方案。输出打印应该是干净的,以确保打印时一切看起来都像标签。如果我更改 CSS,例如对于文本框,有限制,即。并非文本框的所有数据都是可见的。有没有办法实现这一点而无需执行以下操作:

  1. 有标签并在打印每个控件时显示它们
  2. 使用 itemtemplate 转换 gridview 并在打印时在模板中添加标签。

另一个要求是确保表格适合 A4 纸。

【问题讨论】:

  • 为什么不转换成PDF然后允许用户打印呢?好处:您可以自定义 PDF 以适应 A4 布局,具有所需的标签而不是字段。等如果您不想要 PDF,您还可以创建标签并将其隐藏并仅在打印期间显示 (css media @print),同时隐藏字段以防止打印,但您必须在发送打印命令之前更新每个标签。
  • @Nimesh,太好了。您能否详细说明或链接到 PDF 字段如何成为标签?
  • 实际上不是标签,只是文本,参考this great article from mikesdotnetting.com
  • @Nimesh,谢谢。我经历了它。那么,当用户点击打印按钮时,我将不得不动态创建文档?
  • 是的,您可以根据需要动态生成具有所需纸张大小、徽标、页眉和页脚等的精美 PDF。

标签: c# asp.net gridview printing


【解决方案1】:

我有类似的任务,我使用以下方法完成了:

  1. 创建一个“打印预览”按钮,单击该按钮会打开一个对话框
  2. 一旦对话框打开,运行 JavaScript/jQuery 以克隆您的容器并将控件转换为静态值 - 每个控件的值将在 span 或控件本身中;除了包含该值的跨度之外,其他所有内容都可以删除
  3. 可以删除额外的控件,例如网格中的行号、警告消息、按钮或类似内容
  4. 删除额外的填充,边距和字体大小可以进一步减小以适合 A4,例如8pt
  5. 最后提供一个“打印”按钮,该按钮接受父容器和打印 - 您可以为此使用 printThis.js

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-10
    • 2014-11-29
    • 2022-01-01
    • 2013-09-02
    • 1970-01-01
    • 2020-01-21
    • 2019-01-18
    • 2015-09-22
    相关资源
    最近更新 更多