【问题标题】:Batch Printing Using Windows Forms in C#在 C# 中使用 Windows 窗体进行批量打印
【发布时间】:2011-11-16 14:21:35
【问题描述】:

我想创建一个 Windows 窗体应用程序,它将位于我们的本地服务器上,并每隔 30 分钟将发票打印到网络打印机。

有人可以确认您绝对不能使用控制台应用程序进行打印(发票将包括徽标图像等)。我问的原因是,当不需要一个 GUI 时,拥有一个 GUI 似乎毫无意义。如果可以的话,一个让我前进的简单资源会很棒。

我似乎也找不到一个易于理解的关于 .net 打印基础知识(定位数据等)的教程。整个概念都没有深入人心的那一刻!

【问题讨论】:

  • 有关打印的详细信息,您需要从文档类型开始。您是在打印 Word 文档、文本文件、PDF 还是其他文件?
  • 对不起,应该更清楚一点。我想从数据库中提取数据 - 即订单号、账单地址、订单行等。

标签: c# winforms printing console-application system.printing


【解决方案1】:

如果您不需要 UI,也许 .Net Windows 服务 就可以完成这项工作。我之前已经为此目的使用过这种方法——每隔 n 分钟,它会在文件夹或数据库表中查找要打印的内容。

如果您选择这条路线,这里是one,您可以使用许多有用的在线教程。

【讨论】:

  • Microsoft 强烈建议不要使用服务进行打印。麻烦制造者是打印机驱动程序,他们通常希望能够显示 UI 并向用户发送垃圾邮件,例如更换半空的碳粉盒。在服务中效果不佳,没有人可以看到窗户。打印只是停止,无论如何都无法诊断原因。
  • @Hans Passant:好点。我想选择合适的工具取决于具体情况。在一家非常大的公司中,我成功编写了从远程打印机打印大量套用信函的服务。没有必要让一个人坐在控制台前监视工作,它或多或少地连续运行一整天到深夜。体面的错误记录——如果需要,包括电子邮件通知——可以处理没有 UI 的问题。由于打印量少得多,控制台应用程序肯定更可取。这可以控制打印作业的时间。
【解决方案2】:

我不明白为什么控制台应用程序是不可能的,您可以使用所有与 WinForms 应用程序相同的库。如果您只是从数据库中提取数据,则可以使用多种方法来生成文档。如果您想变得花哨,您甚至可以使用 GDI+ 对象生成一个“漂亮”格式的文档并插入您的值。只要您在后台生成文档,是否有可供预览的窗口并不重要(尽管有一些隐藏的调试工具可能是明智的。)

我也同意上面的帖子,Windows 服务可能是你最好的选择。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多