程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> 網頁打印,分頁,隱藏不打印內容的實現 代碼及教程

網頁打印,分頁,隱藏不打印內容的實現 代碼及教程

編輯:關於C#
 

本方法不分語言(ASP,ASP.NET,JSP,PHP..)可以生成HTML的語言都可以使用。

其實很簡單只要你略懂 HTML,CSS 即可,打印的出來的效果(那就要看你自己了)個人認為一般的打印完全可以應付。

先給一個簡單實用的方式(可以打印多頁,控制分頁,隱藏非打印項目)

<!--語言無關 保存成 .HTML 看看-->

<html>

<head>

<meta name=vs_targetSchema content="http://schemas.microsoft.com/intellisense/ie5">

<title>看看</title>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<!--media=print 這個屬性可以在打印時有效-->

<style media=print>

.Noprint{display:none;}

.PageNext{page-break-after: always;}

</style>

<style>

.tdp

{

border-bottom: 1 solid #000000;

border-left: 1 solid #000000;

border-right: 0 solid #ffffff;

border-top: 0 solid #ffffff;

}

.tabp

{

border-color: #000000 #000000 #000000 #000000;

border-style: solid;

border-top-width: 2px;

border-right-width: 2px;

border-bottom-width: 1px;

border-left-width: 1px;

}

.NOPRINT {

font-family: "宋體";

font-size: 9pt;

}

</style>

</head>

<body >

<center class="Noprint" >

<p>

<OBJECT id=WebBrowser classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 width=0>

</OBJECT>

<input type=button value=打印 onclick=document.all.WebBrowser.ExecWB(6,1)>

<input type=button value=直接打印 onclick=document.all.WebBrowser.ExecWB(6,6)>

<input type=button value=頁面設置 onclick=document.all.WebBrowser.ExecWB(8,1)>

</p>

<p> <input type=button value=打印預覽 onclick=document.all.WebBrowser.ExecWB(7,1)>

<br/>

</p>

<hr align="center" width="90%" size="1" noshade>

</center>

<table width="90%" border="0" align="center" cellpadding="2" cellspacing="0" class="tabp">

<tr>

<td colspan="3" class="tdp">第1頁</td>

</tr>

<tr>

<td width="29%" class="tdp">&nbsp;</td>

<td width="28%" class="tdp">&nbsp;</td>

<td width="43%" class="tdp">&nbsp;</td>

</tr>

<tr>

<td colspan="3" class="tdp">&nbsp;</td>

</tr>

<tr>

<td colspan="3" class="tdp"><table width="100%" border="0" cellspacing="0" cellpadding="0">

<tr>

<td width="50%" class="tdp"><p>這樣的報表</p>

<p>對一般的要求就夠了。</p></td>

<td>&nbsp;</td>

</tr>

</table></td>

</tr>

</table>

<hr align="center" width="90%" size="1" noshade class="NOPRINT" >

<!--分頁-->

<div class="PageNext"></div>

<table width="90%" border="0" align="center" cellpadding="2" cellspacing="0" class="tabp">

<tr>

<td class="tdp">第2頁</td>

</tr>

<tr>

<td class="tdp">看到分頁了吧</td>

</tr>

<tr>

<td class="tdp">&nbsp;</td>

</tr>

<tr>

<td class="tdp">&nbsp;</td>

</tr>

<tr>

<td class="tdp"><table width="100%" border="0" cellspacing="0" cellpadding="0">

<tr>

<td width="50%" class="tdp"><p>這樣的報表</p>

<p>對一般的要求就夠了。</p></td>

<td>&nbsp;</td>

</tr>

</table></td>

</tr>

</table>

</body>

</html>

簡單懂得 HTML CSS 即可。

下面樣式只在打印時有用 <style media=print>

<style media=print>

.Noprint{display:none;}

.PageNext{page-break-after: always;}

</style>

WebBrowser 控件對象。只要是 win98 以上版本都有。

其實配合“分頁樣式表”,和 HTML表格 一般的打印都可以實現的。

如果想對 非Windows平台用戶使用。

請去掉下面這些:

<center class="Noprint" >

<p>

<!--最主要是這個-->

<OBJECT id=WebBrowser classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 width=0>

</OBJECT>

<input type=button value=打印 onclick=document.all.WebBrowser.ExecWB(6,1)>

<input type=button value=直接打印 onclick=document.all.WebBrowser.ExecWB(6,6)>

<input type=button value=頁面設置 onclick=document.all.WebBrowser.ExecWB(8,1)>

</p>

<p> <input type=button value=打印預覽 onclick=document.all.WebBrowser.ExecWB(7,1)>

<br/>

</p>

<hr align="center" width="90%" size="1" noshade>

</center>

分頁是由 CSS中的 page-break-after的always屬性實現的

always就是在對象後設置一個分頁符。

//也許有些地方大家不太明白我解釋一下其實很簡單

。。。。。。。。。。。。。。。。。。

<!--media=print只有在打印中 有效-->

<style media=print>

<!--display:none 隱藏加上,上面的 media=print 就是在打印時隱藏-->

.Noprint{display:none;}

<!--分頁-->

.PageNext{page-break-after: always;}

</style>

.......

<!--網頁中分頁-->

<div class="PageNext"></div>

。。。。。。。。。。。。。。。。。。

================

《WEB 打印的相關技術分析》

文/謝康

  做Web開發的人員一定都會面臨一個共同的難題,那就是打印。的確,相對於Windows桌面應用程序來講,Web應用程序的打印有種種限制,技術人員在項目開發過程中經常會遇到用戶這樣或那樣的需求. 做過桌面應用開發的人都會非常熟悉水晶報表、Active Report之類的報表控件,它們不僅有簡單靈活的設計界面,更具有非常強大的報表功能,能滿足各種報表的打印需求。而Web應用則因為其特殊的呈現方式,只能尋求其他的解決方案。現在我們來分析一下目前已經成形的Web打印方案:

  現有的Web打印控制技術分成幾種方案:

  一.自定義控件完成打印

  利用IE 自帶的WebBrowser 控件實現打印

  利用第三方控件實現打印

  1、 自定義控件方式

  自定義控件方式就是利用VB 或VC 等工具生成COM 組件,用定義好的打印格式來分析打印源文件從而實現打印。只有將生成的組件下載並注冊到客戶機上,才能實現在客戶端的

打印。

  難點主要是定義打印格式、如何來分析打印源文件。現有的比較好的方法是利用XML 技術來全面的解決問題,利用XML 可以非常容易地定義打印目標的文本、表格等內容的格式。

但對程序員的開發要求高,難度比較大。

  2、利用WebBrowser 實現Web打印

  WebBrowser是IE 內置的浏覽器控件,無需用戶下載。本文檔所討論的是有關IE6.0 版本 的WebBrowser 控件技術內容。與其相關的技術要求有:打印文檔的生成、頁面設置、打印操作的實現等幾個環節。

  (一)、打印文檔的生成

  1、客戶端腳本方式

  客戶端腳本分為VBScript、JavaScript、JScript 幾種腳本語言。在IE 下開發應用使用的語法為JScript 的語法,由於它和JavaScript 幾乎沒有什麼區別,所以也可以稱其為JavaScript(下面簡寫為JS)。一般情況下,主要使用JS 來實現DOM 文檔的分析,DOM 為微軟提 出的一種Web文檔模型,主要用來實現Web腳本編程。

  利用JS 可以分析源頁面的內容,將欲打印的頁面元素提取出來,實現打印。通過分析源文檔的內容,可以生成打印目標文檔。

  優點:客戶端獨立完成打印目標文檔的生成,減輕服務器負荷;

  缺點:源文檔的分析操作復雜,並且源文檔中的打印內容要有約定;

  2、服務器端程序方式

  服務器端程序方式,主要是利用後台代碼從數據庫中讀取打印源,生成打印目標文檔。當的頁面生成時,還應適當考慮使用CSS 來實現強制分頁控制。

  優點:可以生成內容非常的豐富的打印目標文檔,目標文檔的內容的可控性強。由於打印 內容是從數據庫中獲取的,所以生成操作相對簡單;

  缺點:服務器端負載比較大;

  (二)、頁面設置

  頁面設置主要是指設置打印文檔的頁邊距、頁眉、頁腳、紙張等內容。頁面設置將直接影響到打印文檔版面的生成效果,所以它和打印文檔的生成有著密切的關系。比如:表格的

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved