- 浏览: 477652 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
谢谢你的祝福:
特地登陆上来感谢一下楼主,解决问题。
ORA-04098: 触发器无效且未通过重新验证问题 -
fuqiangjava:
写的不错 解决了自己的一个问题 谢谢了
ORA-00001:unique constraint (oracle 10g) -
hujinhuhujinhu:
make ...我有1.6.23
MyEclipse6.5安装自动提示功能的jQuery插件步骤 -
fool2011:
学习下,博主
JFreeChart类生成折线图的Java源代码 -
814687491:
你不是说的JQUERY吗?
MyEclipse6.5安装自动提示功能的jQuery插件步骤
一web打印常见方法:
1,一种简单的方法是在html上调用window.print(),但是这种方法极其“简陋”,除了要弹出一个对话框让我们选择打印机外,还有就是打印的内容不大好控制。
2,利用pdf,先将要打印的内容呈现在pdf上,再点击pdf上的打印按钮,但是一般要执行两步。很多情况下,这是一种不错的选择。
3,利用插件,有ActiveX控件,Applet插件,一下讲解applet打印。
二指定客户端的打印机直接打印
利用java print sevice可以很好地控制打印,此处不直接用Java Print Service,为了更好地控制打印内容的格式,我这里推荐用jasperreport来进行打印。利用applet调用其JRPrintServiceExporter对象来打印。
1,创建一个servlet,负责生产要打印的报表
-----------------------------------------
public class JasperPrintServlet extends HttpServlet
{
/**
*
*/
public void service(
HttpServletRequest request,
HttpServletResponse response
) throws IOException, ServletException
{
ServletContext context = this.getServletConfig().getServletContext();
File reportFile = new File(context.getRealPath("/reports/WebappReport.jasper"));
if (!reportFile.exists())
throw new JRRuntimeException("File WebappReport.jasper not found. The report design must be compiled first.");
Map parameters = new HashMap();
parameters.put("ReportTitle", "Address Report");
parameters.put("BaseDir", reportFile.getParentFile());
JasperPrint jasperPrint = null;
try
{
JasperReport jasperReport = (JasperReport)JRLoader.loadObject(reportFile.getPath());
jasperPrint =
JasperFillManager.fillReport(
jasperReport,
parameters,
new WebappDataSource()
);
}
catch (JRException e)
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>JasperReports - Web Application Sample</title>");
out.println("<link rel=\"stylesheet\" type=\"text/css\" href=\"../stylesheet.css\" title=\"Style\">");
out.println("</head>");
out.println("<body bgcolor=\"white\">");
out.println("<span class=\"bnew\">JasperReports encountered this error :</span>");
out.println("<pre>");
e.printStackTrace(out);
out.println("</pre>");
out.println("</body>");
out.println("</html>");
return;
}
if (jasperPrint != null)
{
response.setContentType("application/octet-stream");
ServletOutputStream ouputStream = response.getOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(ouputStream);
oos.writeObject(jasperPrint);
oos.flush();
oos.close();
ouputStream.flush();
ouputStream.close();
}
else
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>JasperReports - Web Application Sample</title>");
out.println("<link rel=\"stylesheet\" type=\"text/css\" href=\"../stylesheet.css\" title=\"Style\">");
out.println("</head>");
out.println("<body bgcolor=\"white\">");
out.println("<span class=\"bold\">Empty response.</span>");
out.println("</body>");
out.println("</html>");
}
}
}2,创建一个Applet,负责调用servlet,同时执行打印
------------------------------------------------------------------------------
public class HelloSwingApplet extends JApplet
{
private URL url = null;
private JasperPrint jasperPrint = null;
public HelloSwingApplet()
{
}
public void init()
{
String strUrl = getParameter("REPORT_URL");
if (strUrl != null)
{
try
{
url = new URL(getCodeBase(), strUrl);
}
catch (Exception e)
{
StringWriter swriter = new StringWriter();
PrintWriter pwriter = new PrintWriter(swriter);
e.printStackTrace(pwriter);
JOptionPane.showMessageDialog(this, swriter.toString());
}
}
if (url != null)
{
try
{
if (jasperPrint == null)
{
jasperPrint = (JasperPrint)JRLoader.loadObject(url);
}
if (jasperPrint != null)
{
//ViewerFrame viewerFrame = new ViewerFrame(this.getAppletContext(), jasperPrint);
//viewerFrame.show();
}
else
{
JOptionPane.showMessageDialog(this, "Empty report.");
}
}
catch (Exception e)
{
StringWriter swriter = new StringWriter();
PrintWriter pwriter = new PrintWriter(swriter);
e.printStackTrace(pwriter);
JOptionPane.showMessageDialog(this, swriter.toString());
}
}
}
public void printReport() throws Exception{
try {
//JRSaver.saveObject(jasperPrint, "PrintServiceReport.jrprint");
PrintRequestAttributeSet printRequestAttributeSet = new HashPrintRequestAttributeSet();
printRequestAttributeSet.add(MediaSizeName.ISO_A4);
PrintServiceAttributeSet printServiceAttributeSet = new HashPrintServiceAttributeSet();
//指定打印机,不会弹出打印机选择框(PDFill PDF&Image Writer是我的打印机)
printServiceAttributeSet.add(new PrinterName("PDFill PDF&Image Writer", null));
JRPrintServiceExporter exporter = new JRPrintServiceExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRPrintServiceExporterParameter.PRINT_REQUEST_ATTRIBUTE_SET, printRequestAttributeSet);
exporter.setParameter(JRPrintServiceExporterParameter.PRINT_SERVICE_ATTRIBUTE_SET, printServiceAttributeSet);
exporter.setParameter(JRPrintServiceExporterParameter.DISPLAY_PAGE_DIALOG, Boolean.FALSE);
exporter.setParameter(JRPrintServiceExporterParameter.DISPLAY_PRINT_DIALOG, Boolean.FALSE);
exporter.exportReport();
} catch (JRException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
3,创建一个html,嵌入applet
1)嵌入代码
<APPLET CODE = "HelloSwingApplet.class" archive="SSignedApplet.jar" WIDTH = 400 HEIGHT = 50 >
<PARAM NAME = "REPORT_URL" VALUE ="servlets/jasperprint">
</APPLET>2)编写一个js函数
function print(){
document.applets[0].printReport();
}3)编写一个button测试
<input type="button" value="print" name="button1" onclick="print();">
发表评论
-
Applet画图修改中。。。
2010-01-13 21:00 2362效果如下图: import java.applet.A ... -
Applet画图程序
2010-01-11 14:18 1768双击右键才显示功能菜单。。。 import java ... -
Applet打印
2009-11-23 15:56 2083效果如上图: import java.awt.*; i ... -
applet数字签名实践篇三(转载)
2009-11-17 18:56 2091最近在研究applet,打算使用applet来开发一个上传文件 ... -
applet数字签名实践篇二(转载)
2009-11-17 18:45 1369【摘 要】如果你要考虑在Internet上实现这个Applet ... -
applet数字签名实践篇一(转载)
2009-11-17 18:44 1576本人在报表开发之时, ... -
Applet与Servlet通信
2009-11-13 17:42 1214在今天的多层结构的web应用程序的设计中,我们可以同时使用Ja ... -
使用 Java applet 访问远程 Web 服务
2009-11-13 10:35 1939通过浏览器提交、接收和分析 XML Web 服务消息 ... -
applet应用小技巧
2009-11-06 13:29 10611。获取屏幕分辩率的宽和高: int width=To ... -
applet图像的处理
2009-11-03 16:08 2087设置呈现(RenderingHints)提示 8.2 ... -
applet绘制纹理图
2009-11-03 16:04 1174其效果如下图: import java.applet.*; ... -
applet中保存canvas中的图片
2009-11-02 15:36 1635效果图如下: import java.awt.*; ... -
applet画图板程序(画直线、画圆、画笔、画矩形、调色板)
2009-10-27 17:08 5097import java.applet.*; import j ... -
applet画图板程序
2009-10-27 17:00 2079import java.applet.Applet; imp ... -
applet的简单流程图绘制小工具
2009-10-27 16:58 1944使用说明如下: 1.在主区域的上面有一个写有"dr ... -
applet图形缩放类
2009-10-24 20:11 1334import java.awt.Image; import ... -
applet文字和图标的合成
2009-10-24 17:43 1651相信大家平时碰到过一些在JAVA中对图像进行处理的需求,比如需 ... -
运行applet时出现无法载入class的问题,以及设置codeBase
2009-08-13 17:57 2402最简单的方法就是:把它们放在同一个目录就不用设置啦。。。,但是 ... -
IE中Applet不能运行的问题
2009-08-13 17:49 2176applet程序正常没问题,在Html页面中的设置也没问题,只 ... -
Applet 双缓冲技术
2009-07-23 17:32 1568import java.applet.Applet; imp ...
相关推荐
在"jasperreport+applet客户端打印demo"中,我们探讨的是如何利用JasperReport结合Java Applet技术实现客户端的打印功能。 首先,JasperReport提供了丰富的模板设计功能,通过JRXML文件可以定义报告的布局、样式、...
在Applet和Servlet之间进行通信,通常是为了实现一些复杂的交互功能,比如在这个例子中,Applet需要请求Servlet来获取文件流,然后利用该文件流进行打印。 1. **Applet请求Servlet**: 当Applet需要从服务器获取...
传统的Web打印方式通常依赖于浏览器的内置打印功能,但这往往无法满足对打印格式有较高要求的应用场景。因此,本文介绍了一种结合Java Applet与JasperReport来实现Web端精确打印的方法。 #### 技术选型 为了实现这...
2. 零售业:零售商可以利用Applet打印价格标签、促销标签,快速响应市场变化。 3. 医疗保健:在医院中,Applet可以用于打印患者腕带、药品标签,确保医疗安全。 4. 工厂自动化:生产线上,Applet可用于打印条形码...
### Web打印技术详解:Jaspersoft + iReport + Designer 4.5.0 教程 #### 背景及需求分析 随着信息技术的发展,Web打印成为越来越多企业选择的高效打印方式之一。本文档旨在介绍如何利用Jaspersoft、iReport、...
综上所述,这个项目涉及了Java Web打印的自定义实现,利用Java技术直接调用PDF打印,而非依赖浏览器功能。开发者使用了MyEclipse作为开发工具,并可能借助了特定库如iText或PDFBox来生成和打印PDF。而“mimeograph”...
在5.1.0版本中,引入了applet技术,使得用户能够通过浏览器实现报表的打印,极大地扩展了其在Web环境中的应用可能性。本文将深入探讨JasperReports Applet 5.1.0的核心特性和使用方法。 一、JasperReports基础 ...
Web打印在互联网应用中扮演着...同时,不断关注浏览器的更新和技术发展,以便利用新的打印功能和支持,改进Web打印的性能和可定制性。在后续的教程中,将进一步探讨如何在实际项目中应用这些技术,以优化Web打印体验。
ScriptX是由MeadCo公司提供的一个用于Web打印的解决方案,分为基础版(免费)和高级版(付费)。基础版提供了基本的打印功能,而高级版则增加了更多高级特性,如支持多种浏览器、自定义打印样式等。 **3.2 DLPRI***...
【基于Web打印控件jatoolsPrinter在物流平台下的应用及研究】 在信息化时代,Web应用平台已经成为各行各业不可或缺的一部分,特别是在物流行业中。物流服务平台作为物流业务的核心,需要处理各种复杂的信息,其中...
将Jacob与Applet结合使用,可以让Java Applets利用COM组件,从而在Web环境中访问特定于Windows系统的功能,如自动化Office文档处理、打印服务等。 在Java Applet中应用Jacob的关键知识点包括: 1. **Jacob库的引入...
此JAR包包含的类和资源使得用户无需安装额外软件,即可在Web浏览器上进行报表操作,提升了用户体验。 在实际开发中,可能会遇到与原版润乾报表JAR包不兼容或者存在错误的情况,这可能会影响到报表的打印、导出等...
### Java实现Web报表打印功能:基于iText组件的实践 #### 概述 在Web应用领域,打印功能一直是开发者面临的挑战之一。由于Web应用本质上属于瘦客户端架构,直接操作客户端设备(如打印机)存在限制。这促使业界...
Java打印全集主要涵盖Java平台中的打印功能,包括如何使用...通过以上知识点的学习和实践,开发者可以充分理解和利用Java的打印功能,为用户提供便捷的打印体验,无论是在传统的桌面应用程序还是Web环境下的Applet中。
本文将详细探讨如何利用SWT和Applet来打开和操作本地的Office文件,包括Word、Excel和PowerPoint等。 首先,SWT是Eclipse基金会开发的一种Java GUI库,它提供了一种更接近于本机应用程序的用户体验,因为它的控件...
5. **使用WebSocket进行双向通信**:如果需要实时通信,如聊天室或游戏应用,`Applet`可以利用WebSocket协议与`Servlet`建立持久连接,实现实时数据交换。 在实际应用中,为了安全性和性能考虑,通常会限制`Applet`...
例程1-5:利用Applet在Web布面实现时钟 例程1-6:利用JSP与Flash实现用户登录和注册模块 例程1-7:利用JavaScript脚本实现奥运倒计时日历 例程1-8:利用XML、CSS和XSL显示食谱信息 例程1-9:利用标准标记库显示本地...