JAVA打印代码段

该博客展示了如何在Java中实现代码段的打印功能,包括创建Printable接口的实现类,设置字体、颜色,以及调用PrinterJob进行打印。同时,博客还涉及到查找和选择特定打印机,如EPSON TM-U220 Receipt,并使用JRPrintServiceExporter进行报表打印。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JAVA 打印范例:

  1. import java.awt.print.PrinterJob;  
  2. import java.awt.print.Book;  
  3. import java.awt.print.Printable;  
  4. import java.awt.Graphics;  
  5. import java.awt.print.PageFormat;  
  6. import java.awt.print.PrinterException;  
  7. import javax.print.PrintService;  
  8. import javax.print.PrintServiceLookup;  
  9. import java.awt.Graphics2D;  
  10. import java.awt.Color;  
  11. import java.awt.Font;  
  12. import javax.print.attribute.HashAttributeSet;  
  13. import javax.print.attribute.standard.PrinterName;  
  14.   
  15. public class MyPrintTest  
  16.     implements Printable  
  17. {  
  18.   public int print(Graphics graphics, PageFormat pageFormat, int pageIndex)  
  19.       throws PrinterException  
  20.   {  
  21.     Graphics2D g2 = (Graphics2D) graphics;  
  22.     g2.setPaint(Color.black);  
  23.     g2.translate(pageFormat.getImageableX(), pageFormat.getImageableY());  
  24.     Font font = new Font("宋体", Font.BOLD, 10);  
  25.     g2.setFont(font);  
  26.     g2.drawString("afasdfad"1010);  
  27.     font = new Font("黑体", Font.ITALIC, 18);  
  28.     g2.setFont(font);  
  29.     g2.drawString("第二行:"1040);  
  30.     return Printable.PAGE_EXISTS;  
  31.   }  
  32.   
  33.   public static void main(String[] args)  
  34.   {  
  35.     MyPrintTest myprinttest = new MyPrintTest();  
  36.     myprinttest.print();  
  37.   }  
  38.   
  39.   public void print()  
  40.   {  
  41.     PrinterJob printerJob = PrinterJob.getPrinterJob();  
  42.     Book book = new Book();  
  43.     book.append(new MyPrintTest(), printerJob.defaultPage());  
  44.     printerJob.setPageable(book);  
  45.     HashAttributeSet hs = new HashAttributeSet();  
  46.     String printerName="EPSON TM-U220 Receipt";  
  47.     hs.add(new PrinterName(printerName,null));  
  48.     PrintService[] pss = PrintServiceLookup.lookupPrintServices(null, hs);  
  49.     if(pss.length==0)  
  50.     {  
  51.       System.out.println("无法找到打印机:"+printerName);  
  52.       return ;  
  53.     }  
  54.     try  
  55.     {  
  56.       printerJob.setPrintService(pss[0]);  
  57.       printerJob.print();  
  58.     }  
  59.     catch (PrinterException ex)  
  60.     {  
  61.       System.out.println(ex.getMessage());  
  62.     }  
  63.   }  
  64. }
Jasperreport指定打印机:

  1. PrintService[] pss = PrinterJob.lookupPrintServices();  
  2. PrintService ps = null;  
  3. for (int i = 0; i < PSs.length; i++) {  
  4.     String sps = PSs[i].toString();  
  5.     //如果打印机名称相同  
  6.     if(sps.equalsIgnoreCase("Win32 Printer : pdfFactory Pro")){  
  7.         ps = PSs[i];  
  8.     }   
  9. }  
  10. JRAbstractExporter je = new JRPrintServiceExporter();  
  11. je.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);  
  12. //设置指定打印机  
  13. je.setParameter(JRPrintServiceExporterParameter.PRINT_SERVICE, ps);  
  14. je.setParameter(JRPrintServiceExporterParameter.DISPLAY_PAGE_DIALOG, false);  
  15. je.setParameter(JRPrintServiceExporterParameter.DISPLAY_PRINT_DIALOG, false);  
  16. //打印  
  17. je.exportReport();


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值