【问题标题】:String Manipulation in C#C#中的字符串操作
【发布时间】:2011-07-20 22:02:42
【问题描述】:

我正在开发 c# .net 应用程序,并使用水晶报表。我需要在点阵打印机上打印水晶报表,但是打印速度很慢,因为水晶报表以图形模式打印。所以我转向基于 dos 的打印并使用 RawPrinter 辅助类来打印它。这完全没问题。

但是将数据集写入文本文件(发票报告格式),使用大量字符串操作来定位字符、间距等。我使用字符串生成器类和填充以及大量 if,否则打印页面总计,grand总额、税金等。

以这种方式编写文本文件真是太痛苦了。

请给我一些其他可行且有效的方法。

谢谢

【问题讨论】:

  • 不清楚什么到底是什么痛苦。如果您可以发布代码示例以便我们尝试对其进行重构,那将更容易为您提供帮助。
  • 或许可以让您的组织停止使用点阵打印机并进行升级!
  • 购买一台新打印机肯定比所有开发时间便宜吗?
  • 我假设您知道您现在可以在激光打印机上进行“多部分打印”,例如 royalegraphics.co.uk/html/ncr-laser-paper.html。

标签: c# crystal-reports string-formatting


【解决方案1】:

您可以将数据集导出为 XML (DataSet.WriteXml) 并使用 XSLT 将其转换为另一种文本格式。

【讨论】:

  • 你能给我一些代码吗,只有几行。任何有用的链接。
【解决方案2】:

您需要某种templateing engine,但由于您不使用 HTML,因此您需要独立的引擎。请参阅C# template engine 了解一些选项。

如果您喜欢 XML 并且已经知道如何使用它,那么 XSLT 是一个不错的选择,否则我会倾向于使用更“以代码为中心”的解决方案进行编码。

【讨论】:

    【解决方案3】:

    我遇到了类似的问题,更换打印机不是解决方案,因为大约有 1800 个客户使用点阵打印机。所以我想出的解决方案是使用模板引擎(StringTemplate http://www.stringtemplate.org/),获取输出文本文件并将其发送到打印机。

    【讨论】:

      【解决方案4】:

      对所有内容都使用标签。它会让你自动把东西放在标签列中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-09-26
        • 1970-01-01
        • 1970-01-01
        • 2014-06-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多