Jsp页面中实现打印打印预览及打印设置
重点:
<OBJECT id=WebBrowser classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 width=0 VIEWASTEXT>
</OBJECT>
<input type=button value=打印 " class= "NOPRINT ">
<input type=button value=直接打印 " class= "NOPRINT ">
<input type=button value=页面设置 " class= "NOPRINT ">
<input type=button value=打印预览 " class= "NOPRINT ">
注意:
1、CSS对打印的控制:
<!--media=print 这个属性可以在打印时有效-->
<style media=print>
.Noprint{display:none;}
.PageNext{page-break-after: always;}
</style>
Noprint样式可以使页面上的打印按钮等不出现在打印页面上,这一点非常重要,因为它可以用最少的代码完成最需要的功能
PageNext样式可以设置分页,在需要分页的地方 就OK了,呵呵
2、表格线粗细的设置,更是通过样式表:
<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;
border-collapse:collapse;
}
</style>
或者:
<style>
.TdCs1 {
border:solid windowtext 1.0pt;
}
.TdCs2 {
border:solid windowtext 1.0pt; border-left:none;
}
.TdCs3 {
border-top:none;
border-left:solid windowtext 1.0pt;
border-bottom:solid windowtext 1.0pt;
border-right:solid windowtext 1.0pt;
}
.TdCs4 {
border-top:none;
border-left:none;
border-bottom:solid windowtext 1.0pt;
border-right:solid windowtext 1.0pt;
}
.underline {
border-top-style: none;
border-right-style: none;
border-bottom-style: solid;
border-left-style: none;
border-bottom-color: #000000;
}
</style>
1、控制 "纵打 "、 横打”和“页面的边距。
(1) [removed]
function SetPrintSettings() {
// -- advanced features
factory.printing.SetMarginMeasure(2) // measure margins in inches
factory.SetPageRange(false, 1, 3) // need pages from 1 to 3
factory.printing.printer = "HP DeskJet 870C "
factory.printing.copies = 2
factory.printing.collate = true
factory.printing.paperSize = "A4 "
factory.printing.paperSource = "Manual feed "
// -- basic features
factory.printing.header = "This is MeadCo "
factory.printing.footer = "Advanced Printing by ScriptX "
factory.printing.portrait = false
factory.printing.leftMargin = 1.0
factory.printing.topMargin = 1.0
factory.printing.rightMargin = 1.0
factory.printing.bottomMargin = 1.0
}
[removed]
jsp页面如何实现web打印
首先引入一个WebBrowser在需要打印的页面,可以直接添加:
复制代码 代码如下:
<object id="WebBrowser" classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height="0" width="0">
</object>
2 .页面设置和打印预览
如下所示,直接调用即可
复制代码 代码如下:
document.all.WebBrowser.ExecWB(6,6) 直接打印
document.all.WebBrowser.ExecWB(8,1) 页面设置
document.all.WebBrowser.ExecWB(7,1) 打印预览
3 隐藏不打印的页面元素和分页
CSS 有个Media 属性,可以分开设置打印和显示的格式。
如 <style media="print" type="text/css"> …</style> 中间的格式将只在打印时起作用,不会影响显示界面。
所以可以设定
<style media="print" type="text/css">
.Noprint{display:none;}
.PageNext{page-break-after: always;}
</style>
然后给不想打印的页面元素添加: class="Noprint" ,那就不会出现在打印和打印预览中了。
想分页的地方添加: <div class="PageNext"></div> 就可以了。
4.打印页面的特定部分
通过将需要打印的特定部分另建一个页面,然后装入主页面的一个IFrame中,再调用IFrame的打印方法,只打印IFrame中的内容实现的。
如:
<iframe visible" name="FrameId" width="100%" height="30%" src="NeedPrintedPage.asp"></iframe>
下面的pringFrame js函数将只打印Iframe中的内容,可以直接引用使用,如printFrame(FrameId);
复制代码 代码如下:
window.print = printFrame;
// main stuff
function printFrame(frame, onfinish) {
if ( !frame ) frame = window;
function execOnFinish() {
switch ( typeof(onfinish) ) {
case "string": execScript(onfinish); break;
java打印功能开发手册.pdf
3.表现类
Representation class
MIME 类型描述将要打印数据的类型,表现类则表示这些数据如何处理并交付打印服
务。DocFlavor 包含了七个静态的内部类,每一个对应一个表现类及不同的封装方法。
POI导入导出EXCEL文件.(struts 1.x and struts2.x).doc
web中使用POI导入导出EXCEL文件的例子
struts1.x的例子,struts2.x可以参考自己修改
1.action的写法
import java.io.*;
import java.sql.*;
import java.util.ArrayList;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.poi.hssf.usermodel.*;
import org.apache.struts.action.*;
import org.apache.struts.upload.FormFile;
import org.apache.commons.beanutils.BeanUtils;
public class Action {
/**//*
* 把数据库中的字段导入到Excel ,并生成Excel文档
**/
public ActionForward getDownload(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest request,
HttpServletResponse response) throws Exception {
Form fm = (Form) actionForm;
// Excel 文件存放在服务器的相对路径下
String outputFile = request.getRealPath("/tmp/Excel.xls");
try {
// 创建新的Excel 工作簿
HSSFWorkbook workbook = new HSSFWorkbook();
// 在Excel 工作簿中建一工作表
HSSFSheet sheet = workbook.createSheet("Sheet1");
// 设置单元格格式(文本)
HSSFCellStyle cellStyle = workbook.createCellStyle();
cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("@"));
// 在索引0的位置创建行(第一行)
HSSFRow row = sheet.createRow((short) 0);
HSSFCell cell1 = row.createCell((short) 0);// 第一列
HSSFCell cell2 = row.createCell((short) 1);
HSSFCell cell3 = row.createCell((short) 2);
// 定义单元格为字符串类型
cell1.setCellType(HSSFCell.CELL_TYPE_STRING);
cell2.setCellType(HSSFCell.CELL_TYPE_STRING);
cell3.setCellType(HSSFCell.CELL_TYPE_STRING);
cell1.setEncoding(HSSFCell.ENCODING_UTF_16);
cell2.setEncoding(HSSFCell.ENCODING_UTF_16);
cell3.setEncoding(HSSFCell.ENCODING_UTF_16);
// 在单元格中输入数据
cell1.setCellValue("姓名");
cell2.setCellValue("性别");
cell3.setCellValue("年龄");
Connection connection = session.connection();
String sql = "Select t.name, t.sex, t.age from table t where t.sex = ?";
try {
PreparedStatement ps = connection.prepareStatement(sql);
ps.setString(1, fm.getSex());// 传入查询条件
ResultSet rs = ps.executeQuery();// 查询结果存入rs
connection.commit();// 执行SQL
while (rs.next()) {
//设置j行从第二行开始
int j = 1;
row = sheet.createRow((short) j);
//设置i列从第二列开始
for (int i = 1; i <= 3; i++) {
HSSFCell cell = row.createCell((short) (i-1));
// 设置单元格格式
cell.setCellStyle(cellStyle);
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(rs.getString(i));
}
j++;
}
request.setAttribute("message", "文件生成成功!");
} catch (SQLException e) {
request.setAttribute("message", "创建文件失败!");
e.printStackTrace();
}
// 删除路径下同名的Excel 文件
File path = new File(outputFile);
path.delete();
// 新建一输出文件流
FileOutputStream fOut = new FileOutputStream(outputFile);
// 把相应的Excel 工作簿存盘
workbook.write(fOut);
// 操作结束,关闭文件
fOut.flush();
fOut.close();
//该处如果Excel过大会影响效率,谁有好的想法可以提出来参考(不过从页面下载完后就会清空)
request.getSession().setAttribute("Download", outputFile);
} catch (Exception ioexception) {
request.setAttribute("message", "创建文件失败!");
return actionMapping.findForward("outJSP");
}
return actionMapping.findForward("outJSP");
}
POI操作Excel常用方法总结.docx
POI简介
Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。
二、 HSSF概况
HSSF 是Horrible SpreadSheet Format的缩写,通过HSSF,你可以用纯Java代码来读取、写入、修改Excel文件。HSSF 为读取操作提供了两类API:usermodel和eventusermodel,即“用户模型”和“事件-用户模型”。
三、 POI EXCEL文档结构类
HSSFWorkbook excel文档对象
HSSFSheet excel的sheet HSSFRow excel的行
HSSFCell excel的单元格 HSSFFont excel字体
HSSFName 名称 HSSFDataFormat 日期格式
HSSFHeader sheet头
HSSFFooter sheet尾
HSSFCellStyle cell样式
HSSFDateUtil 日期
HSSFPrintSetup 打印
HSSFErrorConstants 错误信息表
四、 EXCEL常用操作方法
1、 得到Excel常用对象
view plaincopy to clipboardprint?
1. POIFSFileSystem fs=newPOIFSFileSystem(new FileInputStream("d:/test.xls"));
2. //得到Excel工作簿对象
3. HSSFWorkbook wb = new HSSFWorkbook(fs);
4. //得到Excel工作表对象
5. HSSFSheet sheet = wb.getSheetAt(0);
6. //得到Excel工作表的行
7. HSSFRow row = sheet.getRow(i);
8. //得到Excel工作表指定行的单元格
9. HSSFCell cell = row.getCell((short) j);
10. cellStyle = cell.getCellStyle();//得到单元格样式
2、建立Excel常用对象
ajaxAnywhere框架概念和使用.doc
AjaxAnywhere的类库及其用法
AjaxAnywhere使用一个名为aa.js的Javascript文件来处理客户端的全部Ajax操作,包括初始化XMLHttpRequest、获取表单内容、发送Ajax请求、执行回调函数等。aa.js也是使用AjaxAnywhere之前必须了解的,至少应该知道其经常用到的API。Ajax Anywhere的官方网站提供了相应的Javascript Document,方便快速查找和了解这些API。
1.AjaxAnywhere的初始化
aa.js中定义了一个AjaxAnywhere对象,针对Ajax的各种操作被抽象成AjaxAnywhere对象的方法,通过这些对象方法完成所需的操作。必要的时候,可以重载这些方法,以便满足个性化的需求。在aa.js文件的末端,AjaxAnywhere对象使用默认的构造方法完成对象实例化。
ajaxAnywhere = new AjaxAnywhere();
ajaxAnywhere.bindById();
所以,所有引用aa.js的页面都可以在Javascript代码段中使用AjaxAnywhere对象的实例ajaxAnywhere。
当AjaxAnywhere初始化的时候,它在默认的构造函数中完成XMLHttpRequest对象的创建,并保存在AjaxAnywhere对象属性req中。AjaxAnywhere对象默认的构造方法如例程11-23所示。
例程11-23 AjaxAnywhere对象的默认构造方法
function AjaxAnywhere() {
this.id = AjaxAnywhere.defaultInstanceName;//id,用于生成更新区域的编号等用途
this.formName = null;//页面表单名称
this.notSupported = false;//是否支持Ajax
this.delayBeforeContentUpdate = true;//在更新页面内容之前是否延迟
this.delayInMillis = 100;//延迟时间
//初始化XMLHttpRequest对象--req
if (window.XMLHttpRequest) {
this.req = new XMLHttpRequest();
} else if (window.ActiveXObject) {
try {
this.req = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
this.req = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e1) {
this.notSupported = true;
/* XMLHTTPRequest not supported */
}
}
}
//确定浏览器是否支持Ajax
if (this.req == null || typeof this.req == "undefined")
this.notSupported = true;
}
AjaxAnyWhere中文帮助文档.pdf
集成到自己的Web 应用程序中,可以通过以下5 个步骤来完成简单的配置。
第一步:下载最新的AjaxAnywhere 开发包或者二进制分发版本。
从AjaxAnywhere 官方网站下载最新的开发包,包括jar 包--ajaxanywhere-1.1.0.6.jar、js--aa.js 文件等。
第二步:获取必要的Javascript 文件。
从下载的开发包中获取Javascript 文件aa.js,放到Web 应用程序根目录中。
第三步:将下载下来的jar 包复制到/WEB-INF/lib 目录中。
第四步:修改web.xml,添加AAFilter 过滤器。
修改部署描述文件web.xml,在该文件中添加AAFilter 过滤器。映射部分的部署代码如例程11-22 所示。
例程11-22 web.xml 添加AAFilter 过滤器
<filter>
<filter-name>AjaxAnywhere</filter-name>
<filter-class>org.ajaxanywhere.AAFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>AjaxAnywhere</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>AjaxAnywhere</filter-name>
<url-pattern>*.do</url-pattern> <!-- default Struts mapping -->
</filter-mapping>
<filter-mapping>
<filter-name>AjaxAnywhere</filter-name>
<url-pattern>*.htm</url-pattern> <!-- other framewords mapping -->
</filter-mapping>
例程11-22 将Web 应用程序中的URL 以后缀.jsp,do,htm 结尾的请求全部有过滤器AAFilter 过滤。而在实
际项目中,可以根据项目实际需求来修改url-pattern 的值,定制要应用AjaxAnywhere 的请求类型,即只有特定
的请求才应用AjaxAnywhere 处理。
AjaxAnywhere 的类库及其用法
AjaxAnywhere 使用一个名为aa.js 的Javascript 文件来处理客户端的全部Ajax 操作,包括初始化
XMLHttpRequest、获取表单内容、发送Ajax 请求、执行回调函数等。aa.js 也是使用AjaxAnywhere 之前必须了
解的,至少应该知道其经常用到的API。Ajax Anywhere 的官方网站提供了相应的Javascript Document,方便快
速查找和了解这些API。
JSTL_标签库详解(一个不漏).doc
JSTL_标签库详解(一个不漏)
catch
动作用于捕获JSP元素在其体中抛出的异常。
示范代码:
${param.sampleSingleValue[9] == 3}
${err}
《EJB3.0入门经典》复习.ppt
《EJB3.0入门经典》复习.ppt 不错的文档
图解eclipse+myelcipse+weblogic开发EJB,.doc
图解eclipse+myelcipse+weblogic开发EJB .doc
jQueryAPI_1.4.4-CHM
jQueryAPI_1.4.4-CHM 中文版
jQuery+EasyUI+1.2.4+API+中文文档.doc
jQuery+EasyUI+1.2.4+API+中文文档.doc
jQuery-api-1.7.1 API 中文版
jQuery-api-1.7.1 API 中文版
C# Socket Server Client 通讯应用 完整的服务端和客户端
服务器与客户端互传信息的Socket 例子
该通讯程序已经在实际项目中运营过,代码是非常不错的。
功能有:上传下载、消息请求访问服务器目标、文件夹、文件。能够满足一般的通讯要求