现在因为我的项目要求,我需要开发一种新的文件格式,该种文件格式的目的就是实现HTML、XML以及多媒体数据合并为一体,其实HTML、XML合并很简单,关键是类似图片这样的多媒体数据如何像MHT文件或者RTF文件那样合并到里面去,合并之后怎么读出来?更有意思的是CHM文件,它也是合并了图片的,有没有知道RTF或者CHM或者MHT的实现原理,欢迎讨论

解决方案 »

  1.   

    to: rainstormmaster(暴风雨 v2.0)这个我知道,文件格式我定了,现在我就是不知道图像数据如何放进去,除了图像数据之外,其余的都是纯文本。另外图像数据放进去之后,怎么样读出来,如果要显示在WebBrowser控件中,是不是还要首先将图像数据保存到磁盘某个临时文件中,然后通过File:///链接到该图像?
      

  2.   

    我定义的文件格式代码如下:?xml version="1.0" encoding="UTF-8"?>
    <Template>
    <TempName>tempna</TempName>
    <TempVersion/>
    <Page Order="0" Width="794" Height="1123" LeftMargin="60" RightMargin="60" TopMargin="60" BottomMargin="60">
    <PageData><![CDATA[ 
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>无标题文档</title>
    </head>
    <body>
    …………
    </body>
    </html>
    ]]></PageData>
    </Page><OLEData><Image Name="20041012045.gif">
    <![CDATA[[
    //这里放置图像数据
    ]]>
    </Image><Image Name="20041012045.gif">
    <![CDATA[[
    //这里放置图像数据
    ]]>
    </Image></OLEData>
    </Template>
      

  3.   

    //现在我就是不知道图像数据如何放进去,除了图像数据之外,其余的都是纯文本。另外图像数据放进去之后,怎么样读出来,如果要显示在WebBrowser控件中,是不是还要首先将图像数据保存到磁盘某个临时文件中,然后通过File:///链接到该图像?
    用你的文件格式定义的话,需要把图象文件用2进制方式读出,读出后把各个字节转换成长度为2的字串(16进制表示),然后把各个字串连接起来(结果还是字串),用这种方式保存的话,需要释放出临时文件,当然,也需要链接到该图像
      

  4.   

    mht保存图片是按照base64对图片数据进行编码的,显示的时候存入临时文件,通过file链接
    你可以保存一份mht看看阿
      

  5.   

    rainstormmaster(暴风雨 v2.0) :谢谢你提供的思路,那么怎么读呢?有没有示例代码?
      

  6.   

    rainstormmaster(暴风雨 v2.0) :有没有MSN或者QQ可以联系的?好像你都经常回答我的问题,我很感谢你!