<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
    ??? 應(yīng)用web化,不論對(duì)開發(fā)商,還是對(duì)用戶來說,實(shí)在是一種很經(jīng)濟(jì)的選擇,因?yàn)榛趙eb的應(yīng)用,客戶端的規(guī)則很簡單,容易學(xué)習(xí),容易維護(hù),容易發(fā)布。但對(duì)程序員來說,因?yàn)闉g覽器的局限性,卻要面對(duì)很多挑戰(zhàn)。怎么樣來進(jìn)行基于web的套打,就是這么一個(gè)令多數(shù)程序員頭痛不已的問題。

      基于web的套打,難度在于要將瀏覽器中呈現(xiàn)的html,精確地打印到票據(jù)中,而且能夠?qū)崿F(xiàn)對(duì)分頁位置的控制。下面就ie瀏覽器所能采用的套打解決方案,來個(gè)匯總分析,希望對(duì)大家有所幫助。

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

      這種方案的優(yōu)勢(shì)是不需要對(duì)瀏覽器作任何擴(kuò)充,是最簡單的辦法,但問題也最多,如:

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

      不能準(zhǔn)確對(duì)齊邊邊距及打印文字。

      不能解決連續(xù)打印。比如,不是僅打印一張票據(jù),而是連續(xù)一次打印若干個(gè)票據(jù)。

      二、使用webbrowser控件+ javascript

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

      三 、使用print css

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

      四 、使用PDF文件

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

      五 、采用純ActiveX

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

      六 、采用Applet方式

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

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

      打印報(bào)表時(shí),需要重新向服務(wù)器檢索數(shù)據(jù),效率低。因?yàn)锳pplet方案,一般采用html方式呈現(xiàn)數(shù)據(jù),打印時(shí)Applet必須向服務(wù)器檢索同一張票據(jù)的數(shù)據(jù),看上去,是打印了當(dāng)前頁的票據(jù),實(shí)際上,Applet根本不會(huì)用當(dāng)前html頁的數(shù)據(jù)來打印,而是向服務(wù)器下載數(shù)據(jù)到Applet中來打印。也就是說,打印的話,必須兩次請(qǐng)求,一次html呈現(xiàn),一次用來打印。

      不能解決連續(xù)打印。比如,不是僅打印一張票據(jù),而是連續(xù)一次打印若干個(gè)票據(jù)。

      不能解決打印機(jī)設(shè)置問題,如存在多臺(tái)打印機(jī)時(shí),總是需要手工選擇,打印到哪一臺(tái)打印機(jī)。

      市場上java類的報(bào)表工具,一般推薦Applet方式來實(shí)現(xiàn)打印。

      七 、輕量級(jí)的ActiveX打印方式

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

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

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

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

    導(dǎo)航

    統(tǒng)計(jì)

    公告

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

    常用鏈接

    留言簿(3)

    隨筆分類

    隨筆檔案

    文章分類

    相冊(cè)

    收藏夾

    Java Website

    java技術(shù)博客

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 亚洲爱情岛论坛永久| 中文字幕亚洲不卡在线亚瑟| 国产产在线精品亚洲AAVV| 日本亚洲成高清一区二区三区 | 久久亚洲国产伦理| 国产免费131美女视频| 男人j进入女人j内部免费网站| 久久久久亚洲精品无码网址色欲 | 最近中文字幕无免费| 三年片在线观看免费| 男女一进一出抽搐免费视频| 亚洲精品欧美综合四区| 亚洲 暴爽 AV人人爽日日碰| 亚洲毛片基地日韩毛片基地| 亚洲AV日韩精品久久久久久 | 久久久精品视频免费观看| 免费国产在线精品一区| 国产午夜亚洲精品不卡| 亚洲国产精品成人综合色在线| 亚洲狠狠色丁香婷婷综合| 亚洲日本成本人观看| 免费人成网站永久| 国产亚洲精品免费视频播放| 国产午夜免费高清久久影院| 最近2019中文免费字幕在线观看| 久久国产免费一区二区三区| 精品一区二区三区无码免费视频| 国产免费的野战视频| 免费jjzz在线播放国产| 国产亚洲美女精品久久久久狼| 亚洲综合在线视频| 亚洲欧美日韩中文二区| 一级做a爰片久久毛片免费陪| 无码av免费网站| 日本成人在线免费观看| 亚洲精品无码不卡在线播放HE| 亚洲国产女人aaa毛片在线| 亚洲精品无码日韩国产不卡av| 五月天国产成人AV免费观看| 久久A级毛片免费观看| 亚洲Av无码乱码在线播放|