<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-35  評(píng)論-33  文章-0  trackbacks-0

        docx4j是一款在java世界處理微軟word/ppt/excel文檔的強(qiáng)大工具。它其實(shí)是一個(gè)半開(kāi)源的產(chǎn)品。雖然它對(duì)WORD各種處理在API層 面進(jìn)行了封裝,但是像WORD本身的拆分,合并。其作者(Jason Harrop)是單獨(dú)提出來(lái)了,封裝成了商用的JAR包來(lái)提供支持。而我在深入學(xué)習(xí)其API之后,先后將組合,拆分技術(shù)進(jìn)行了實(shí)現(xiàn)。

        docx4j用到了個(gè)比較N的技術(shù)--JAXB.它建立了XML文件與JAVA對(duì)象互相轉(zhuǎn)換的一個(gè)橋梁。

    JAXB(Java Architecture for XML Binding) 是一個(gè)業(yè)界的標(biāo)準(zhǔn),是一項(xiàng)可以根據(jù)XMLSchema產(chǎn)生Java類的技術(shù)。該過(guò)程中,JAXB也提供了將XML實(shí)例文檔反向生成Java對(duì)象樹(shù)的方法, 并能將Java對(duì)象樹(shù)的內(nèi)容重新寫(xiě)到XML實(shí)例文檔。從另一方面來(lái)講,JAXB提供了快速而簡(jiǎn)便的方法將XML模式綁定到Java表示,從而使得Java 開(kāi)發(fā)者在Java應(yīng)用程序中能方便地結(jié)合XML數(shù)據(jù)和處理函數(shù)。

    WORD以XML存儲(chǔ)的原理:

    WordprocessingML體系結(jié)構(gòu)圖


    WordML以XML的格式定義了文檔中各個(gè)部分的屬性,如頁(yè)眉,頁(yè)腳,圖片,樣式。每一種資源都其實(shí)是使用一個(gè)XML的結(jié)點(diǎn)來(lái)描述。舉例來(lái)說(shuō)明:

    假如有這樣一個(gè)文檔

    docx4j可以將WORD直接轉(zhuǎn)換其對(duì)應(yīng)的XML文檔,我們可以以第一段【開(kāi)始】到【題文】那一段的XML片斷來(lái)說(shuō)明。初步看,這段內(nèi)容包含了若干文字,一張圖片。

    文字段:

    圖片:

    圖片的關(guān)聯(lián)資源引用定義:

    圖片資源的數(shù)據(jù)定義:

    看到NB的地方?jīng)]有,使用binarydata存儲(chǔ)這個(gè)圖片的數(shù)據(jù)。


    組合原理:


    拆分原理:

    原理基本如上,已經(jīng)在項(xiàng)目中實(shí)際應(yīng)用。有了這層API,你可以通過(guò)程序去生成一份試卷(類似學(xué)科網(wǎng)的組卷功能),或者把試卷拆分成單個(gè)的試題入庫(kù)。如有不明白的,歡迎溝通學(xué)習(xí)。

    之前生成的試卷sample:主要在基礎(chǔ)API之上,封裝了生成一份試卷常用的方法。其實(shí)就是內(nèi)容的樣式設(shè)置及WORD組合。




    我的微信公眾號(hào),歡迎溝通學(xué)習(xí)。
    posted on 2016-03-14 16:10 alexcai 閱讀(5573) 評(píng)論(2)  編輯  收藏

    評(píng)論:
    # re: 利用docx4j來(lái)處理word的合并與拆分[未登錄](méi) 2016-03-18 06:54 | xin
    ooxml太繁瑣,docx4j在word層面做的不錯(cuò)可惜更新太慢bug還是一堆。對(duì)于更精細(xì)的控制,為了保持穩(wěn)定性,更推薦直接用COM調(diào)微軟API(server只能是windows而且有時(shí)很腦殘)
    或者期待下POI把word和ppt部分搞出來(lái)。
    反正對(duì)于復(fù)雜模型下的office文件生成,只有微軟自己的API最靠譜。(鄙視微軟)  回復(fù)  更多評(píng)論
      
    # re: 利用docx4j來(lái)處理word的合并與拆分 2016-03-18 09:25 | zuxiong
    @xin
    其實(shí)在這之前,我用JACOB 進(jìn)行同樣功能的封裝,已經(jīng)實(shí)現(xiàn)上上述功能。只在它是基于VBA的,在資源的處理層面,比如WORD的COPY,它是共享的。注定一臺(tái)機(jī)器同一時(shí)間只能處理一組WORD的拆分與合并處理。不能并行。所以后來(lái)才考慮使用DOCX4J。
      回復(fù)  更多評(píng)論
      

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 99久久免费国产精精品| 成人免费看吃奶视频网站| 亚洲一区在线免费观看| 国产免费观看a大片的网站| 亚洲欧洲日产国码无码久久99| 免费看无码特级毛片| 亚洲人妻av伦理| 免费91最新地址永久入口| 精品国产亚洲男女在线线电影 | 亚洲乱码中文论理电影| 日本免费网站在线观看| 久久免费国产精品一区二区| 99999久久久久久亚洲| 国产自偷亚洲精品页65页| 日本成年免费网站| 亚洲美女自拍视频| 国产成人无码a区在线观看视频免费| a级片免费在线播放| 亚洲精品亚洲人成在线| 亚洲AV本道一区二区三区四区| 免费无码又爽又刺激高潮| 亚洲一日韩欧美中文字幕在线| 美女被cao免费看在线看网站| 日本中文字幕免费看| 亚洲日韩精品无码专区网站| 2020因为爱你带字幕免费观看全集 | 中文字幕无码免费久久9一区9| 亚洲伊人久久精品| 亚洲人成网站在线观看播放| 小小影视日本动漫观看免费| 最近中文字幕电影大全免费版 | 一级特黄a大片免费| wwwxxx亚洲| 亚洲Av熟妇高潮30p| 亚洲中文无韩国r级电影| A级毛片内射免费视频| 日韩视频在线观看免费| 亚洲精品视频观看| 国产精品免费观看久久| 日韩免费电影网址| 精品人妻系列无码人妻免费视频|