字符串转化为RTF格式-RTF研究系列
本人由于项目的需要,对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研究系列相关推荐
- rtf格式内容转html
最近项目里需要把以前的客户问题数据导入到新的系统中来,从开始到完成整整花了一天半的时间,现把大概的一些开发过程记录如下: 一.分析 图A 图B 要从A中的内容转成B,先分析图A 1.A中内容是经过ba ...
- rtf格式的一些说明,转载的,我找到的rtf资料中比较实用的一片文章了
RTF是Rich TextFormat的缩写,意即多文本格式.这是一种类似DOC格式(Word文档)的文件,有很好的兼容性,使用Windows"附件"中的"写字板&quo ...
- rtf格式的一些说明
RTF是Rich TextFormat的缩写,意即多文本格式.这是一种类似DOC格式(Word文档)的文件,有很好的兼容性,使用Windows"附件"中的"写字板&quo ...
- vc向richedit控件写RTF格式内容(表格)
RTF格式文本以前很少接触过,因工作原因,需要向richedit控件插入表格. 从度娘上搜索了一些基本内容,下了RTF规范,也没有仔细研究.对于一些简单的表格,可以采用"逆向工程" ...
- Outlook使用RTF格式发信出现Winmail.dat附件事宜
接到用户反馈对方使用Outlook客户端发信过来,我们收到的呈现是winmail.dat附件,我们单独还要找第三方工具软件解析出来. 原理:Outlook选用的格式为微软自研RTF格式(常规是HTML ...
- C#重写RichBox控件获取RTF格式的内容
最近做了一个能记笔记的小工具,记笔记则需要一个富文本编辑框,于是就手动写了一个富文本编辑框,设置字体.插入图片这些功能都没问题,最后需要保存编辑好的文本内容时就遇到问题了,本来想放弃的,但用Html做 ...
- java解析读取.rtf格式文档
rtf是开源格式,同时可通过Microsoft Office打开,那么怎么利用java读取.rtf格式的文档呢? package jichu.test_simple;import java.io.Fi ...
- outlook 发送 html,在Outlook中发送给Internet收件人时,如何将RTF格式更改为HTML?
在Outlook中发送给Internet收件人时,如何将RTF格式更改为HTML? 如果您在Outlook中撰写并以RTF格式发送电子邮件,许多Internet收件人将无法正常在网页上查看此电子邮件. ...
- php 生成 rtf,php 实现html转为rtf格式_php
前期准备工作 下载html2Rtf.dll,以管理员的身份运行cmd,进入Html2Rtf.dll所在目录-->输入Regsvr32 Html2Rtf.dll 核心代码: PreserveIma ...
最新文章
- 最新 crtmpserver 源码的获取方法
- StringUtils的isBlank与isEmply
- spyder编辑器报ModuleNotFoundError: No module named ‘pymongo‘,明明已经安装上了pymongo扩展
- Linux下启动tomcat报java.lang.OutOfMemoryError: PermGen space
- 暴雪战网客户端上使用的那些开源库!
- IOMMU 虚拟IO地址和物理地址相关联
- Python2.7打包的exe文件反编译成py文件
- ask调制与解调matlab仿真,ask调制与解调的matlab仿真.doc
- 常见的SQL优化面试题
- 二项分布期望与方差的证明
- 请在微信客户端打开链接
- 未来20年内,无人驾驶将颠覆这33大行业
- 每日新闻早报简报十条和1条微语分享
- 关于算法的学习以及一些总结(一)
- Spark—15分钟教程
- Flalsh Lighting Network(闪电网络)
- leetcode初级———旋转数组的多种算法总结
- 电脑微信linux安装程序,Ubuntu安装Linux网页版微信
- 毛毛雨的博客乐园—内容简介
- linux随机输出加减乘除_实现加减乘除计算器
热门文章
- RuntimeError: invalid argument 0: Sizes of tensors must match except in dimension 1.
- 大数据与区块链的联系与区别
- git上传代码报错:hint: Updates were rejected because a pushed branch tip is behind its remote hint: counter
- 关于学校熄灯时间的调研
- win10无法打开组策略,gpedit.msc打不开
- 【移动安全】专栏文章汇总
- 微信小程序场景值列表map格式
- HTML5方方面面的活动报道,大家来吐槽啊
- mysql级联删除报1451 - Cannot delete or update a parent row: a foreign key constrain
- LLC同步控制or异步控制