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

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

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

    一、緣起

    看到一篇好文章、一篇精彩的博文,我們最早期的做法有兩種,添加到收藏夾,或者另存為,后來出現(xiàn)了新的方式,轉(zhuǎn)貼到自己的博客里、或者收藏到一些收藏網(wǎng)站上(比如360doc)。近來又出現(xiàn)了生成PDF文檔的方式,比如某些網(wǎng)站,你提交一個url,就為你生成對應(yīng)的pdfjavaeye的電子書制作也很不錯,甚至可以預(yù)測一下,瀏覽器的“另存為”窗口里有可能會有一個*.pdf選項(xiàng)。因?yàn)?span style="font-family: Calibri">pdf實(shí)在是太好了,小巧而有表現(xiàn)力豐富。盡管如此,如果有多篇好的文章呢,比如一個非常優(yōu)秀的連載(比如牛人寫的教程、開發(fā)心得),我們能做的也就是添加到收藏夾或添加到自己博客的鏈接里頭。想當(dāng)年,沒錢買書的時(shí)候,就在網(wǎng)上找一些教程來看,做得比較好的會有一個頁面列出該連載的所有連接,這種情況我通常用迅雷以下載全部鏈接的方式(再去掉不相關(guān)的鏈接)批量下載下來,做的簡單的只提供一個類似于上一篇下一篇的鏈接,這種情形到現(xiàn)在還是這樣。(易用性啊,這個問題可大可小,往大的說,關(guān)系到應(yīng)用模式和商業(yè)模式,往小的說也許就是個美觀和方便。Javaei提供的快捷閱讀采取左邊樹形菜單展示目錄,右邊展示內(nèi)容的形式,這種形式在界面的設(shè)計(jì)上屢試不爽。)

    本文就是要闡述一種根據(jù)批量URL生成有書簽的PDF文檔的解決方案,這個批量URL就是一些好的文章的URL,根據(jù)這些URL生成一個合并的PDF文檔,并且要有書簽(也就是左邊的樹形菜單),而且必須要有書簽。《java與模式》這本書想必很多人都看過,老厚的一本書啊,我沒錢買,看的是一個下載的pdf,這個pdf給我的印象太壞了,沒有書簽,要找個東西只能拉滾動條,盡管如此,我還是看完了,書寫的不錯,制作pdf的那個人功過相抵。

    二、思路

    目的是要根據(jù)批量URL生成有書簽的PDF文檔,實(shí)現(xiàn)這個目的分兩步走:先解決根據(jù)一個URL生成一個PDF文檔,再解決多個PDF合并并生成書簽的問題。

    1)根據(jù)一個URL生成一個PDF文檔

    根據(jù)一個URL生成一個PDF文檔看似很容易,因?yàn)槲覀冇?span style="font-family: Calibri">iText,pdfbox這些開源框架,實(shí)則不簡單,因?yàn)橐WC生成的pdf文檔打開后的效果要和瀏覽器里的要一樣,這無異于做一個瀏覽器,目前的瀏覽器尚且存在兼容的問題,所以自己寫一個根據(jù)html生成pdf的想法很難實(shí)現(xiàn)。那么另一個思路就是利用一些網(wǎng)站來實(shí)現(xiàn)這個目的,經(jīng)過嘗試,有些網(wǎng)站是需要提供URLemail,人家把生成好的pdf發(fā)到你郵箱,這種形式無法通過代碼來訪問,也就無法批量處理;有些網(wǎng)站只需提交url,就把生成的pdf響應(yīng)給客戶端,這種形式可以通過程序來批量處理,但是生成的pdf與瀏覽器里的效果相差太遠(yuǎn);還有一些網(wǎng)站根本就不支持中文。通過探索,終于找到一個網(wǎng)站提供的C#做的dll可以達(dá)到這個要求,利用這個dll,寫個簡單的C#程序就可以批量的生成pdf了,而且效果相當(dāng)完美,美中不足的是生成的pdf里有人家的水印。

    2)多個PDF合并并生成書簽

    多個PDF合并并生成書簽可以輕松的用iText搞定,合并是有一定的順序的,并且書簽是樹形結(jié)構(gòu)的,因此合并的順序,書簽的層次結(jié)構(gòu)是需要事先確定好的。所以對批量的URL要進(jìn)行一定的描述,那么很自然的選擇xml

    三、實(shí)現(xiàn)

    我現(xiàn)在越來越覺得,只要不是基礎(chǔ)設(shè)施的東西,技術(shù)上都很簡單,關(guān)鍵是你有沒有想法。這個實(shí)現(xiàn)先從xml描述開始。

    Xml描述分兩步,先簡單的描述一批URL(這里叫做href.h2p.xml),再來描述層次關(guān)系(這里叫做outline.h2p.xml)。h2p就是html to pdf的意思

             先看href.h2p.xml

    <href-info>

             <href id="KxgYaRxG">

                       <value><![CDATA[http;//www.163.com]]></value>

             </href>

             <href id="53Bw5A32">

                       <value><![CDATA[http://www.sohu.com]]></value>

             </href>

             <href id="eyEis6ra">

                       <value><![CDATA[http;//news.163.com]]></value>

             </href>

             <href id="DMQoSN2t">

                       <value><![CDATA[http;//sports.163.com]]></value>

             </href>

             <href id="5vaf3LN7">

                       <value><![CDATA[http://news.sohu.com]]></value>

             </href>

    </href-info>

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

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

    outline.h2p.xml內(nèi)容如下:

    <book name="我的PDF">

             <chapter name="163" href="KxgYaRxG">

                       <chapter name="163新聞" href="eyEis6ra" />

                       <chapter name="163體育" href="DMQoSN2t" />

             </chapter>

             <chapter name="sohu" href="53Bw5A32">

                       <chapter name="sohu新聞" href="5vaf3LN7" />

             </chapter>

    </book>

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

    我把這兩個xml文件稱為h2p文件。

    四、h2p文件

    行文到這里,這個解決方案就算結(jié)束了,俗話說,巧婦難為無米之炊,首先我們要有上面說的這兩個xml文件,這兩個xml文件如果靠手工編輯的話,少量的URL還行,如果多了就不方便了。所以應(yīng)該有一個工具來編輯h2p文件。完整的解決方案請點(diǎn)擊這里

    Feedback

    # re: 根據(jù)批量URL生成有書簽的PDF文檔的解決方案  回復(fù)  更多評論   

    2009-07-25 11:55 by ducklyl
    兄弟給你一文章,
    是用軟件轉(zhuǎn)HTML TO PDF
    http://www.tkk7.com/ducklyl/archive/2009/07/09/286158.html

    還有就是生成完P(guān)DF,合并的問題,
    用開源的軟件
    http://www.tkk7.com/ducklyl/archive/2009/07/09/286160.html

    # re: 根據(jù)批量URL生成有書簽的PDF文檔的解決方案  回復(fù)  更多評論   

    2009-07-25 16:21 by 樂蜂網(wǎng)
    不錯啊!

    # re: 根據(jù)批量URL生成有書簽的PDF文檔的解決方案[未登錄]  回復(fù)  更多評論   

    2009-07-25 18:52 by summeryhrb
    @ducklyl
    謝謝你的推薦,不過你的解決辦法跟我是不同的思路,在應(yīng)用上我這個有更好的持續(xù)效應(yīng),那就是h2p文件將成為一種資源。

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


    網(wǎng)站導(dǎo)航:
     

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

    Copyright © summeryhrb

    主站蜘蛛池模板: 亚洲最新黄色网址| 亚洲精品成人片在线观看精品字幕 | 亚洲一区精品中文字幕| 亚洲成在人线中文字幕| 亚洲日本一线产区和二线 | 久久永久免费人妻精品| 69av免费视频| 成人毛片免费观看视频大全| 国产免费人人看大香伊| 亚洲一本大道无码av天堂| 亚洲精品国精品久久99热一| 亚洲综合在线视频| 国产精品亚洲四区在线观看| 国产区图片区小说区亚洲区| 久久久久久久久久免免费精品| 91禁漫免费进入| 免费黄色一级毛片| 亚洲熟女乱综合一区二区 | 久久久青草青青国产亚洲免观| 亚洲免费在线视频| 亚洲国产av玩弄放荡人妇| 中文字幕久无码免费久久| 精品免费人成视频app| 日韩亚洲国产综合久久久| 美女视频黄频a免费大全视频| 国产在线播放线91免费| 免费a级毛片无码a∨蜜芽试看| 亚洲欧洲精品成人久久奇米网| 亚洲综合网美国十次| 美女被羞羞网站免费下载| 最近2019年免费中文字幕高清| 免费久久精品国产片香蕉| 中文字幕亚洲综合久久2| 免费播放美女一级毛片| 亚洲高清视频免费| 亚洲视频在线免费| 亚洲色偷偷综合亚洲av78| 秋霞人成在线观看免费视频| 国产美女精品视频免费观看| 精品亚洲国产成AV人片传媒| 成人精品综合免费视频|