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。這里面有一個屬性conversionSucceeconverSuccess)描述了豆丁文件格式的 版本信息。(>20V3否則為V2

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

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

          第一個文件(i == 1)

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

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

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

           

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

          具體細節(jié)為讀取第三/四字節(jié),如這兩個字節(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的對應關(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

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

          采用zlib的壓縮傳輸,對flexPaper進行了分包并壓縮

          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)其實百度文庫的格式很相似,并且更為簡單,但是文件的體積相對較大。

          Stream jsonstring body(X)content

          Length   102?    @size(x)

          其實百度的jsonstring的長度我沒有仔細測試其 長度,因為在這樣的格式下,只需要抓取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 閱讀(5557) 評論(3)  編輯  收藏

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

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


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 丽江市| 南漳县| SHOW| 磐石市| 益阳市| 明水县| 女性| 监利县| 柯坪县| 闽清县| 中江县| 扬州市| 樟树市| 获嘉县| 化州市| 桃江县| 泰和县| 杭锦旗| 长丰县| 清流县| 古田县| 辽中县| 桐庐县| 晋州市| 石柱| 天门市| 亳州市| 西吉县| 华坪县| 海林市| 贞丰县| 蒙阴县| 新和县| 黄浦区| 滨州市| 丹巴县| 修文县| 沧州市| 涡阳县| 漯河市| 邻水|