本人由于项目的需要,对RTF格式做了比较深入的研究,其中有些心得与源码与大家分享!

先来一篇源码吧!

平台与语言:VS2005,C#

/// <summary>
        /// string转化为RTF类型
        /// </summary>
        /// <param name="strs"></param>
        /// <returns></returns>
        public static string Str2RTF(string strs)
        {
            string tmpStr = "", tmpStr2 = "", strToRTF = "";
            int lstrLen = strs.Length;
            if (lstrLen == 0)
                return "";
            foreach (Char c in strs)
            {
                tmpStr = c.ToString();
                int tmpAsc = (int)c;
                if (tmpAsc > 126)//转换非ASCII范围的文本为RTF格式
                {
                    tmpStr = CharTo16(c);
                    if (tmpStr.Length == 1)
                        tmpStr = @"\'0" + tmpStr;//转换hex值小于2位的特殊控制符号
                    else if (tmpStr.Length == 2)
                        tmpStr = @"\'" + tmpStr;//转换hex值等于2位的特殊符号
                    else
                    {
                        tmpStr2 = tmpStr.Substring(tmpStr.Length - 2, 2); //Right(tmpStr, 2);
                        tmpStr = tmpStr.Substring(0, 2); //Left(tmpStr, 2);
                        tmpStr = @"\'" + tmpStr + @"\'" + tmpStr2;// '转换hex值等于4位的非英文字符内码
                    }
                }
                //if (tmpStr == "\'0D" || tmpStr == "\'0A")//Then '对换行符号进行特殊控制:0D 0A
                //    tmpStr = @"}{\insrsid198535 \par }{\insrsid198535 \loch\af0\hich\af0\dbch\f13 ";

strToRTF += tmpStr;
            }
            return strToRTF;
        }

/// <summary>
        /// Char转16进制字符
        /// </summary>
        /// <param name="ch"></param>
        /// <returns></returns>
        public static string CharTo16(char ch)
        {
            System.Text.Encoding chs = System.Text.Encoding.GetEncoding("gb2312");
            byte[] bytes = chs.GetBytes(ch.ToString());
            string str = "";
            for (int i = 0; i < bytes.Length; i++)
            {
                str += string.Format("{0:X2}", bytes[i]);
            }
            return str.ToLower();
        }

后续的我将陆续发布!

字符串转化为RTF格式-RTF研究系列相关推荐

  1. rtf格式内容转html

    最近项目里需要把以前的客户问题数据导入到新的系统中来,从开始到完成整整花了一天半的时间,现把大概的一些开发过程记录如下: 一.分析 图A 图B 要从A中的内容转成B,先分析图A 1.A中内容是经过ba ...

  2. rtf格式的一些说明,转载的,我找到的rtf资料中比较实用的一片文章了

    RTF是Rich TextFormat的缩写,意即多文本格式.这是一种类似DOC格式(Word文档)的文件,有很好的兼容性,使用Windows"附件"中的"写字板&quo ...

  3. rtf格式的一些说明

    RTF是Rich TextFormat的缩写,意即多文本格式.这是一种类似DOC格式(Word文档)的文件,有很好的兼容性,使用Windows"附件"中的"写字板&quo ...

  4. vc向richedit控件写RTF格式内容(表格)

    RTF格式文本以前很少接触过,因工作原因,需要向richedit控件插入表格. 从度娘上搜索了一些基本内容,下了RTF规范,也没有仔细研究.对于一些简单的表格,可以采用"逆向工程" ...

  5. Outlook使用RTF格式发信出现Winmail.dat附件事宜

    接到用户反馈对方使用Outlook客户端发信过来,我们收到的呈现是winmail.dat附件,我们单独还要找第三方工具软件解析出来. 原理:Outlook选用的格式为微软自研RTF格式(常规是HTML ...

  6. C#重写RichBox控件获取RTF格式的内容

    最近做了一个能记笔记的小工具,记笔记则需要一个富文本编辑框,于是就手动写了一个富文本编辑框,设置字体.插入图片这些功能都没问题,最后需要保存编辑好的文本内容时就遇到问题了,本来想放弃的,但用Html做 ...

  7. java解析读取.rtf格式文档

    rtf是开源格式,同时可通过Microsoft Office打开,那么怎么利用java读取.rtf格式的文档呢? package jichu.test_simple;import java.io.Fi ...

  8. outlook 发送 html,在Outlook中发送给Internet收件人时,如何将RTF格式更改为HTML?

    在Outlook中发送给Internet收件人时,如何将RTF格式更改为HTML? 如果您在Outlook中撰写并以RTF格式发送电子邮件,许多Internet收件人将无法正常在网页上查看此电子邮件. ...

  9. php 生成 rtf,php 实现html转为rtf格式_php

    前期准备工作 下载html2Rtf.dll,以管理员的身份运行cmd,进入Html2Rtf.dll所在目录-->输入Regsvr32 Html2Rtf.dll 核心代码: PreserveIma ...

最新文章

  1. 最新 crtmpserver 源码的获取方法
  2. StringUtils的isBlank与isEmply
  3. spyder编辑器报ModuleNotFoundError: No module named ‘pymongo‘,明明已经安装上了pymongo扩展
  4. Linux下启动tomcat报java.lang.OutOfMemoryError: PermGen space
  5. 暴雪战网客户端上使用的那些开源库!
  6. IOMMU 虚拟IO地址和物理地址相关联
  7. Python2.7打包的exe文件反编译成py文件
  8. ask调制与解调matlab仿真,ask调制与解调的matlab仿真.doc
  9. 常见的SQL优化面试题
  10. 二项分布期望与方差的证明
  11. 请在微信客户端打开链接
  12. 未来20年内,无人驾驶将颠覆这33大行业
  13. 每日新闻早报简报十条和1条微语分享
  14. 关于算法的学习以及一些总结(一)
  15. Spark—15分钟教程
  16. Flalsh Lighting Network(闪电网络)
  17. leetcode初级———旋转数组的多种算法总结
  18. 电脑微信linux安装程序,Ubuntu安装Linux网页版微信
  19. 毛毛雨的博客乐园—内容简介
  20. linux随机输出加减乘除_实现加减乘除计算器

热门文章

  1. RuntimeError: invalid argument 0: Sizes of tensors must match except in dimension 1.
  2. 大数据与区块链的联系与区别
  3. git上传代码报错:hint: Updates were rejected because a pushed branch tip is behind its remote hint: counter
  4. 关于学校熄灯时间的调研
  5. win10无法打开组策略,gpedit.msc打不开
  6. 【移动安全】专栏文章汇总
  7. 微信小程序场景值列表map格式
  8. HTML5方方面面的活动报道,大家来吐槽啊
  9. mysql级联删除报1451 - Cannot delete or update a parent row: a foreign key constrain
  10. LLC同步控制or异步控制