当前位置:编程学习 > JAVA >>

JAVA打印机打印TXT

小弟刚接触JAVA打印机打印TXT,困惑许久,求一段实例代码,要求中文不乱码。意思就是把TXT以文件形式放入Windows打印队列。 --------------------编程问答-------------------- 没人能帮助我吗? --------------------编程问答-------------------- --------------------编程问答-------------------- Java的打印API主要存在于java.awt.print包中。而jdk1.4新增的类则主要存在于javax.print包及其相应的子包javax.print.event和javax.print.attribute中。其中javax.print包中主要包含打印服务的相关类,而javax.print.event则包含打印事件的相关定义,javax.print.attribute则包括打印服务的可用属性列表等。

例子:
http://topic.csdn.net/t/20010830/14/263464.html --------------------编程问答--------------------

public void printFile(String fileName){
        StringBuffer buffer = new StringBuffer();
        try {
            BufferedReader reader = new BufferedReader(new FileReader(fileName));
            while(reader.ready()){
                buffer.append(reader.readLine());
            }
            System.out.println("输出文件内容的结果为:" + buffer.toString());
            reader.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

--------------------编程问答-------------------- 2L链接里面的

/** 
  *   @version   1.00   1999-09-11 
  *   @author   Cay   Horstmann 
  */ 

import   java.awt.*; 
import   java.awt.event.*; 
import   java.awt.font.*; 
import   java.awt.geom.*; 
import   java.awt.print.*; 
import   java.util.*; 
import   javax.swing.*; 

public   class   PrintTest 
{     public   static   void   main(String[]   args) 
      {     JFrame   frame   =   new   PrintTestFrame(); 
            frame.show(); 
      } 


class   PrintTestFrame   extends   JFrame 
      implements   ActionListener 
{     public   PrintTestFrame() 
      {     setTitle( "PrintTest "); 
            setSize(300,   300); 
            addWindowListener(new   WindowAdapter() 
                  {     public   void   windowClosing(WindowEvent   e) 
                        {     System.exit(0); 
                        } 
                  }   ); 

            Container   contentPane   =   getContentPane(); 
            canvas   =   new   PrintPanel(); 
            contentPane.add(canvas,   "Center "); 

            JPanel   buttonPanel   =   new   JPanel(); 
            printButton   =   new   JButton( "Print "); 
            buttonPanel.add(printButton); 
            printButton.addActionListener(this); 

            pageSetupButton   =   new   JButton( "Page   setup "); 
            buttonPanel.add(pageSetupButton); 
            pageSetupButton.addActionListener(this); 

            contentPane.add(buttonPanel,   "North "); 
      } 

      public   void   actionPerformed(ActionEvent   event) 
      {     Object   source   =   event.getSource(); 
            if   (source   ==   printButton) 
            {     PrinterJob   printJob   =   PrinterJob.getPrinterJob(); 
                  if   (pageFormat   ==   null) 
                        pageFormat   =   printJob.defaultPage(); 
                  printJob.setPrintable(canvas,   pageFormat); 
                  if   (printJob.printDialog()) 
                  {     try 
                        {     printJob.print(); 
                        } 
                        catch   (PrinterException   exception) 
                        {     JOptionPane.showMessageDialog(this,   exception); 
                        } 
                  } 
            } 
            else   if   (source   ==   pageSetupButton) 
            {     PrinterJob   printJob   =   PrinterJob.getPrinterJob(); 
                  if   (pageFormat   ==   null) 
                        pageFormat   =   printJob.defaultPage(); 
                  pageFormat   =   printJob.pageDialog(pageFormat); 
            } 
      } 

      private   JButton   printButton; 
      private   JButton   pageSetupButton; 

      private   PrintPanel   canvas; 
      private   PageFormat   pageFormat; 


class   PrintPanel   extends   JPanel 
      implements   Printable 
{     public   void   paintComponent(Graphics   g) 
      {     super.paintComponent(g); 
            Graphics2D   g2   =   (Graphics2D)g; 
            drawPage(g2); 
      } 

      public   int   print(Graphics   g,   PageFormat   pf,   int   page) 
            throws   PrinterException 
      {     if   (page   > =   1)   return   Printable.NO_SUCH_PAGE; 
            Graphics2D   g2   =   (Graphics2D)g; 
            g2.setPaint(Color.black); 
            g2.translate(pf.getImageableX(),   pf.getImageableY()); 
            g2.draw(new   Rectangle2D.Double(0,   0, 
                  pf.getImageableWidth(),   pf.getImageableHeight())); 

            drawPage(g2); 
            return   Printable.PAGE_EXISTS; 
      } 

      public   void   drawPage(Graphics2D   g2) 
      {     FontRenderContext   context   =   g2.getFontRenderContext(); 
            Font   f   =   new   Font( "Serif ",   Font.PLAIN,   72); 
            GeneralPath   clipShape   =   new   GeneralPath(); 

            TextLayout   layout   =   new   TextLayout( "Hello ",   f,   context); 
            AffineTransform   transform 
                  =   AffineTransform.getTranslateInstance(0,   72); 
            Shape   outline   =   layout.getOutline(transform); 
            clipShape.append(outline,   false); 

            layout   =   new   TextLayout( "World ",   f,   context); 
            transform 
                  =   AffineTransform.getTranslateInstance(0,   144); 
            outline   =   layout.getOutline(transform); 
            clipShape.append(outline,   false); 

            g2.draw(clipShape); 
            g2.clip(clipShape); 

            final   int   NLINES   =50; 
            Point2D   p   =   new   Point2D.Double(0,   0); 
            for   (int   i   =   0;   i   <   NLINES;   i++) 
            {     double   x   =   (2   *   getWidth()   *   i)   /   NLINES; 
                  double   y   =   (2   *   getHeight()   *   (NLINES   -   1   -   i)) 
                        /   NLINES; 
                  Point2D   q   =   new   Point2D.Double(x,   y); 
                  g2.draw(new   Line2D.Double(p,   q)); 
            } 
      } 




补充:Java ,  Java SE
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,