在生成简历的过程中,我的做法是首先设计一个word的简历模板,设置好书签,从数据库中读取数据,调用aspose进行填充。一般的数据项包括图片文件都没有问题。

问题出在了HTML字符串上。因为简历中有几个数据项是采用富文本框来进行采集的,采集的结果是以HTML字符串的格式存入数据库中的,如果直接从数据库中提取这样的字符串往word里面填充,word里面显示的就是HTML字符串,显然不是我要的结果。这里需要把HTML字符串解析为文本。一种简单的做法是直接去掉HTML字符串中的HTML标记,这样做的结果是留下来的确实是用户录入的数据内容,但是仅仅是数据内容,文本格式没有的,比如说字体大小、颜色、空格、换行等等都没有了,这样插入word里面之后,可读性很差;在网上找了很多资料,发现一种好办法,那就是调用SautinSoft.HtmlToRtf.dll,这个dll文件能够处理整页HTML文档转换为word文件,也可以将HTML字符串转换为rtf字符串。

为了将HTML字符串转换为带有格式的文本,我的做法是,第一步,将HTML字符串通过SautinSoft.HtmlToRtf.dll里面的方法转换为rtf字符串;第二步,将rtf字符串保存为一个word文件,这样形成的word文件就是有格式的word文本了;第三步,使用aspose读取生成的word文件里面的文本,插入到我最终要生成的简历文档中。

这里要特别注意的一个问题是,我采用的SautinSoft.HtmlToRtf.dll是没有授权的,存在一个转换字符数量的限制(1000000),而且在转换出来的rtf字符串中有他们的版权标记,我对rtf字符进行了分析之后,将rtf字符串中与版权有关的部分去掉了,才算是解决了问题。

private string HtmlTransLate(string strHtmlCode)
        {
            string temp = "";
            if (strHtmlCode != "")
            {
                SautinSoft.HtmlToRtf h = new SautinSoft.HtmlToRtf();
                h.PageStyle.PageSize.Letter();
                h.PageStyle.PageMarginLeft.Mm(20f);

string htmlString = "";
                string rtfString = "";

htmlString = strHtmlCode;//HTML字符串

rtfString = h.ConvertString(htmlString);//HTML字符串转换为rtf字符串
                rtfString = rtfString.Remove(rtfString.Length - 454, 453);//rtf字符串去掉版权信息

string tname = Server.MapPath(@"~/info/test1.doc");

WriteFile(tname, rtfString);//rtf字符串保存到word文件中

Document tempdoc = new Document(Server.MapPath(@"~/info/test1.doc"));//读取生成的word文件
                temp = tempdoc.GetText();//得到word文件中的文本内容
            }
            return temp;
        }

生成简历经验总结(解析HTML字符串)的更多相关文章

  1. C#解析JSON字符串总结

    JSON文件读取到内存中就是字符串,.NET操作JSON就是生成与解析JSON字符串. 操作JSON通常有以下几种方式: 1. 原始方式:按照JSON字符串自己来解析. 2. 通用方式[★★★★★]: ...

  2. C#解析JSON字符串总结(转载)

    JSON文件读取到内存中就是字符串,.NET操作JSON就是生成与解析JSON字符串. 操作JSON通常有以下几种方式: 1. 原始方式:按照JSON字符串自己来解析. 2. 通用方式[★★★★★]: ...

  3. java解析xml字符串方法

    一,用DOM4J  针对无重复标签的xml字符串格式,如下: 针对此种情况可用DOM4J解析法,引入 dom4j的相关jar包代码如下: Document document=DocumentHelpe ...

  4. 一、JSON解析与字符串化

    JSON.stringify() 序列化对象.数组或原始值 语法:JSON.stringify(o,filter,indent) o,要转换成JSON的对象.数组或原始值 filter,指定要序列化的 ...

  5. JS的全局函数eval解析JSON字符串

    JavaScript eval() 函数 定义和用法 eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码. 语法 eval(string) 参数 描述 string 必需. ...

  6. JackSon解析json字符串

    JackSon解析json字符串 原文:http://blog.csdn.net/java_huashan/article/details/9353903 概述 jackson解析json例子 准备工 ...

  7. Java 实现《编译原理》中间代码生成 -逆波兰式生成与计算 - 程序解析

    Java 实现<编译原理>中间代码生成 -逆波兰式生成与计算 - 程序解析 编译原理学习笔记 (一)逆波兰式是什么? 逆波兰式(Reverse Polish notation,RPN,或逆 ...

  8. ZeroMQ接口函数之 :zmq_z85_decode – 从一个用Z85算法生成的文本中解析出二进制密码

    ZeroMQ 官方地址 :http://api.zeromq.org/4-0:zmq_z85_decode zmq_z85_decode(3)         ØMQ Manual - ØMQ/4.1 ...

  9. js中解析json对象:JSON.parse()用于从一个字符串中解析出json对象, JSON.stringify()用于从一个对象解析出字符串。

    JSON.parse()用于从一个字符串中解析出json对象. var str = '{"name":"huangxiaojian","age&quo ...

随机推荐

  1. Android实现点击事件的4种方式

    一.通过在activity_main.xml中,按钮button控件中添加onclick事件实现 在   activity_main.xml 对应的按钮Button中加入下面红色事件 <Butt ...

  2. php 出现 500 Internal Server Error错误问题解决

    set_time_limit(0); //设置超时时间 chmod 777 filename //设置文件权限 问题根本不在这,读取数据太多,数组是很站内存的. 内存设置大些就ok了 ini_set( ...

  3. 三维地图(BFS)

    亡命逃窜 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 从前有个叫hck的骑士,为了救我们美丽的公主,潜入魔王的老巢,够英雄吧.不过英雄不是这么好当的.这个可怜的娃 ...

  4. HDU 1180 诡异的楼梯(BFS)

    诡异的楼梯 Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Status ...

  5. python操作redis-为元素排序

    #!/usr/bin/python #!coding:utf-8 import time import redis if __name__ == "__main__": try: ...

  6. jQuery插件之jqzoom

    jqzoom是一款基于jQuery的图片方法插件. 使用方法:1.引入jQuery与jqzoom,jqzoom.css 2.准备两张一大一小大小相同的图片,小图片放在<img>标签的&qu ...

  7. 认识元数据和IL(下)<第五篇>

    书接上回: 第二十四回:认识元数据和IL(上) , 第二十五回:认识元数据和IL(中) 我们继续. 终于到了,说说元数据和IL在JIT编译时的角色了,虽然两个回合的铺垫未免铺张,但是却丝毫不为过,因为 ...

  8. C# 字符串驻留池

    在.Net中,对于相同的字符串,.Net会将它们指向同一个地址,它们是相同的实例..Net中的字符串并不会更新,当更改一个字符串变量时,由于字符串的不可变性,.Net实际上是新创建一个字符串,而将变量 ...

  9. Android 圆形按钮实现

    项目中用到的圆形按钮,做个半天,用sharp形式实现,样式代码如下: <Button android:id="@+id/btn_5" android:layout_width ...

  10. C# Cookie编程

    Cookie,他最早出现是在Netscape Navigator 2.0中.Cookie其实就是由Web服务器创建的.将信息存储在机上的文件.那么为什么Web服务器要在客户机上面创建如此文件?这是因为 ...