企业网站及信息化建设,中国拟在建项目网官网,网站备案要几天,制作网站难还是编程难Atitit.java swing打印功能 api attilax总结 1. 打印方式有三种#xff1a;2 1.1. 一是不经过任何修改#xff0c;直接调用javascript中的window.print()打印。2 1.2. 二根据客户要求的报表格式#xff0c;编写相应格式的html#xff0c;装载数据打印#xff0c;同样调用…Atitit.java swing打印功能 api attilax总结 1. 打印方式有三种2 1.1. 一是不经过任何修改直接调用javascript中的window.print()打印。2 1.2. 二根据客户要求的报表格式编写相应格式的html装载数据打印同样调用window.print()打印只是对html的格式要求比较高。2 1.3. 三是通过客户提供的word格式通过xml配置文件与数据库的数据进行关联自动装载数据到word中打印这里是利用客户端的word进行打印。 2 1.4. 使用lang api2 2. 打印模式 单页模式 与多页模式3 3. 虚拟打印测试4 4. Java 打印api4 4.1. 通过PrinterJob接口 不推荐depeart4 4.2. 通过PrintService推荐4 5. Java jpos 打印框架5 5.1. Ati print ----DevicePrinterPrinter5 6. Code 实现打印Graphics drawImage drawString5 6.1. PrinterJob 。setPrintable6 6.2. PrinterJob .setPageable6 7. 获取打印机列表7 8. 使用指定打印机打印8 9. 参考8 1. 打印方式有三种 1.1. 一是不经过任何修改直接调用javascript中的window.print()打印。 1.2. 二根据客户要求的报表格式编写相应格式的html装载数据打印同样调用window.print()打印只是对html的格式要求比较高。 1.3. 三是通过客户提供的word格式通过xml配置文件与数据库的数据进行关联自动装载数据到word中打印这里是利用客户端的word进行打印。 1.4. 使用lang api 作者:: 老哇的爪子 Attilax 艾龙 EMAIL:1466519819qq.com 转载请注明来源 http://www.cnblogs.com/attilax/ 第一种几乎不用编写程序最简单快捷这里会遇到几个问题只能打印表单内容按钮不希望打印出来页眉页脚不想打印出来IE的titile不想打印出来。 解决办法把button放在一个table或者div里打印的时候隐藏完成后显示就可以。系统中的javascript打印代码如下 第三种方案利用word强大的排版、打印功能把排版和打印的需求扔到word中OA软件要做的仅仅是让数据导到word中去。JAVA读取WORD模板通过XML读取相关的数据库数据自动转载数据到WORD模板中最终展现给客户打印的是WORD。 完成此方案后有几个特点打印格式由现有的word格式提供不需要再花时间开发调试程序实施人员只需要花一点时间就完成标签和XML文件的设置在报表中自动加入审批意见领导印章等直观跟现实一致打印的格式和效果完全由word决定而word强大并且被大众而熟悉在打印的时候可以调整所见即所得 小结这几种方案不仅仅应用于OA的打印任何web系统CRM、ERP、HR等打印都可以处理。而且也不仅仅是java打印、jsp打印用PHP、ASP等语言开发的WEB打印也一样适用。这几种打印方案广泛应用特别是第三种有效解决了政务OA的红头文件此文仅做思路的总结具体实现方法有很多。 2. 打印模式 单页模式 与多页模式 3. 虚拟打印测试 直接打印的时候会弹出存为pdf文件。。。 貌似win7 PDF-XChange Printer 2012 4. Java 打印api 4.1. 通过PrinterJob接口 不推荐depeart 比如这两种机制使用java.awt.Graphics这个类的一个接口来展现打印内容意味着所有要打印的东西都必须用一张图片表示。另外完善的PrinterJob提供了很有限的工程相关属性的设置这两种机制都没有办法通过程序来选择目标打印机。 PrintService内部也是使用PrintService 4.2. 通过PrintService推荐 Java打印最大的改变来自于J2SE的发布带来的Java打印服务API。这个第三代Java打印支持接口突破了先前提到的使用javax.print包的PrintService和DocPrintJob接口的局限性。因为新的API就是以前两种旧的打印机制定义的功能函数的一个父集它是目前我们常用的方法并且是这篇文章的焦点。 更深入来说,以下的步骤包含了怎么使用这个新的Java打印服务API 1.定义打印机限制那些返回到提供你要实现功能的函数的列表。打印服务实现了PrintService接口. 2.通过调用接口中定义的createPrintJob()方法创建一个打印事件作为DocPrintJob的一个实例。 3.创建一个实现Doc接口的类来描述你想要打印的数据 , 你也可以创建一个PrintRequestAttributeSet的实例来定义你想要的打印选项。 4.通过DocPrintJob接口定义的printv()方法来初始化打印指定你先前创建的Doc指定PrintRequestAttributeSet或者设为空值。 现在你可以检查每一步并且试着完成它们。 5. Java jpos 打印框架 参考 jpos_examples_图文_百度文库.htm 5.1. Ati print ----DevicePrinterPrinter 6. Code 实现打印Graphics drawImage drawString import java.awt.print.PrinterJob; 1. Image src Toolkit.getDefaultToolkit().getImage(D:\\EclipseWorkSpace3.1\\Kfc-wuxi\\WebRoot\\image\\KFC.jpg); 1. drawImage 1. Graphics g) { 2. if (paintable) { 3. g.setColor(Color.GRAY); 4. g.drawString 6.1. PrinterJob 。setPrintable //获取打印服务对象 PrinterJob job PrinterJob.getPrinterJob(); // PageFormat pageFormat job.defaultPage();//得到默认页格式 job.setPrintable(new PrintTest1());//设置打印类 6.2. PrinterJob .setPageable //------------------add page and format // 设置成竖打 PageFormat pf new PageFormat(); pf.setOrientation(PageFormat.PORTRAIT); // 通过Paper设置页面的空白边距和可打印区域。必须与实际打印纸张大小相符。 Paper p new Paper(); p.setSize(590,840);//纸张大小 p.setImageableArea(10,10, 590,840);//A4(595 X 842)设置打印区域其实00应该是7272因为A4纸的默认X,Y边距是72 pf.setPaper(p); // 把 PageFormat 和 Printable 添加到书中组成一个页面 // 通俗理解就是书、文档 Book book new Book(); book.append(new PrintTest(), pf); //获取打印服务对象 PrinterJob job PrinterJob.getPrinterJob(); // 设置打印类 job.setPageable(book); 7. 获取打印机列表 package com.openbravo.pos.util; import javax.print.DocFlavor; import javax.print.DocFlavor.SERVICE_FORMATTED; import javax.print.PrintService; import javax.print.PrintServiceLookup; public class ReportUtils public static String[] getPrintNames() { PrintService[] arrayOfPrintService PrintServiceLookup.lookupPrintServices(DocFlavor.SERVICE_FORMATTED.PRINTABLE, null); String[] arrayOfString new String[arrayOfPrintService.length]; for (int i 0; i arrayOfPrintService.length; i) arrayOfString[i] arrayOfPrintService[i].getName(); return arrayOfString; } 8. 使用指定打印机打印 接口 PrintService 是 DocPrintJob 的工厂。PrintService 描述了打印机的功能并可查询它来了解打印机支持的属性。 示例 DocFlavor flavor DocFlavor.INPUT_STREAM.POSTSCRIPT; PrintRequestAttributeSet aset new HashPrintRequestAttributeSet(); aset.add(MediaSizeName.ISO_A4); PrintService[] pservices PrintServiceLookup.lookupPrintServices(flavor, aset); if (pservices.length 0) { DocPrintJob pj pservices[0].createPrintJob(); try { FileInputStream fis new FileInputStream(test.ps); Doc doc new SimpleDoc(fis, flavor, null); pj.print(doc, aset); } catch (FileNotFoundException fe) { } catch (PrintException e) { } } 9. 参考 Java web 打印方案 - tanksyg的专栏 - 博客频道 - CSDN.NET.htm Java打印-Print Swing component - dontsan - ITeye技术网站.htm impt 打印--学习如何使用打印服务api.htm Java高级编程 使用打印服务API一(图) - 3P代码.htm 转载于:https://www.cnblogs.com/attilax/p/5099572.html