做web项目时,碰到打印算是比较头疼的事。因项目特点而异,我们可能会采取不同的方式进行。现在我总结一下不同的打印方法:

一. 利用IE浏览器直接打印
 
1)打印web页面的所有元素
     
    这是最简单的一种打印,直接调用window.print()即可。代码如下:    

1<button onclick="javascript:window.print();"></button>
2)分页打印

    在做web分页打印时,我们可以使用css样式表进行控制。css中有个叫page-break-after的属性。page-break-after的说明如下:

 1page-break-after版本:CSS2   兼容性:IE4+ 继承性:无  
 2语法:page-break-after  :  auto    ¦  always    ¦  avoid    ¦  left    ¦  right    ¦  null    
 3参数:    
 4auto  :   假如需要在对象之后插入页分割符    
 5always  :   始终在对象之后插入页分割符    
 6avoid  :   避免在对象后面插入页分割符    
 7left  :   在对象后面插入页分割符直到它到达一个空白的左页边    
 8right  :   在对象后面插入页分割符直到它到达一个空白的右页边    
 9null  :   空值。IE5用来取消页分割符设置    
10    
    以下是demo的源代码:
    这是default2.aspx文件,这里要注意的是第7行有这段话:
    <style>
    .pagebreak { page-break-after: always }
    </style>
 1<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
 2
 3<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 4<html xmlns="http://www.w3.org/1999/xhtml">
 5<head runat="server">
 6    <title>Untitled Page</title>
 7    <style>
 8    .pagebreak {}{ page-break-after: always }
 9    </style>
10</head>
11<body>
12    <form id="form1" runat="server">
13        <div>
14            <table id="TABLE1" runat="server" border="1">
15                <tr>
16                    <td style="width: 100px">
17                    </td>
18                    <td style="width: 100px">
19                    </td>
20                    <td style="width: 100px">
21                    </td>
22                </tr>
23            </table>
24            <button onclick="javascript:window.print();">打 印</button>
25         
26        </div>
27    </form>
28</body>
29</html>
30
    
下面是Default2.aspx.cs文件,要注意第43行的设置。

 1using System;
 2using System.Data;
 3using System.Configuration;
 4using System.Collections;
 5using System.Web;
 6using System.Web.Security;
 7using System.Web.UI;
 8using System.Web.UI.WebControls;
 9using System.Web.UI.WebControls.WebParts;
10using System.Web.UI.HtmlControls;
11using System.Data.SqlClient;
12
13public partial class Default2 : System.Web.UI.Page
14{
15    protected void Page_Load(object sender, EventArgs e)
16    {
17        if (!IsPostBack)
18        {
19            int pageSize = 5; //每页显示元素个数
20            int i = 1;
21
22            SqlConnection conn = new SqlConnection("data source=localhost;uid=sa;pwd=;initial catalog=northwind");
23            conn.Open();
24            SqlDataAdapter adapter = new SqlDataAdapter("select customerid,city,postalcode from customers", conn);
25            DataSet ds = new DataSet();
26            adapter.Fill(ds);
27            
28            foreach (DataRow dr in ds.Tables[0].Rows)
29            {
30                i++;
31                HtmlTableRow tr = new HtmlTableRow();
32                HtmlTableCell cell1 = new HtmlTableCell();
33                cell1.InnerHtml = Convert.ToString(dr[0]);
34                HtmlTableCell cell2 = new HtmlTableCell();
35                cell2.InnerHtml = Convert.ToString(dr[1]);
36                HtmlTableCell cell3 = new HtmlTableCell();
37                cell3.InnerHtml = Convert.ToString(dr[2]);
38                tr.Cells.Add(cell1);
39                tr.Cells.Add(cell2);
40                tr.Cells.Add(cell3);
41                if ((i - pageSize) % pageSize == 1)
42                {
43                    tr.Attributes["class"]="pagebreak"; //设置打印标签
44                }
45                this.TABLE1.Rows.Add(tr);
46                
47            }
48<img src="/Images/OutliningIndicators/ExpandedSubBl% 

转载于:https://www.cnblogs.com/gjahead/archive/2006/08/04/467978.html

利用IE浏览器进行web打印相关推荐

  1. 兼容所有浏览器的Web打印控件的设计方案

    兼容所有浏览器的Web打印控件的设计方案 设计方案的简单实现网址:http://www.lc-simple.com/PrintTest/ 第一章:Web打印控件的原理 Web打印控件的工作的原理如下: ...

  2. 利用WebBrowser彻底解决Web打印问题

    原文地址为: 利用WebBrowser彻底解决Web打印问题 利用WebBrowser彻底解决Web打印问题(包括后台打印) BS架构下的打印大家是怎么解决的呢,我最近作了一个项目正好负责这一块,不仅 ...

  3. 网页浏览器的Web打印插件开发指南

    [能加加]网页打印插件是一款面向网页浏览器的Web打印代理软件,支持跨平台(Windows/Linux/MacOS).适配各种浏览器.插件提供了精简灵活的API,浏览器与代理软件的交互均通过Javas ...

  4. 利用XML实现通用WEB报表打印(转载)

    原文地址: http://www.microsoft.com/china/community/Column/65.mspx 利用XML实现通用WEB报表打印 卢彦 方案适用性 . 1. 远程数据打印. ...

  5. 利用XML实现通用WEB报表打印 卢彦

    利用XML实现通用WEB报表打印(1) 卢彦 摘要 开发B/S结构的应用程序最头疼的问题可能就是报表打印了,由于只能采用浏览器来作为用户界面进行交互,所以不能精确控制客户端的打印机.而很多B/S结构的 ...

  6. 利用WebBrowser实现Web打印的分析

    利用WebBrowser实现Web打印的分析 原文:利用WebBrowser实现Web打印的分析 WebBrowser是IE内置的浏览器控件,无需用户下载.本文档所讨论的是有关IE6.0版本的WebB ...

  7. 利用XML实现通用WEB报表打印(参考)

    原文地址: http://www.microsoft.com/china/community/Column/65.mspx 利用XML实现通用WEB报表打印 卢彦 方案适用性 . 1. 远程数据打印. ...

  8. html打印不弹出对话框,在C#带或不带Web浏览器控制和打印对话框打印的HTML

    在C#带或不带Web浏览器控制和打印对话框打印的HTML 简介 .NET平台的Web浏览器控制的印刷也不是很难的工作.但对我的挑战是导航到某个特定的URL,然后打印一个单一的点击事件文件.我不得不面对 ...

  9. Progressive Web App是一个利用现代浏览器的能力来达到类似APP的用户体验的技术——不就是chrome OS吗?...

    什么是Progressive Web App? Progressive Web App是一个利用现代浏览器的能力来达到类似APP的用户体验的技术,由Google实现,让浏览器打开的网址像APP一样运行 ...

最新文章

  1. 在看不见的地方,AI正在7×24为你在线服务
  2. Kubernetes — Overview
  3. oracle11g中SQL优化(SQL TUNING)新特性之Adaptive Cursor Sharing (ACS)
  4. 【算法】非极大值抑制原理、流程和代码
  5. Ilya Muromets(DP or 思维)
  6. 把chord下dbm_noauth做成静态库,提供接口
  7. Centos5上部署udev
  8. 如果你用GitHub,可以这样提高效率
  9. 【评论送书】适合初学者的 6 个有趣的 R 语言项目
  10. 高频电子线路复习笔记(2)——高频电路基础
  11. 标签打印软件如何制作箭头样式
  12. 【毕业设计】深度学习指纹识别算法研究与实现 - python opencv
  13. 异步bus交互(一)— 两级DFF同步器
  14. 工商管理专业的毕业论文怎么选题?
  15. sqlserver中查询(升序、降序、top、百分比)
  16. 7-39 龟兔赛跑 (20 分) 乌龟与兔子进行赛跑,跑场是一个矩型跑道,跑道边可以随地进行休息。T分钟后乌龟和兔子谁跑得快?PTA:中M2021春C、Java入门练习第I段—变量、表达式、分支、循环
  17. php gd表情包,gd表情包
  18. C++之char , signed char , unsigned char(转)
  19. GUI(图形用户界面)——AWT概述、布局管理器
  20. 婚姻介绍所怎么做身份实名认证?

热门文章

  1. Silverlight 模拟Nano5 界面效果
  2. 使用WITH AS提高性能简化嵌套SQL
  3. Core Data的使用(二)备
  4. 图片加载库Glide
  5. SQL Server数据库的导出
  6. Mathpix图片转LaTeX,Word快速插入LaTeX公式教程
  7. 搜狗浏览器收藏夹在哪_chrome谷歌浏览器收藏夹在哪_chrome收藏夹在电脑什么位置...
  8. mybatis 级联查询兑现_MyBatis之自查询使用递归实现 N级联动效果(两种实现方式)...
  9. MySQL之数据库多表查询
  10. Python 测试驱动开发读书笔记(三)使用单元测试测试简单的首页