JAVA打印图片
程序员文章站
2022-05-10 08:37:08
...
package vis.cf.ss.pub.util; import java.awt.print.PageFormat; import java.awt.print.Paper; import java.io.*; import javax.print.*; import javax.print.attribute.*; import javax.print.attribute.standard.*; /** * 打印图片的类 * * @author tianmaochun * */ public class PrintImage { /** * 画图片的方法 * * @param fileName[图片的路径] */ public static void drawImage(String fileName) { try { DocFlavor dof = null; // 根据用户选择不同的图片格式获得不同的打印设备 if (fileName.endsWith(".gif")) { // gif dof = DocFlavor.INPUT_STREAM.GIF; } else if (fileName.endsWith(".jpg") || fileName.endsWith(".JPG")) { // jpg dof = DocFlavor.INPUT_STREAM.JPEG; } else if (fileName.endsWith(".png")) { // png dof = DocFlavor.INPUT_STREAM.PNG; } // 字节流获取图片信息 FileInputStream fin = new FileInputStream(fileName); // 获得打印属性 PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet(); // 每一次默认打印一页 pras.add(new Copies(1)); pras.add(MediaSizeName.ISO_A4); // 默认A4打印 // 获得打印设备 ,字节流方式,图片格式 PrintService pss[] = PrintServiceLookup.lookupPrintServices(dof, pras); // 如果没有获取打印机 if (pss.length == 0) { System.out.println("未获取打印机!"); // 终止程序 return; } // 获取第一个打印机 PrintService ps = pss[0]; System.out.println("Printing image..........." + ps); // 获得打印工作 DocPrintJob job = ps.createPrintJob(); // 设置打印内容 Doc doc = new SimpleDoc(fin, dof, null); // 出现设置对话框 pras.add(new MediaPrintableArea(0,0,210,297,MediaPrintableArea.MM)); // 设置打印区域大小:此设置只能放在此处不能往前放 PrintService service = ServiceUI.printDialog(null, 50, 50, pss, ps, dof, pras); if (service != null) { // 开始打印 job.print(doc, pras); fin.close(); } } catch (IOException ie) { // 捕获io异常 ie.printStackTrace(); } catch (PrintException pe) { // 捕获打印异常 pe.printStackTrace(); } } /** * 主函数 * * @param args * */ public static void main(String args[]) { PrintImage dp = new PrintImage(); dp.drawImage("D:/IMG00001.jpg"); } }
上一篇: php验证码实现代码
下一篇: JS模拟键盘打字效果的方法