做web開發的人員一定都會面臨乙個共同的難題,那就是列印。的確,相對於windows桌面應用程式來講,web應用程式的列印有種種限制,技術人員在專案開發過程中經常會遇到使用者這樣或那樣的需求. 做過桌面應用開發的人都會非常熟悉水晶報表、active report之類的報表控制項,它們不僅有簡單靈活的設計介面,更具有非常強大的報表功能,能滿足各種報表的列印需求。而web應用則因為其特殊的呈現方式,只能尋求其他的解決方案。現在我們來分析一下目前已經成形的web列印方案:
現有的web列印控制技術分成幾種方案:
程式頭'首先宣告**容器
protected withevents phcontainer as system.web.ui.webcontrols.placeholder
'每個**中的記錄數量
private const itempertable as integer = 20
關鍵的實現部分
'建立乙個符合列印要求的**
tabpageprint = newprinttable()
'將表頭新增到此**中
call addtabletitle(tabpageprint)
'初始化記錄器
i = 0
iitemindex = istartpoint
for each clsitem in clsalldata.errorcollection
if i > 0 and i mod itempertable = 0 then
'新增**控制項到頁面中
phcontainer.controls.add(tabpageprint)
'在頁面中新增乙個換行符
call addpagebreak()
'建立新一輪的**
tabpageprint = newprinttable()
call addtabletitle(tabpageprint)
end if
'將記錄新增到**中
call additemtotable(iitemindex, tabpageprint, clsitem)
iitemindex = iitemindex + 1
i = i + 1
next
'新增**控制項到頁面中
phcontainer.controls.add(tabpageprint)
支援函式
'功能:新增頁的換行符
private sub addpagebreak()
dim ltbreak as literalcontrol
ltbreak = new literalcontrol("")
phcontainer.controls.add(ltbreak)
end sub
二、利用ie自身列印
這種方式比較簡單,也常用的列印方式,只需要將報表頁面設計好,使用者通過ie選單中的列印功能完成列印。優點是簡單,容易實現,缺點是不靈活,不能控制分頁,不能控制好頁首和頁尾。
三、將報表匯出成word,excel或pdf形式列印
這種方式需要將頁面匯出成office文件或pdf,最低的要求是客戶端已經安裝用以開啟word、excel或pdf文件的軟體。這種方式可以通過水晶報表元件或其他一些第三方控制項非常容易地實現。匯出成pdf形式後列印質量和效果都很好,匯出成word或excel後使用者可以自定義列印的內容和格式。
總之,現有的列印方案各有所長,在開發過程中應根據使用者的需求作選擇,利用ie列印簡單,容易實現,在使用者需求簡單或列印內容較少的情況下採用此方案比較適宜。利用自定義控制項列印可以實現完全自定義,但需要較高的技術要求和開發周期。利用匯出的方式則可以滿足使用者需要一點自定義或列印內容有多頁的需求。
先給乙個簡單實用的方式(可以列印多頁,控制分頁,隱藏非列印專案)
第1頁
這樣的報表
對一般的要求就夠了。
第2頁看到分頁了吧
這樣的報表
對一般的要求就夠了。
簡單懂得 html css 即可。
下面樣式只在列印時有用
webbrowser 控制項物件。只要是 win98 以上版本都有。
其實配合「分頁樣式表」,和 html** 一般的列印都可以實現的。
如果想對 非windows平台使用者使用。
請去掉下面這些:
分頁是由 css中的 page-break-after的always屬性實現的
always就是在物件後設定乙個分頁符。
//也許有些地方大家不太明白我解釋一下其實很簡單
。。。。。。。。。。。。。。。。。。
.......
。。。。。。。。。。。。。。。。。。
WEB 列印的相關技術分析
web 列印的相關技術分析 程式頭 首先宣告 容器 protected withevents phcontainer as system.web.ui.webcontrols.placeholder 每個 中的記錄數量 private const itempertable as integer 20...
《WEB 列印的相關技術分析》
程式頭 首先宣告 容器 protected withevents phcontainer as system.web.ui.webcontrols.placeholder 每個 中的記錄數量 private const itempertable as integer 20 關鍵的實現部分 建立乙個符...
WEB 列印的相關技術分析
程式頭 首先宣告 容器 protected withevents phcontainer as system.web.ui.webcontrols.placeholder 每個 中的記錄數量 private const itempertable as integer 20 關鍵的實現部分 建立乙個符...