posts - 495,comments - 227,trackbacks - 0
          http://blog.csdn.net/chinull/archive/2010/06/28/5698775.aspx

          豆丁及百度文件格式描述

          一、       豆丁文件格式的版本

          描述豆丁文件格式版本之前,有必要交代一下豆丁文件在豆丁文檔器中裝載的過程。

          1.      通過js傳遞ProductIdDocinFlashPlayer

          2.      DocinFlashPlayer調(diào)用DocinProductWebServicegetProductInfo方法獲取ProductInfo。這里面有一個(gè)屬性conversionSucceeconverSuccess)描述了豆丁文件格式的 版本信息。(>20V3否則為V2

          3.      pageNum屬性描述了子文件的數(shù)量

          4.      docin資源文件的URI地址及格式為:

          第一個(gè)文件(i == 1)

          http://file.yimk.com/docin_{ProductId}.docin

          其他文件(i == 2 to pageNum)

          http://file.yimk.com/docin_{ProductId}_{i}.docin

           

          介紹以上內(nèi)容的原因是 從豆丁資源文件本身是無法識(shí)別文件的版本信息的,但是也可以采用試探的方式進(jìn)行轉(zhuǎn)換。

          具體細(xì)節(jié)為讀取第三/四字節(jié),如這兩個(gè)字節(jié)值 為0x00,則為V3,否則為V2。

          二、       豆丁V2格式描述

          Stream headerLen headcontent body(X)content

          Length   4       headerLen    @size(x)

           

          headcontent iso-8859-1 encoder(解碼后字符串如)

          <root>

          <node size="43893" width="595" height="842"/>

          <node size="34595" width="595" height="842"/>

          </root>

          FlexPaper的對(duì)應(yīng)關(guān)系

          該版本中讀取的@sizeX部分的內(nèi)容即為第X頁的swf內(nèi)容

          三、       豆丁V3格式描述

          Stream pageWidth pageHeight _totalPages headerLen swfHeaderContent

          Length    4         4         4       4         headerLen

          Stream body(X)Len body(X)Content

          Length    4         body(X)Len

          所謂的豆丁知識(shí)產(chǎn)權(quán)的 部分也就在這里了

          采用zlib的壓縮傳輸,對(duì)flexPaper進(jìn)行了分包并壓縮

          Content = Uncompress(swfHeaderContent)+ Uncompress(body(X)Content)

          Tlen =len(Content)

          FlexPaper(x)= byte(70) byte(87) byte(83) byte(09) byte([](tlen) Content

          四、       百度資源文件的格式描述

          很多朋友都想知道百度 文庫的文件格式,通過分析豆丁的文件格式,發(fā)現(xiàn)其實(shí)百度文庫的格式很相似,并且更為簡(jiǎn)單,但是文件的體積相對(duì)較大。

          Stream jsonstring body(X)content

          Length   102?    @size(x)

          其實(shí)百度的jsonstring的長(zhǎng)度我沒有仔細(xì)測(cè)試其 長(zhǎng)度,因?yàn)樵谶@樣的格式下,只需要抓取CWS或者FWS

          if ((_loc_3[_loc_5] == 67 || _loc_3[_loc_5] == 70) && _loc_3[(_loc_5 + 1)] == 87 && _loc_3[_loc_5 + 2] == 83 && (_loc_3[_loc_5 + 3] == 9 || _loc_3[_loc_5 + 3] == 10))  

          posted on 2010-07-05 22:53 SIMONE 閱讀(5559) 評(píng)論(3)  編輯  收藏

          FeedBack:
          # re: 豆丁及百度文件格式描述
          2010-08-02 16:27 | zjq
          好文章  回復(fù)  更多評(píng)論
            
          # re: 豆丁及百度文件格式描述[未登錄]
          2012-04-13 12:44 | yy
          豆丁文檔下載器提示錯(cuò)誤:
          “無法解析此遠(yuǎn)程名稱 file.yimk.com”
          是什么原因呢?  回復(fù)  更多評(píng)論
            
          # re: 豆丁及百度文件格式描述
          2012-04-17 12:45 |
          我也想知道啊~~~~~~~~~@yy
            回復(fù)  更多評(píng)論
            

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 仙游县| 舞钢市| 许昌县| 海淀区| 孟连| 长宁县| 九台市| 新蔡县| 宝山区| 西峡县| 城步| 灵寿县| 汽车| 静乐县| 承德市| 晋城| 福州市| 芦溪县| 太仓市| 泗洪县| 本溪| 遂宁市| 镇原县| 高要市| 莒南县| 郎溪县| 家居| 察雅县| 新昌县| 奎屯市| 丰都县| 和顺县| 红原县| 彰武县| 郓城县| 开原市| 安阳市| 平武县| 望谟县| 峨边| 山东|