怎样把java输出流输出到打印机上呢?

 

有两个需求,一个是把文件下载下来,这个好办;另一个是点击一个链接,直接把文件打印出来,当然中间要有打印机的选择过程。怎样才能把java输出流输出到打印机上呢?
问题补充:
这个不是我想要的。我是想把输出流连到打印机。就像在页面里右击--打印弹出打印对话框出来的效果一样。另外,javascript:window.print()只是打印所在页面。                 
企业应用
2009年3月26日 19:45
  • Comment添加评论
  • 关注(0)

3个答案      按时间排序按投票排序

0 0


或者你可以变通一下,将你的输出流,输出到一个jsp页面上,弄一个打印的按钮让用户去点,就可以解决了呀.没有必要 一定要用输出流来打印吧.

你要在jsp页面上点击一个链接实现java的打印不可行.

2009年3月27日 10:09
  • Comment添加评论
0 0

java调用打印机的范例:

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.   public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) 
  18.       throws PrinterException 
  19.   { 
  20.     Graphics2D g2 = (Graphics2D) graphics; 
  21.     g2.setPaint(Color.black); 
  22.     g2.translate(pageFormat.getImageableX(), pageFormat.getImageableY()); 
  23.     Font font = new Font("宋体", Font.BOLD, 10); 
  24.     g2.setFont(font); 
  25.     g2.drawString("afasdfad", 10, 10); 
  26.     font = new Font("黑体", Font.ITALIC, 18); 
  27.     g2.setFont(font); 
  28.     g2.drawString("第二行:", 10, 40); 
  29.     return Printable.PAGE_EXISTS; 
  30.   } 
  31.  
  32.   public static void main(String[] args) 
  33.   { 
  34.     MyPrintTest myprinttest = new MyPrintTest(); 
  35.     myprinttest.print(); 
  36.   } 
  37.  
  38.   public void print() 
  39.   { 
  40.     PrinterJob printerJob = PrinterJob.getPrinterJob(); 
  41.     Book book = new Book(); 
  42.     book.append(new MyPrintTest(), printerJob.defaultPage()); 
  43.     printerJob.setPageable(book); 
  44.     HashAttributeSet hs = new HashAttributeSet(); 
  45.     String printerName="EPSON TM-U220 Receipt"
  46.     hs.add(new PrinterName(printerName,null)); 
  47.     PrintService[] pss = PrintServiceLookup.lookupPrintServices(null, hs); 
  48.     if(pss.length==0
  49.     { 
  50.       System.out.println("无法找到打印机:"+printerName); 
  51.       return
  52.     } 
  53.     try 
  54.     { 
  55.       printerJob.setPrintService(pss[0]); 
  56.       printerJob.print(); 
  57.     } 
  58.     catch (PrinterException ex) 
  59.     { 
  60.       System.out.println(ex.getMessage()); 
  61.     } 
  62.   } 

2009年3月26日 21:20
  • Comment添加评论
0 0

http://doc.javanb.com/java-platform-standard-edition-api-1-6-zh/java/awt/print/class-use/PageFormat.html

这个是java和打印机相关的类你了解一下

你可能感兴趣的:(怎样把java输出流输出到打印机上呢?)