编程乐趣:一个强制换行的小方法

原创 2012年09月13日 18:42:28

前段时间做了个功能,用打印机打印内容。打印是这种格式:
项目名:内容;
由于打印的使用的那种纸宽度有限,所以要考虑到换行于是写了个给字符串换行的功能,试了一下貌似还能用,分享分享,希望能有所帮助。

     /// <summary>
        /// 格式化字符格式
        /// </summary>
        /// <param name="printContent">内容</param>
        /// <param name="itemName">题目</param>
        /// <param name="lineLength">每行长度</param>
        /// <returns></returns>
        private static string FormatPrintLine(string printContent, string itemName, int lineLength)
        {
            List<string> contentRows = new List<string>();

            string formathContent = string.Empty;

            if (printContent.Length <= lineLength)
            {
                return itemName + printContent;
            }

            int index = 0;

            string space = string.Empty;

            for (int i = 0; i < itemName.Length; i++)
            {
                Match match = new Regex(@"[\u4E00-\u9FA5]|[\uFE30-\uFFA0]", RegexOptions.IgnoreCase).Match(itemName[i].ToString());

                space += match.Success ? "  " : " ";//中文占2字符
            }

            do
            {
                if (contentRows.Count > 0)
                {
                    if (((printContent.Length - (contentRows.Count * lineLength))) / lineLength > 0)
                    {
                        contentRows.Add(space + printContent.Substring(contentRows.Count * lineLength, lineLength) + Environment.NewLine);
                    }
                    else
                    {
                        contentRows.Add(space + printContent.Substring(contentRows.Count * lineLength, printContent.Length -

                            (contentRows.Count * lineLength)) + Environment.NewLine);
                    }
                }
                else
                {
                    contentRows.Add(itemName + printContent.Substring(0, lineLength) + Environment.NewLine);
                }

                index += lineLength;

            } while (index < printContent.Length);

            for (int i = 0; i < contentRows.Count; i++)
            {
                formathContent += contentRows[i];
            }

            return formathContent;
        }

调用:

 static void Main(string[] args)
        {
            string itemName = "内容:";

            string content = @" 巴西国家队昨天打进的中国国家队的所有进球完全是非法的、无效的,丝毫改变不了中国球员实力超群的事实,"+
                " 丝毫改变不了中国队在国际足坛的霸主地位。中国球员强烈敦促巴西国家队立即停止一切损害中国球门的行为,如果巴西国家队一意孤行,"+
                "由此在场上中国球员所造成的一切严重后果只能由巴西国家队承担。";

            string result = FormatPrintLine(content,itemName,20);

            Console.WriteLine(result);

            Console.ReadKey();
        }

效果:

 

代码下载:http://download.csdn.net/detail/yysyangyangyangshan/4568386

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yysyangyangyangshan/article/details/7976205

textarea 强制换行

某一详情页面 在   
  • xfdxcy
  • xfdxcy
  • 2014-06-17 17:31:41
  • 1023

gridview一般换行,强制换行

  • 2011年10月27日 16:49
  • 929B
  • 下载

CSS中的强制换行与强制不换行

  • 2012年08月11日 17:03
  • 226B
  • 下载

漫谈程序员系列:软件开发的十八般乐趣

到底程序员有多少种快乐……
  • foruok
  • foruok
  • 2014-11-24 07:21:06
  • 21742

编程乐趣:分享几个自己常用的工具

整理电脑的软件,突然发现有两三个工具居然一直用成了习惯,每次换公司后,到了新公司必然要装上。也许是为了找回熟悉的编程环境和熟悉的样子。跳槽也许是不可避免,但是自己的编程习惯却一直不变,虽然是不起眼的小...
  • yysyangyangyangshan
  • yysyangyangyangshan
  • 2013-12-31 00:45:42
  • 2767

Clojure编程乐趣]+clojure_programming.pdf

  • 2014年07月02日 09:14
  • 12.18MB
  • 下载

GridView一般换行与强制换行

  • 2012年09月02日 15:36
  • 36KB
  • 下载

css使英文强制换行

在指定宽度的div内,如果中文内容过长则会自动换行,但英文不会自动换行。 原因:英文单词之间有空格才会换行,对于一长串字母会被当成是一个单词而显示完 解决:css强制英文换行  #wrap{word-...
  • ptyzhu
  • ptyzhu
  • 2013-07-02 15:03:59
  • 3774

textarea对象换行问题(强制换行、自动换行)

为大家介绍html中textarea对象的换行问题,强制换行、自动换行,有需要的朋友可以参考下。 将以下样式加到显示的table标签中,会按照表格的大小强制换行: style= "table-la...
  • u014457793
  • u014457793
  • 2014-04-20 14:43:30
  • 3351

编程使我快乐

C语言学号 本人学院目录C语言 目录 C语言是什么 C语言的优势 1简洁紧凑灵活方便 2运算符丰富 3数据类型丰富 4表达方式灵活实用 5允许直接访问物理地址对硬件进行操作 6生成目标代码质量高...
  • Babysbreathe
  • Babysbreathe
  • 2016-10-09 01:19:22
  • 824
收藏助手
不良信息举报
您举报文章:编程乐趣:一个强制换行的小方法
举报原因:
原因补充:

(最多只允许输入30个字)