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

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

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

    基于Web的打印方案比較分析

    http://tech.ddvip.com/2009-03/1237875967112100.html
    ??? 應用web化,不論對開發商,還是對用戶來說,實在是一種很經濟的選擇,因為基于web的應用,客戶端的規則很簡單,容易學習,容易維護,容易發布。但對程序員來說,因為瀏覽器的局限性,卻要面對很多挑戰。怎么樣來進行基于web的套打,就是這么一個令多數程序員頭痛不已的問題。

      基于web的套打,難度在于要將瀏覽器中呈現的html,精確地打印到票據中,而且能夠實現對分頁位置的控制。下面就ie瀏覽器所能采用的套打解決方案,來個匯總分析,希望對大家有所幫助。

      一、瀏覽器的打印功能菜單

      這種方案的優勢是不需要對瀏覽器作任何擴充,是最簡單的辦法,但問題也最多,如:

      不能精確分頁。瀏覽器一般是根據用戶設置的頁面大小,web頁面的內容多少,來自行決定分頁位置,程序員很難控制。會有頁腳頁眉干擾。

      不能準確對齊邊邊距及打印文字。

      不能解決連續打印。比如,不是僅打印一張票據,而是連續一次打印若干個票據。

      二、使用webbrowser控件+ javascript

      這實際上,是瀏覽器打印功能菜單的一種程序調用,與打印功能菜單沒什么兩樣。分頁的問題仍然存在,只不過,可以讓用戶不用去點菜單,直接在網頁中的一個按鈕,或一個鏈接里面調用罷了。

      三 、使用print css

      這是一種最理想的實現web套打的方法。這種方法通過在html文檔中,嵌入打印相關的css樣式,來實現對html文檔輸出打印的控制,比如設置紙張大小,紙張縱橫方向,打印邊距,分頁等。顯而易見,這種方式成本小,不需要下載任何插件,而且跨平臺性非常好。print css推出已經有些時日,但遺憾的是,至今沒有一個廠商的瀏覽器很好地實現了這些標準,這使得程序員目前還不能利用print css進行實際的開發。關于打印css,參見http://css-discuss.incutio.com/?page=PrintStylesheets

      四 、使用PDF文件

      用這種方式,就是從服務器端下載一個pdf文件流,在IE中用adobe插件打開,然后用adobe的打印菜單進行打印,雖然這種方案,也能實現精確套打,但需要下載adobe插件。這是國外報表工具經常推薦的一種打印方法,但在pdf不那么普及的中國,這種方案不是最好選擇。

      五 、采用純ActiveX

      這種方案就是下載一個控件,票據的數據不再以html方式呈現,而是呈現在ActiveX中。這種方案的優點是打印的精確度高,分頁的可控性好,但缺點也是很明顯的,嵌入ActiveX控件破壞了web應用的整體html風格,且這樣的控件比較大(一般超過1M),下載頗費時間)。市場上的非java類報表產品,一般都采用這種方案。

      六 、采用Applet方式

      采用Applet方式,分頁或精確打印,都可以做到完美,但缺點也很明顯,表現在:

      安裝Applet成本巨大。需要下載十幾M的文件。

      打印報表時,需要重新向服務器檢索數據,效率低。因為Applet方案,一般采用html方式呈現數據,打印時Applet必須向服務器檢索同一張票據的數據,看上去,是打印了當前頁的票據,實際上,Applet根本不會用當前html頁的數據來打印,而是向服務器下載數據到Applet中來打印。也就是說,打印的話,必須兩次請求,一次html呈現,一次用來打印。

      不能解決連續打印。比如,不是僅打印一張票據,而是連續一次打印若干個票據。

      不能解決打印機設置問題,如存在多臺打印機時,總是需要手工選擇,打印到哪一臺打印機。

      市場上java類的報表工具,一般推薦Applet方式來實現打印。

      七 、輕量級的ActiveX打印方式

      目前用的較多的有國外的ScriptX,國內的有jatoolsPrinter。他們可以通過web腳本來選擇輸出打印機,紙張大小,打印方向等,不必每次手工設定。

      對于簡單的打印,我們用IE的功能就可以了,對于需要復雜的設置的,建議使用輕量級的ActiveX打印方式。在接下來的系列教程里,我們會一一介紹。

    posted on 2009-04-23 11:58 luofeng225 閱讀(198) 評論(0)  編輯  收藏 所屬分類: 未分類

    <2009年4月>
    2930311234
    567891011
    12131415161718
    19202122232425
    262728293012
    3456789

    導航

    統計

    公告

    我曾經聽到這么一個故事: 一個年輕的程序員問一個老程序員(一個比較牛逼的公司的CTO) 年輕程序員: 你為什么這么牛X., 就好像沒有你不會的。老程序員: 積累的。年輕程序員: 怎么才能積累到您的程度呢。我每天都在積累。但是似乎都沒有感覺到進步。老程序員: 我從20歲開始做到了一件事情,直到今天,而且盡可能地保證不間斷。年輕程序員: 到底是什么? 老程序員: 我每天保證自己有2個小時在學習新的東西。

    常用鏈接

    留言簿(3)

    隨筆分類

    隨筆檔案

    文章分類

    相冊

    收藏夾

    Java Website

    java技術博客

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 91精品国产免费久久国语麻豆| 一级毛片a免费播放王色| 久久国产精品免费| 国产精品亚洲片在线| 亚洲成人免费在线| 亚洲成人免费网址| 国产免费观看网站| 久久综合国产乱子伦精品免费| 亚洲另类古典武侠| 亚洲日韩在线中文字幕第一页| 91成人免费观看在线观看| 亚洲视频在线免费播放| 四虎永久免费影院| 四虎影在线永久免费四虎地址8848aa| 色窝窝免费一区二区三区| 国产成人久久精品亚洲小说| 亚洲VA成无码人在线观看天堂| 成人免费午夜在线观看| 中国人免费观看高清在线观看二区 | 青青草无码免费一二三区| 91免费福利视频| 30岁的女人韩剧免费观看| 亚洲男人天堂影院| 中文字幕精品亚洲无线码二区| 日韩免费一区二区三区在线| a级片免费在线播放| 黄色片免费在线观看| 国产99久久久久久免费看| 亚洲av无码片vr一区二区三区| 亚洲国产日产无码精品| 最新亚洲春色Av无码专区| 亚洲首页国产精品丝袜| 99久久亚洲综合精品成人网| 国产亚洲精品免费视频播放| 亚洲成av人在片观看| 亚洲成a人片在线观看久| 亚洲精品视频观看| 免费观看四虎精品成人| 九九热久久免费视频| 成人免费在线看片| 午夜寂寞在线一级观看免费|