求救,jsp的b/s中怎样实现客户端打印?急,在线等! 使用SCRIPT直接调用WINDOW的PRINT对话框不就得了 ^-^ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 谢谢了,用这种方法WINDOW.PRINT()的局限性很大呀,再一个用这种方法打出来的东西好像都会有一些网页之类的信息在上面,也不能实现套打.请问有没有更好的方法? 1,可以用嵌入ie中的word,excel实现,如果你的服务器是tomcatword:文件头上加:<%@ page contentType= "application/msword " % > tomcat\conf\web.xml里:<mime-mapping> <extension>doc</extension> <mime-type>application/msword</mime-type> </mime-mapping>excel:文件头上加:<%@ page contentType="application/vnd.ms-excel" %>tomcat\conf\web.xml里:<mime-mapping> <extension>xls</extension> <mime-type>application/msexcel</mime-type> </mime-mapping>2.直接调用windows函数<input type="button" value="print" onclick="window.focus();window.print()">3.调用js //放在head 与 head 之间<SCRIPT LANGUAGE=javascript><!--function setPrint(){WB.ExecWB(8,1);}function previewPrint(){WB.ExecWB(7,1)}//--></SCRIPT> //放在body与body之间<OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WB width=0></OBJECT><INPUT type="button" value="打印设置" id=button1 name=button1 onclick="setPrint();"><INPUT type="button" value="打印预览" id=button2 name=button2 onclick="previewPrint();">4,如果要求很高,就用专业报表工具,不过价格不便宜 感谢大家!是啊,只打印数据,就是实现套打的基础.用嵌入ie中的word,excel实现打印,打是可以打,但是客户端要装上OFFICE.再者,对于客户来说,用起来也会感觉不理想. 想研究的话可以试试fop,生成pdf文件打印不想研究的话买一套现有的比如华表等工具 用itext(免费的),生成PDF打印。 什么叫套打?打印发票时时全部的CSS实现格式,用JS实现分页和打印页眉、页脚。 我对这个也很关注,请问itext软件是什么? 谢谢各位支持用applet在客户端打印有没有实例呀?怎么调用客户端的打印机呢?我实在写不出来,:) 我自己写的打印程序,可根据打印机设置纸型自动缩放。程序稍加改动可实现分页打印功能。import java.awt.print.*;import javax.swing.*;import java.awt.*;import java.applet.*;public class Wellsingleprint extends Thread {JPanel mypanel; public Wellsingleprint(JPanel panel) { mypanel=panel; } public void run() { PrinterJob job = PrinterJob.getPrinterJob (); Book book =new Book(); PageFormat pf = job.pageDialog(job.defaultPage()); Wellprint pff = new Wellprint(mypanel); book.append(pff, pf, 1); job.setPageable(book); if(job.printDialog()) { try { job.print(); } catch (PrinterException e) { e.printStackTrace(); } } }}————————————————————————————————————————import java.awt.print.*;import javax.swing.*;import java.awt.*;import java.applet.*;import java.math.*;public class Wellprint implements Printable {JPanel mypanel; public Wellprint(JPanel panel) { mypanel=panel; } public int print(Graphics g, PageFormat pf, int pageindex) throws PrinterException { if (pageindex > 1 ) { // Max_Y return Printable.NO_SUCH_PAGE; } else { Graphics2D g2 = (Graphics2D)g; double scale=1; double sc1=pf.getImageableWidth()/mypanel.getWidth(); double sc2=pf.getImageableHeight()/mypanel.getHeight(); double sc=Math.min(sc1,sc2); if(sc<1) scale=sc; // Do a translation. g2.translate(pf.getImageableX(), pf.getImageableY()); g2.scale(scale,scale); mypanel.paint(g2); // It's the paint method of your Applet! Nothing need change. return Printable.PAGE_EXISTS; } }} 你可以考虑CocoonCocoon支持FO,可以把你的数据采集封装到XSP中,再一个人XSL来进行序列化输出,格式可以有PDF(不可修改),XLS(可以修改),SVG,JPG等等,最重要的它是免费的。如果你想直接打的话,可能要用到ActiveX控件,或者其它商业产品,当然价格不菲。自己考虑 JAVA关于窗口和按钮的多次反复添加实现 急急急 GUI开发的后台接受程序出问题了. 各位大神帮帮忙 新手关于hashmap中key和value的疑问! 绝对菜鸟问题!!!!! 基础问题,请高手指教,见着有分 利用对象作为参数,得到阶乘的值 我的java程序不能正常运行,高手看过来!!! 程序中有3个线程,怎么只有一个工作? D版Jbuilder5中bas的License key,哪位可知道?感激不尽! 请教一个关于在eclipse中导入文件的问题, 谢啦 如何使用log4j写数据库,请给一个例子,给出程序文件,和配置文件 非常简单的问题:怎样将一个字符串转换成日期?
word:
文件头上加:<%@ page contentType= "application/msword " % >
tomcat\conf\web.xml里:
<mime-mapping>
<extension>doc</extension>
<mime-type>application/msword</mime-type>
</mime-mapping>
excel:
文件头上加:<%@ page contentType="application/vnd.ms-excel" %>
tomcat\conf\web.xml里:
<mime-mapping>
<extension>xls</extension>
<mime-type>application/msexcel</mime-type>
</mime-mapping>
2.直接调用windows函数
<input type="button" value="print"
onclick="window.focus();window.print()">3.调用js
//放在head 与 head 之间
<SCRIPT LANGUAGE=javascript>
<!--
function setPrint()
{
WB.ExecWB(8,1);
}
function previewPrint()
{
WB.ExecWB(7,1)
}
//-->
</SCRIPT>
//放在body与body之间
<OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WB width=0>
</OBJECT>
<INPUT type="button" value="打印设置" id=button1 name=button1 onclick="setPrint();">
<INPUT type="button" value="打印预览" id=button2 name=button2 onclick="previewPrint();">
4,如果要求很高,就用专业报表工具,不过价格不便宜
是啊,只打印数据,就是实现套打的基础.
用嵌入ie中的word,excel实现打印,打是可以打,但是客户端要装上OFFICE.再者,对于客户来说,用起来也会感觉不理想.
用itext(免费的),生成PDF打印。
用applet在客户端打印有没有实例呀?
怎么调用客户端的打印机呢?
我实在写不出来,:)
import java.awt.print.*;
import javax.swing.*;
import java.awt.*;
import java.applet.*;public class Wellsingleprint extends Thread {
JPanel mypanel; public Wellsingleprint(JPanel panel) {
mypanel=panel;
} public void run() {
PrinterJob job = PrinterJob.getPrinterJob ();
Book book =new Book();
PageFormat pf = job.pageDialog(job.defaultPage());
Wellprint pff = new Wellprint(mypanel);
book.append(pff, pf, 1);
job.setPageable(book);
if(job.printDialog()) {
try {
job.print();
} catch (PrinterException e) {
e.printStackTrace();
}
}
}
}
————————————————————————————————————————
import java.awt.print.*;
import javax.swing.*;
import java.awt.*;
import java.applet.*;
import java.math.*;public class Wellprint implements Printable {
JPanel mypanel; public Wellprint(JPanel panel) {
mypanel=panel;
} public int print(Graphics g, PageFormat pf, int pageindex) throws PrinterException {
if (pageindex > 1 ) { // Max_Y
return Printable.NO_SUCH_PAGE;
}
else {
Graphics2D g2 = (Graphics2D)g;
double scale=1;
double sc1=pf.getImageableWidth()/mypanel.getWidth();
double sc2=pf.getImageableHeight()/mypanel.getHeight();
double sc=Math.min(sc1,sc2);
if(sc<1) scale=sc;
// Do a translation.
g2.translate(pf.getImageableX(), pf.getImageableY());
g2.scale(scale,scale);
mypanel.paint(g2); // It's the paint method of your Applet! Nothing need change.
return Printable.PAGE_EXISTS;
}
}
}
Cocoon支持FO,可以把你的数据采集封装到XSP中,再一个人XSL来进行序列化输出,格式可以有PDF(不可修改),XLS(可以修改),SVG,JPG等等,最重要的它是免费的。
如果你想直接打的话,可能要用到ActiveX控件,或者其它商业产品,当然价格不菲。自己考虑