java 打印

来源:互联网 发布:淘宝客佣金5元怎么设置 编辑:程序博客网 时间:2024/06/08 00:20

本博客主要实现图片指定位置插入文字,然后使用默认打印机实现打印功能

引入的类import java.awt.Color;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.image.BufferedImage;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.InputStream;import javax.imageio.ImageIO;import javax.print.Doc;import javax.print.DocFlavor;import javax.print.DocPrintJob;import javax.print.PrintService;import javax.print.PrintServiceLookup;import javax.print.SimpleDoc;方法如下public static void print(){try{DocFlavor flavor = DocFlavor.INPUT_STREAM.GIF;//获取系统所有打印设备PrintService[] printers = PrintServiceLookup.lookupPrintServices(flavor, null);for (int i = 0; i < printers.length; i++)System.out.println(printers[i].getName());//获取第一个默认打印设备PrintService printer = printers[0];            DocPrintJob job = printer.createPrintJob();                        //图片路径                       String filePath = Thread.currentThread().getContextClassLoader().getResource("Image_00008.jpg").getPath();BufferedImage img =ImageIO.read(new File(filePath));Graphics g1 = img.getGraphics();Graphics g2 = img.getGraphics();Graphics g3 = img.getGraphics();Graphics g4 = img.getGraphics();Graphics g5 = img.getGraphics();Graphics g6 = img.getGraphics();Graphics g7 = img.getGraphics();Graphics g8 = img.getGraphics();g1.setColor(Color.BLACK);//字体设为黑色g2.setColor(Color.BLACK);g3.setColor(Color.BLACK);g4.setColor(Color.BLACK);g5.setColor(Color.BLACK);g6.setColor(Color.BLACK);g7.setColor(Color.BLACK);g8.setColor(Color.BLACK);                        //指定位置插入文字/*((Graphics2D) g1).rotate(-(3.1415926/2),105,781);  //逆时针选中90度相同坐标的文字g1.drawString("罗兵逊", 105, 781);((Graphics2D) g2).rotate(-(3.1415926/2),105 ,618);g2.drawString("12345677890", 105, 618);((Graphics2D) g3).rotate(-(3.1415926/2),135 ,775);g3.drawString("圣安东尼奥马刺GDP",135 , 775);((Graphics2D) g4).rotate(-(3.1415926/2),153 ,793);g4.drawString("北京市东花市北里20号楼6单元501室", 153, 793);*/((Graphics2D) g5).rotate(-(3.1415926/2),229 ,784);g5.drawString("大卫·罗兵逊", 229, 784);((Graphics2D) g6).rotate(-(3.1415926/2),229 ,622);g6.drawString("78945612301", 229, 622);/*((Graphics2D) g7).rotate(-(3.1415926/2),257 ,770);g7.drawString("俄克拉荷马雷霆杜兰特", 257, 770);*/((Graphics2D) g8).rotate(-(3.1415926/2),278 ,784);g8.drawString("虹口区西康南路125弄34号201室 ", 278, 784);ByteArrayOutputStream outstream = new ByteArrayOutputStream();ImageIO.write(img, "gif", outstream);byte[] buf = outstream.toByteArray();InputStream stream = new ByteArrayInputStream(buf);Doc doc = new SimpleDoc(stream, flavor, null);System.out.println(doc);// printfor(int i=0; i<1; i++){    job.print(doc, null);}System.out.println("打印结束");}catch(Exception e){e.printStackTrace();}}