posts - 495,comments - 227,trackbacks - 0
          <2010年7月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿(46)

          隨筆分類(476)

          隨筆檔案(495)

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 1397576
          • 排名 - 16

          最新評論

          閱讀排行榜

          評論排行榜

          http://blog.csdn.net/chinull/archive/2010/06/28/5698775.aspx

          豆丁及百度文件格式描述

          一、       豆丁文件格式的版本

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

          1.      通過js傳遞ProductIdDocinFlashPlayer

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

          3.      pageNum屬性描述了子文件的數量

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

          第一個文件(i == 1)

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

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

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

           

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

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

          該版本中讀取的@sizeX部分的內容即為第X頁的swf內容

          三、       豆丁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

          所謂的豆丁知識產權的 部分也就在這里了

          采用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

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

          很多朋友都想知道百度 文庫的文件格式,通過分析豆丁的文件格式,發現其實百度文庫的格式很相似,并且更為簡單,但是文件的體積相對較大。

          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 閱讀(5562) 評論(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
            回復  更多評論
            

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


          網站導航:
           
          主站蜘蛛池模板: 长寿区| 嘉祥县| 白山市| 遵义市| 兴化市| 秦安县| 炎陵县| 柏乡县| 昌平区| 五大连池市| 雷波县| 剑阁县| 涟源市| 徐州市| 上蔡县| 栾川县| 林周县| 大埔县| 淮安市| 出国| 昌江| 丘北县| 三门峡市| 壶关县| 宕昌县| 宁河县| 和政县| 崇仁县| 潞城市| 资阳市| 营口市| 和平县| 大兴区| 胶州市| 遵义市| 临夏县| 延庆县| 密云县| 新和县| 离岛区| 东乡族自治县|