2011年4月23日

               摘要: 網(wǎng)站轉(zhuǎn)讓,javaei  閱讀全文

          posted @ 2011-04-23 22:41 summeryhrb 閱讀(1995) | 評(píng)論 (5)編輯 收藏


          2010年5月3日

           

          我的網(wǎng)站是http://www.javaei.com,定位于收錄java開發(fā)領(lǐng)域最精華的博克,討論最熱烈的話題。Javaei中的ei取自美國(guó)工程索引的EI。網(wǎng)站于200956開通,空間只購買了一年的時(shí)限,馬上就要到期了。

          去年這時(shí)候,突然萌生了做一個(gè)自己的網(wǎng)站的想法。有了創(chuàng)意,很快就行動(dòng)起來了,從設(shè)計(jì)到開發(fā)到域名構(gòu)思到購買空間,大約兩周的時(shí)間,網(wǎng)站的雛形就上線了。后來逐步完善,融入了更多的想法。其實(shí)當(dāng)時(shí)并沒有很多空余時(shí)間來做這個(gè)網(wǎng)站,只因一時(shí)興起,把所有其它的事情全放到一邊了。當(dāng)時(shí)我除了工作外,正在準(zhǔn)備兩個(gè)重要的考試,一個(gè)是系統(tǒng)分析師考試,一個(gè)是報(bào)考哈工大的博士招生考試。

          Javaei網(wǎng)站核心功能是收集java開發(fā)領(lǐng)域最精華的博克、討論最熱烈的話題,其內(nèi)容還包括數(shù)據(jù)庫開發(fā)、web前端開發(fā)等內(nèi)容,每周更新一次,后來還加入了各大網(wǎng)站的一些優(yōu)秀的序列連載博客;跟學(xué)生交流過程中,發(fā)現(xiàn)hta很有意思,又把網(wǎng)站每周的內(nèi)容做成hta文件,供訪問者下載;再后來,我覺得把博克內(nèi)容轉(zhuǎn)換成pdf很有必要,就提出了H2P,設(shè)計(jì)了H2P文件的xml格式、寫了一個(gè)簡(jiǎn)單編輯H2P文件的工具,并且根據(jù)H2P文件,把網(wǎng)站每周的內(nèi)容生成一個(gè)有目錄的pdf電子書,這種方式比某些網(wǎng)站推出的電子書生成功能先進(jìn)的多,同時(shí),還設(shè)計(jì)了xslH2P文件解析成樹形結(jié)構(gòu)的形式,使網(wǎng)站可以以左邊樹形目錄右邊顯示正文的形式瀏覽。后來接受網(wǎng)友的建議,為網(wǎng)站增加了RSS訂閱功能。

          網(wǎng)站的推廣工作也做了一些,主要是做了一些簡(jiǎn)單的SEO、寫一些文章、和其它網(wǎng)站交換鏈接。在這里,向和我交換鏈接的網(wǎng)站表示衷心的感謝。也曾經(jīng)想以郵件的方式推廣,從各學(xué)生那里要來了他們所在公司員工的email,但是這種大批量的群發(fā)郵件必須購買專門的郵件服務(wù)才可以,所以郵件推廣的方式就放棄了。為了推廣我的H2P,向各大網(wǎng)站發(fā)起過倡議,希望有更多的網(wǎng)站支持H2P,但回復(fù)者寥寥。我把H2P做了簡(jiǎn)單的整理,向各開源網(wǎng)站提交,希望有更多的人來一起完善H2P,但是由于我自己精力有限,沒有時(shí)間作后續(xù)跟進(jìn)。

          在系統(tǒng)分析師考試的前一周,網(wǎng)站的更新暫停了下來,必須為考試做準(zhǔn)備了。幸運(yùn)的是,后來系統(tǒng)分析師通過了,但這個(gè)證書對(duì)我已經(jīng)沒有意義了。網(wǎng)站最后一次更新是2009912,博士招生考試的時(shí)間已經(jīng)臨近,我必須全力以赴的復(fù)習(xí)了,還是很幸運(yùn),我現(xiàn)在已經(jīng)在上博了,網(wǎng)站依然沒有時(shí)間更新,而且現(xiàn)在正在忙著準(zhǔn)備參加今年的blog track評(píng)測(cè),網(wǎng)站的更新完全停下了。

          網(wǎng)站域名和空間使用期限馬上就到了,寫這篇短文紀(jì)念我的網(wǎng)站,并希望有人能接手這個(gè)網(wǎng)站,把我前段時(shí)間的工作延續(xù)下去。

          關(guān)于網(wǎng)站的介紹請(qǐng)參考我的序列文章——建站手記。
           

          我的聯(lián)系方式qq38295305emalyangjinfeng2010@gmail.com

          posted @ 2010-05-03 21:11 summeryhrb 閱讀(2133) | 評(píng)論 (3)編輯 收藏


          2009年9月21日

          javaei網(wǎng)站推出的h2p被開源中國(guó)收錄為開源項(xiàng)目,urlhttp://www.open-open.com/open252825.htm。希望借助這個(gè)平臺(tái),能有更多的人了解h2p

          H2p是一種根據(jù)批量URL生成一個(gè)有書簽的pdf文檔的解決方案。H2p主要包括兩部分:h2p-fileh2p-toolh2p-file是一個(gè)xml文件,該xml文件主要描述url的信息和url的層次結(jié)構(gòu),h2p-tool根據(jù)h2p-file生成有書簽的pdf文檔。還可以通過xsl直接展示url的層次結(jié)構(gòu),而且合作網(wǎng)站對(duì)h2p的支持也將變得簡(jiǎn)單。

          H2p詳細(xì)介紹

          H2P倡議——一種新的互聯(lián)網(wǎng)應(yīng)用模式 

          H2p完善——h2p文件合并和用xsl解析h2p文件

          posted @ 2009-09-21 12:57 summeryhrb 閱讀(1074) | 評(píng)論 (0)編輯 收藏


          2009年9月17日

          昨天,javaei網(wǎng)站推出的h2p被開源中國(guó)收錄為開源項(xiàng)目,urlhttp://www.oschina.net/p/h2p。希望借助這個(gè)平臺(tái),能有更多的人了解h2p

          H2p是一種根據(jù)批量URL生成一個(gè)有書簽的pdf文檔的解決方案。H2p主要包括兩部分:h2p-fileh2p-toolh2p-file是一個(gè)xml文件,該xml文件主要描述url的信息和url的層次結(jié)構(gòu),h2p-tool根據(jù)h2p-file生成有書簽的pdf文檔。還可以通過xsl直接展示url的層次結(jié)構(gòu),而且合作網(wǎng)站對(duì)h2p的支持也將變得簡(jiǎn)單。

          H2p詳細(xì)介紹

          H2P倡議——一種新的互聯(lián)網(wǎng)應(yīng)用模式 

          H2p完善——h2p文件合并和用xsl解析h2p文件

          posted @ 2009-09-17 13:50 summeryhrb 閱讀(206) | 評(píng)論 (0)編輯 收藏


          2009年9月16日

           

          JavaEI網(wǎng)站從建站到現(xiàn)在已經(jīng)初具規(guī)模,具有穩(wěn)定的訪問量,也產(chǎn)生了一定的影響力,尤其是h2p推出后,收到很多朋友的褒揚(yáng)和鼓勵(lì)。

          但由于站長(zhǎng)自身的技術(shù)局限性,而且站長(zhǎng)本人精力有限,所以希望有對(duì)javaei感興趣的同仁能加盟。

          在軟件開發(fā)技術(shù)蓬勃發(fā)展的今天,JavaEI不局限于Java,希望向其他技術(shù)領(lǐng)域(C++rubypythonscala等等)發(fā)展,

          為了JavaEI的進(jìn)一步發(fā)展和壯大,誠(chéng)邀對(duì)此目標(biāo)感興趣的同仁,一起來發(fā)展JavaEI。對(duì)h2p感興趣的同仁,也歡迎與我們聯(lián)系,

          我們的聯(lián)系方式是:

          QQ

          1027816029

          Email

          javaei@163.com

          posted @ 2009-09-16 13:13 summeryhrb 閱讀(1568) | 評(píng)論 (4)編輯 收藏


          2009年8月31日

               摘要: 自從javaei網(wǎng)站推出h2p以來,得到了很多人的支持和鼓勵(lì),也給出了很多寶貴意見,再次深表謝意。
          這些意見主要是三個(gè)方面的問題。第一:為什么要生成pdf;第二:h2p文件分成兩個(gè),比較繁瑣,為什么不合成一個(gè);第三:h2p-tool由c#和java實(shí)現(xiàn),用起來不夠簡(jiǎn)單,需要進(jìn)一步完善。這三方面的意見提得非常好,在設(shè)計(jì)h2p之前,我其實(shí)是深思熟慮過的。
            閱讀全文

          posted @ 2009-08-31 13:20 summeryhrb 閱讀(1236) | 評(píng)論 (1)編輯 收藏


          2009年8月12日

          From: "javaei" <javaei@163.com>
          To: "webmaster" <webmaster@javaeye.com>; "admin" <admin@csdn.net>; "contact" <contact@cnblogs.com>; "banq" <banq@163.com>; "jackliu.aws" <jackliu.aws@gmai.com>; "oschina.net" <oschina.net@gmail.com>; "jrwebmaster" <jrwebmaster@javaresearch.org>; "support" <support@cjsdn.net>; "chris" <chris@matrix.org.cn>; "admin2" <admin2@staff.chinaunix.net>; "admin" <admin@oracle.com.cn>; "sangernten" <sangernten@gmail.com>; "software" <software@it168.com>; "admin" <admin@chinajavaworld.com>; "service" <service@360doc.com>; "sinamedia" <sinamedia@vip.sina.com>; "thomastang" <thomastang@tencent.com>; "ir" <ir@service.netease.com>; "webmaster" <webmaster@java-cn.com>; "webmaster" <webmaster@pfan.cn>; "yaoz" <yaoz@163.com>; "Webmaster" <Webmaster@contact.sohu.com>; "java2000_net" <java2000_net@hotmail.com>; "webmaster" <webmaster@staff.ccidnet.com>; "justin" <justin@chinaitlab.com>; "david" <david@kingofcoders.com>; "yanger1997" <yanger1997@yahoo.com.cn>; "admin" <admin@javatx.cn>; "eatfishlin" <eatfishlin@hotmail.com>; "eygle" <eygle@hotmail.com>; "fondofbeyond" <fondofbeyond@163.com>
          Sent: Friday, August 07, 2009 10:44 AM
          Subject: H2P倡議——一種新的互聯(lián)網(wǎng)應(yīng)用模式(帶附件和示例圖片)


          各網(wǎng)站管理員:

                 我是javaei網(wǎng)站的管理員,近段時(shí)間,我站提出h2p概念,并推出h2p應(yīng)用。h2phtml to pdf的意思,具體地說是根據(jù)批量URL生成一個(gè)有書簽的pdf文檔的解決方案,該方案是一個(gè)完整的解決方案。我覺得h2p是互聯(lián)網(wǎng)應(yīng)用的一種創(chuàng)新,值得推廣,經(jīng)過調(diào)查,得到不少人的認(rèn)可。但是javaei網(wǎng)站的影響力有限,推廣力度不夠,為了能讓h2p被大家認(rèn)可并得到推廣,特向各位發(fā)起倡議,一起來完善并推廣這種應(yīng)用,當(dāng)然首先要得到各位的認(rèn)可。H2p在技術(shù)上微不足道,重要意義體現(xiàn)在應(yīng)用模式上。就像Rss一樣,rss本身技術(shù)上沒什么可說的,但應(yīng)用模式上意義重大,rss從提出到被接受,也是經(jīng)過了曲折的歷程。我私下里希望,h2p也能像rss那樣,被廣為接受,最終成為一種大家接受的應(yīng)用模式而確立下來,更重要的是,這是中國(guó)的程序員發(fā)起并推廣的,這絕對(duì)是零的突破。

                 下面從三個(gè)方面來展開:h2p具體介紹,為什么要推廣h2ph2p完善和推廣

           

          一、H2P具體介紹

                 H2Pjavaei網(wǎng)站發(fā)展的結(jié)果。H2P包括兩個(gè)部分:h2p-fileh2p-toolh2p-file其實(shí)是xml文件,用來描述批量的URL,主要描述兩個(gè)信息,url的先后順序和層次結(jié)構(gòu)(用于處理書簽)。h2p-tool是一個(gè)客戶端工具,用途目前主要有三個(gè),根據(jù)dtd校驗(yàn)h2p-file的合法性、編輯h2p-file和根據(jù)h2p-file生成有書簽的pdf文檔。

          1h2p-file

          在目前的方案中h2p-file包括兩個(gè)xml文件,href.h2p.xmloutline.h2p.xml

          href.h2p.xml示例如下






           1 <href-info>
           2     <href id="KxgYaRxG">
           3         <value><![CDATA[http;//www.163.com]]></value>
           4     </href>
           5     <href id="53Bw5A32">
           6         <value><![CDATA[http://www.sohu.com]]></value>
           7     </href>
           8     <href id="eyEis6ra">
           9         <value><![CDATA[http;//news.163.com]]></value>
          10     </href>
          11     <href id="DMQoSN2t">
          12         <value><![CDATA[http;//sports.163.com]]></value>
          13     </href>
          14     <href id="5vaf3LN7">
          15         <value><![CDATA[http://news.sohu.com]]></value>
          16     </href>
          17 </href-info>
          18 

          這個(gè)xml很簡(jiǎn)單,之所以這樣描述,是因?yàn)?/span>URL通常會(huì)有&而這個(gè)符號(hào)不能出現(xiàn)在xml里,而且作為屬性的值,還不能用<![CDATA[]]>,所以就作為一個(gè)節(jié)點(diǎn)了。

          h2p-tool根據(jù)這個(gè)xml生成的每個(gè)pdf文件,pdf文件的名字取id的值,后綴為pdf

          outline.h2p.xml示例如下

           1 <book name="我的PDF書">
           2     <chapter name="163" href="KxgYaRxG">
           3         <chapter name="163新聞" href="eyEis6ra" />
           4         <chapter name="163體育" href="DMQoSN2t" />
           5     </chapter>
           6     <chapter name="sohu" href="53Bw5A32">
           7         <chapter name="sohu新聞" href="5vaf3LN7" />
           8     </chapter>
           9 </book>
          10 

          這個(gè)xml描述了每個(gè)pdf合并的順序,href的值和上一個(gè)xmlid值對(duì)應(yīng),chapter標(biāo)簽嵌套的層次就是書簽的層次,name的值就是書簽的名稱。H2p-tool根據(jù)這個(gè)xml把每個(gè)pdf合并成一個(gè)pdf,并生成書簽。

          考慮到h2p的發(fā)展,完全有理由把這兩個(gè)xml文件合并成一個(gè)xml文件,可以定義成如下格式:

           1 <book name="我的PDF書">
           2     <chapter name="163">
           3         <href><![CDATA[http://www.163.com]]></href>
           4         <chapter name="163新聞">
           5             <href><![CDATA[http://news.163.com]]></href>
           6         </chapter>
           7         <chapter name="163體育">
           8             <href><![CDATA[http://sports.163.com]]></href>
           9         </chapter>
          10     </chapter>
          11     <chapter name="sohu">
          12         <href><![CDATA[http://www.sohu.com]]></href>
          13         <chapter name="sohu新聞">
          14             <href><![CDATA[http://news.sohu.com]]></href>
          15         </chapter>
          16     </chapter>
          17 </book>
          18 
           

          對(duì)應(yīng)的dtd可以定義如下

          1 <!ELEMENT book (chapter+)>
          2 <!ATTLIST book      name   CDATA #REQUIRED>
          3 <!ELEMENT chapter (chapter*)>
          4 <!ATTLIST chapter      name  CDATA  #REQUIRED>
          5 <!ATTLIST chapter      href  CDATA  #IMPLIED>
          6 
           

          在這個(gè)方案當(dāng)中,h2p-file具有十分重要的意義,它作為一種資源被提供下載,也可以在線使用,h2p-file的格式作為一種協(xié)議,可以被各大網(wǎng)站支持,

          2h2p-tool

          h2p-tool是處理h2p-file的客戶端工具,目前h2p-tool的功能主要有以下三個(gè)方面

          根據(jù)dtd校驗(yàn)h2p-file的合法性,

          編輯h2p-file編輯功能包括新建、修改、保存,

          根據(jù)h2p-file生成有書簽的pdf文檔,先根據(jù)。

          目前h2p-tool一部分是用C#開發(fā)的,一部分是用Java開發(fā)的。不管h2p-tool用什么開發(fā),通過什么方式使用(在線或離線的),只要能處理h2p-file即可。

          h2p-tool的功能還可以有如下擴(kuò)充:

          合并h2p-file,解析h2p-file在線閱讀(這一點(diǎn)類似于google reader),也可以不需要h2p-tool,直接用xsl展示h2p-file

          下圖是h2p生成pdf的一個(gè)示例。


           

          二、為什么要推廣H2P

          其實(shí)就是要回答h2p有什么價(jià)值。自從有了h2p構(gòu)想以來,我一直在思考這個(gè)問題。

          從以下幾個(gè)方面說明我的思考:

          (1)各大網(wǎng)站已經(jīng)積累了豐富的資料,隨著pdf的風(fēng)行,導(dǎo)出pdf是很多用戶的需求,提供pdf導(dǎo)出功能的網(wǎng)站還不多,實(shí)際上技術(shù)已很成熟,原因在于沒有很好的模式。導(dǎo)出pdf是個(gè)性需求,網(wǎng)站無法知道用戶需要把哪些導(dǎo)出成pdf,而且在服務(wù)器端生成pdf,不僅會(huì)增加服務(wù)器端壓力。而且會(huì)增加管理員工作量。而如果網(wǎng)站只是提供h2p-file下載,由用戶利用第三方工具(也即h2p-tool)自行編輯h2p-file,自行生成pdf,上面的問題就解決了,服務(wù)器端壓力沒有了,只需生成h2p-file,用戶可以根據(jù)自己的需要對(duì)h2p-file進(jìn)行編輯,生成pdf既滿足了個(gè)性需求,同時(shí)把生成pdf的壓力轉(zhuǎn)移了用戶,這點(diǎn)小壓力對(duì)單個(gè)用戶是可以接受的。

          2如果網(wǎng)站想支持pdf導(dǎo)出的話,那么只需提供h2p-file,就像rss一樣,網(wǎng)站要提供訂閱功能,只需提供rss就行

          3)網(wǎng)站可以根據(jù)用戶的請(qǐng)求動(dòng)態(tài)的生成h2p-file,從而間接的實(shí)現(xiàn)根據(jù)請(qǐng)求動(dòng)態(tài)生成pdf的功能,這一點(diǎn)意義非凡。

          4)網(wǎng)站提供h2p-file,會(huì)導(dǎo)致對(duì)網(wǎng)站內(nèi)容的整理和挖掘,從而促進(jìn)站內(nèi)智能搜索的應(yīng)用。

          5)滿足了用戶的便捷,就是贏利的開始。關(guān)于盈利,在網(wǎng)站廣告投放這方面一點(diǎn)都不會(huì)受影響,pdf超強(qiáng)的表現(xiàn)力足可以完美的表現(xiàn)廣告效果,在h2p-file里可以適當(dāng)放一些廣告鏈接,同時(shí),h2p-tool上也可以投放廣告,h2p-tool在生成pdf的時(shí)候也能再適當(dāng)位置加入廣告。把廣告固化到pdf文件里,這種方式比在瀏覽器里顯示的廣告生命周期要長(zhǎng)得多,因?yàn)?/span>pdf是只讀的。

          6)最后一點(diǎn),是意義上的而非價(jià)值上的,那就是如果h2p推廣開了,被人們接受了,那么這將是第一個(gè)由中國(guó)的程序員發(fā)起并推廣的一個(gè)協(xié)議,一個(gè)互聯(lián)網(wǎng)應(yīng)用模式Bbsblogwikitwitterrss等等,耳熟能詳?shù)臇|西,有技術(shù)含量嗎?真正有價(jià)值的是這些應(yīng)用模式,正是這些應(yīng)用模式推動(dòng)著互聯(lián)網(wǎng)的飛速發(fā)展。而搜索引擎卻集優(yōu)秀的應(yīng)用模式和先進(jìn)的理論思想與技術(shù)于一身。

          7)有可能帶來其他方面的影響,比如網(wǎng)站內(nèi)容的提煉和聚合。

          三、H2P完善和推廣

          H2P剛剛產(chǎn)生,是個(gè)雛兒,盡管核心思想已經(jīng)體現(xiàn)出來了,但在形式上和應(yīng)用上還有需要大幅度的完善。可從以下幾個(gè)方面展開:

          1)齊心協(xié)力共同制定和完善h2p-file的格式,使h2p應(yīng)用更加便捷和豐富。h2p-file可以分成兩個(gè)文件獨(dú)立描述,也可以合為一個(gè),前面已經(jīng)闡述了。

          2)確定了h2p-file的格式,進(jìn)一步完善和重新開發(fā)h2p-toolh2p-tool可以有三個(gè)方向,一個(gè)方向就是目前的方向,開發(fā)一個(gè)客戶端工具,并且使用瀏覽器的內(nèi)核,把瀏覽器的功能集成進(jìn)來,在java開發(fā)方面已經(jīng)有了JDIC這么一個(gè)框架了;第二個(gè)方向就是類似google reader的方向,在線解析h2p-file,以樹形結(jié)構(gòu)顯示連接,提供在線的便捷閱讀;第三個(gè)方向采取最簡(jiǎn)單的方式,直接用xsl顯示h2p-file

          3)博克文章、論壇帖子一般至少有三分之一的內(nèi)容是廣告或圖片,直接根據(jù)URL生成的pdf就顯得很臃腫,這是這個(gè)方案的缺陷,解決這個(gè)問題最簡(jiǎn)單的思路就是網(wǎng)站針對(duì)h2p應(yīng)用再提供一個(gè)URL,根據(jù)這個(gè)URL得到的內(nèi)容主要是文字形式的內(nèi)容,之所以說它簡(jiǎn)單,是因?yàn)楝F(xiàn)在的界面的輸出大多采用的模板技術(shù),在模板上稍作變動(dòng),就可以輸出沒有太多廣告和圖片的內(nèi)容。但考慮到網(wǎng)站需要投放廣告,可以允許有少量廣告,從而就產(chǎn)生了h2p-file質(zhì)量這個(gè)概念,圖片越少廣告越少,那么生成的pdf就越干凈體積就越小,h2p-file質(zhì)量就越高;反之,生成的pdf就像現(xiàn)在的報(bào)紙一樣,實(shí)質(zhì)內(nèi)容淹沒在廣告里而且體積還很大,h2p-file質(zhì)量就越低。

          4)如果上面的思路得到了采納,那么根據(jù)一條URL生成單個(gè)pdf 的技術(shù)就能很好的解決。目前的h2p-tool在這一部分的開發(fā)用的是一個(gè)C#組件(生成的pdf有水印,我估計(jì)這個(gè)組件是調(diào)用了IE瀏覽器的功能)。之所以采用這個(gè)組件,是因?yàn)橐WC生成的pdf展現(xiàn)效果和瀏覽器里的效果完全相同,這無異于做一個(gè)瀏覽器,難度可想而知。如果專門為h2p應(yīng)用再提供一個(gè)URL,根據(jù)這個(gè)URL得到的內(nèi)容主要是文字形式的內(nèi)容,沒有復(fù)雜的標(biāo)簽和樣式,這種情況下,使用iText等框架生成pdf是可行的。Javaeye網(wǎng)站提供的pdf下載和電字書制作得到的pdf就是這種情況,提取博克文章的主體內(nèi)容生成pdf

          5)各網(wǎng)站對(duì)h2p的支持很簡(jiǎn)單,只需發(fā)布網(wǎng)站內(nèi)容的h2p-file即可,h2p-file從此就以協(xié)議或資源的身份出現(xiàn)在互聯(lián)網(wǎng)中。

          以上三方面的內(nèi)容分別闡述了h2p應(yīng)用模式、h2p的意義和價(jià)值和h2p完善和發(fā)展的方向,回答了為什么要發(fā)起這個(gè)h2p倡議。敬請(qǐng)各網(wǎng)站管理員考慮我的意見,推動(dòng)這個(gè)新的h2p應(yīng)用,不僅會(huì)各網(wǎng)站帶來新的贏利,而且這將是我們這些中國(guó)程序員的集體榮耀。

                                       2009-8-7

                                       Javaei網(wǎng)站

          相關(guān)介紹:

          投票——你認(rèn)為h2p實(shí)用嗎

          H2P介紹

          根據(jù)批量URL生成有書簽的PDF文檔的解決方案

          pdf生成的解決方案(H2p)之H2P技術(shù)細(xì)節(jié)

          pdf生成的解決方案(H2p)之H2P展望



          posted @ 2009-08-12 09:31 summeryhrb 閱讀(1773) | 評(píng)論 (5)編輯 收藏


          2009年7月30日

           

          H2P在很多人看來是個(gè)令人激動(dòng)的方案,而且javaei網(wǎng)站提供h2p文件資源又是相當(dāng)自然的一件事情,一想到h2p,我都很高興,因?yàn)檫@個(gè)方案是我提出來的,盡管實(shí)現(xiàn)h2p的技術(shù)很成熟。在這篇文章里,說一下實(shí)現(xiàn)h2p所涉及到的技術(shù)吧,既有核心的j2se應(yīng)用,又有開源框架的使用。

          1dtd的應(yīng)用,為了規(guī)范使用者正確的編輯h2p文件,我定義了h2p文件的dtd,當(dāng)然我還有一個(gè)奢望,希望能成為一種規(guī)范。

          2)使用根據(jù)dtd校驗(yàn)xmlh2p文件),h2p-tool需要解析xmlh2p文件)提取url生成pdf并合并,不合法的xml文件肯定不能正確的生成pdf,所以必須對(duì)xml文件進(jìn)行校驗(yàn)。

          3xml解析,編輯h2p,用JTree展示xml的樹形結(jié)構(gòu),這一部分用的是dom解析(具體的是JDom),獲取書簽的目錄結(jié)構(gòu)并構(gòu)建書簽的數(shù)據(jù)結(jié)構(gòu),這一部分用的是SAX解析,并借助于Stack。保存xml文件用的是dom

                   4swing的應(yīng)用,h2p-tool編輯功能用的是swing,展示并編輯樹形結(jié)構(gòu)用的是JTree

                   5C#組件,根據(jù)url生成單個(gè)的pdf,用的是c#組件,并在vs.net開發(fā)平臺(tái)上進(jìn)行了簡(jiǎn)單的開發(fā)。Javaei提供的h2p文件通常包含幾十條url,單就每條url生成pdf也需要一點(diǎn)時(shí)間,何況是幾十條,所以運(yùn)用多線程是必須的方式,研究了一下c#的多線程(c#的多線程方式也很有意思,感覺比java的簡(jiǎn)單),可是別人的組件在多線程下表現(xiàn)欠佳,無賴之下,只好還是采用單線程。本想用jnic#的調(diào)用封裝起來,但經(jīng)過研究,據(jù)說比較麻煩,就放棄了,所以采用簡(jiǎn)單的辦法,用批處理來調(diào)用。

          6iText的應(yīng)用,生成單個(gè)pdf頁面以及合并pdf生成書簽用的是iText。在合并的時(shí)候,也研究過另一個(gè)框架就是pdfboxIText確實(shí)強(qiáng)悍,理論上,應(yīng)用iText可以實(shí)現(xiàn)任意效果的輸出,應(yīng)該可以實(shí)現(xiàn)瀏覽器的效果,但比較麻煩。iText在生成書簽這一塊,做得相當(dāng)漂亮,書簽可以指向任意一個(gè)頁面的任意部分,還可以設(shè)置書簽對(duì)應(yīng)頁面的打開效果,對(duì)書簽的開發(fā)也很便利,直接構(gòu)造書簽的樹形數(shù)據(jù)結(jié)構(gòu)我認(rèn)為是最簡(jiǎn)單的,iText還支持用xml描述書簽的結(jié)構(gòu)。

                   7Classloader的應(yīng)用,h2p-tool的運(yùn)行依賴于很多的jar包,通常我們開發(fā)的時(shí)候,都是把jar包放在指定的目錄,應(yīng)用服務(wù)器會(huì)去加載依賴的jar包。在h2p-tool中,需要自己處理jar包。因?yàn)檫@是提供給用戶使用的工具,不應(yīng)要求使用者去配置除了jdk環(huán)境變量以外的變量。所以解決jar包加載的問題通常的辦法是在主類(帶有main方法的類)所在jar包里的Manifest.mf文件里寫上jar包的相對(duì)路徑。這種辦法不太靈活,所以在h2p-tool中,對(duì)類加載進(jìn)行了改寫,使其自動(dòng)加載指定目錄下的jar包。

          8jvm參數(shù)的應(yīng)用,因?yàn)橐喜⒌?/span>pdf很多,再合并的時(shí)候會(huì)占用大量?jī)?nèi)存,很容易out of memery,所以在批處理文件里,需要配置適當(dāng)?shù)?/span>jvm參數(shù),主要是兩個(gè):-Xmx512m -Xms512m,這兩個(gè)參數(shù)的意義這里不再贅述,網(wǎng)上有很多的。

               總結(jié)一下,實(shí)現(xiàn)h2p-tool的技術(shù)細(xì)節(jié)貌似很多,實(shí)則很少,除了JDOmiText,再就是j2se核心的東西了,出列上面列到的,還包括流、字符集的處理等。H2p-tool及源代碼下載。

          posted @ 2009-07-30 14:44 summeryhrb 閱讀(1659) | 評(píng)論 (5)編輯 收藏


          2009年7月29日

           

          《根據(jù)批量URL生成有書簽的pdf文檔的解決方案》一文作為一個(gè)完整的解決方案,主要有四個(gè)要點(diǎn)

          1)詳細(xì)描述了解決方案的思路,

          2)提出了一種描述URLxml文件,稱之為h2p文件

          3)根據(jù)h2p文件生成pdf文檔的工具稱為h2p-tool,同時(shí)h2p-tool還能對(duì)h2p文件進(jìn)行編輯,從而制作自己的pdf電子書。

          4h2p文件是該解決方案的資源文件,收集url是件費(fèi)時(shí)費(fèi)力的事情,所以該解決方案還提供了下載h2p文件的鏈接

          H2p是我自己定義的一種xml格式,我私下里是希望這種格式能夠被大家接受,所以我定義了dtd,并且開發(fā)了一個(gè)編輯h2p文件的工具h2p-tool,而且在javaei網(wǎng)站上提供了大量的h2p文件作為資源下載。有了h2p,制作自己的pdf電子書將變得很容易。

          如果想讓h2p為大家所接受,h2p必須不斷的發(fā)展。因?yàn)楝F(xiàn)在h2p應(yīng)用還是很簡(jiǎn)單很原始。主要表現(xiàn)在,生成的pdf是原html的完全再現(xiàn),這是他的優(yōu)點(diǎn)也是他的弱點(diǎn)。

          說是優(yōu)點(diǎn),是因?yàn)?/span>pdf的呈現(xiàn)效果和在瀏覽器里風(fēng)格一樣。

          說是缺點(diǎn),是因?yàn)榧热簧闪?/span>pdf,我們希望pdf里主要突出文章的主題內(nèi)容,而不希望有原來網(wǎng)頁里的那么多的圖片和廣告,而且還希望原來是分頁的內(nèi)容自動(dòng)合并到一個(gè)pdf里。

          所以,就此缺點(diǎn),我提出兩個(gè)可能的展望。

          1)制定一種規(guī)范,該規(guī)范要求網(wǎng)站為每篇博客提供一個(gè)為h2p專用的鏈接(姑且叫h2p鏈接吧),根據(jù)這個(gè)鏈接打開的博客文章是沒有廣告的,那么h2p文件的連接采用這種h2p鏈接,生成的pdf就沒有上述的缺點(diǎn)了。這個(gè)想法可能與網(wǎng)站的盈利相悖,因?yàn)槿绻峁?/span>h2p鏈接,很多人將會(huì)之點(diǎn)擊h2p鏈接,這樣,就避開了網(wǎng)站投放的廣告。

          2)第二種可能的展望就是,各網(wǎng)站提供一個(gè)webservice的編程接口,通過該編程接口,用程序訪問每篇博客文章,這樣得到的文章就是沒有廣告的干凈的文章。

          這兩種展望的目的主要是為了生成干凈的pdf文檔,顯然,要實(shí)現(xiàn)這兩個(gè)展望是很困難的,除非大家都很接受h2p這個(gè)思路,并且對(duì)這種應(yīng)用很迫切,才會(huì)有人來大力推動(dòng)。想想rss的普及,那也是一波三折,最終還是因?yàn)槠浔憬莸氖褂媚J蕉淮蠹宜邮堋?/span>

          私下里是希望大家能接受并喜歡h2p的。

          posted @ 2009-07-29 14:43 summeryhrb 閱讀(1435) | 評(píng)論 (2)編輯 收藏


          2009年7月24日

               摘要: 本文就是要闡述一種根據(jù)批量URL生成有書簽的PDF文檔的解決方案,這個(gè)批量URL就是一些好的文章的URL,根據(jù)這些URL生成一個(gè)合并的PDF文檔,并且要有書簽(也就是左邊的樹形菜單),而且必須要有書簽.  閱讀全文

          posted @ 2009-07-24 17:08 summeryhrb 閱讀(1601) | 評(píng)論 (3)編輯 收藏


          僅列出標(biāo)題  

          posts - 10, comments - 28, trackbacks - 0, articles - 0

          Copyright © summeryhrb

          主站蜘蛛池模板: 平原县| 禹州市| 绥芬河市| 榆树市| 鄂尔多斯市| 溧阳市| 米林县| 璧山县| 封丘县| 寻甸| 金山区| 焉耆| 龙山县| 海晏县| 东辽县| 邵武市| 锦州市| 武城县| 大足县| 界首市| 隆尧县| 玉屏| 图片| 泽库县| 新丰县| 霍州市| 大姚县| 衡山县| 金乡县| 宁陵县| 蛟河市| 五台县| 扎囊县| 南漳县| 靖宇县| 安吉县| 白朗县| 都兰县| 临城县| 云林县| 抚松县|