eclipse用磁盘打印照片

eclipse用磁盘打印照片,第1张

1、PrinterDemo.java主体类,也是入口类,里面有main方法可弊慎哪以直接在Eclipse中调试运行,他实现了从本地磁盘读取文本类文件打印以及打印预览的功能,其中File动作按钮中的PrintPreviw就是打印预览功能,你可以运行看看。

2、PrintPreview.java打印预览类,这是专门为预览打印设孝瞎计的类,通过他的构造方法可以构造出一个预览类,PrinterDemo中的预览功能就是调用了这个类。

3、这租码样就可以将eclipse用磁盘打印照片。

用java实现本地打印:java.awt中提供了一些打印的API,要实现打印,首先要获得打印对象,然后继承Printable实现接口方法print,以便打印机进行打印,最后用用Graphics2D直接输出直接输出。

下面代码实现了简单的打印功能:

import java.awt.BasicStroke

 import java.awt.Color

 import java.awt.Component

 import java.awt.Font

 import java.awt.Graphics

 import java.awt.Graphics2D

 import java.awt.Image

 

 import java.awt.Toolkit

 import java.awt.RenderingHints

 import java.awt.font.FontRenderContext

 import java.awt.font.LineBreakMeasurer

 import java.awt.font.TextAttribute

 import java.awt.font.TextLayout

 import java.awt.geom.Point2D

 import java.awt.image.BufferedImage

 import java.awt.print.Book

 import java.awt.print.PageFormat

 import java.awt.print.Paper

 import java.awt.print.Printable

 import java.awt.print.PrinterException

 import java.awt.print.PrinterJob

 import java.text.AttributedString

 

 import javax.swing.JApplet

 

 

 

 public class PrintTest   implements Printable{

    /**

    * @param Graphic指明打印的图形环境

    * @param PageFormat指明打印页格式(页面大小以点为计量单位,1点为1英才的1/72,1英寸为25.4毫米。A4纸大致为595×842点)

    * @param pageIndex指明页号

    **/

    public int print(Graphics gra, PageFormat pf, int pageIndex) throws PrinterException {

        System.out.println("pageIndex="+pageIndex)

        Component c = null

     备败  //print string

       String str = "中华民族是勤劳、勇敢和富有智慧的伟大民族。"

       //转换成Graphics2D

       Graphics2D g2 = (Graphics2D) gra

       //设置打印颜色为黑色

       g2.setColor(Color.black)

 

       //打印起点坐标

       double x = pf.getImageableX()

       double y = pf.getImageableY()

        

       switch(pageIndex){

          case 0:

            //设置打印字体(字体名称、样式和点大小)(字体名称可以握滚禅是物理或者逻辑名称)

  段尘          //Java平台所定义的五种字体系列:Serif、SansSerif、Monospaced、Dialog 和 DialogInput

            Font font = new Font("新宋体", Font.PLAIN, 9)

            g2.setFont(font)//设置字体

            //BasicStroke   bs_3=new   BasicStroke(0.5f)   

            float[]   dash1   =   {2.0f} 

            //设置打印线的属性。

            //1.线宽 2、3、不知道,4、空白的宽度,5、虚线的宽度,6、偏移量

            g2.setStroke(new   BasicStroke(0.5f,   BasicStroke.CAP_BUTT,   BasicStroke.JOIN_MITER,   2.0f,   dash1,   0.0f))  

            //g2.setStroke(bs_3)//设置线宽

            float heigth = font.getSize2D()//字体高度

            System.out.println("x="+x)

            // -1- 用Graphics2D直接输出

            //首字符的基线(右下部)位于用户空间中的 (x, y) 位置处

            //g2.drawLine(10,10,200,300) 

            

            Image src = Toolkit.getDefaultToolkit().getImage("D:\\EclipseWorkSpace3.1\\Kfc-wuxi\\WebRoot\\image\\KFC.jpg")

            g2.drawImage(src,(int)x,(int)y,c)

            int img_Height=src.getHeight(c)

            int img_width=src.getWidth(c)

            //System.out.println("img_Height="+img_Height+"img_width="+img_width) 

            

            g2.drawString(str, (float)x, (float)y+1*heigth+img_Height)

            g2.drawLine((int)x,(int)(y+1*heigth+img_Height+10),(int)x+200,(int)(y+1*heigth+img_Height+10))

            

            g2.drawImage(src,(int)x,(int)(y+1*heigth+img_Height+11),c)

            

          return PAGE_EXISTS

          default:

          return NO_SUCH_PAGE

       }

       

    }

 

 

 public static void main(String[] args) {

     

     //    通俗理解就是书、文档

     Book book = new Book()

     //    设置成竖打

     PageFormat pf = new PageFormat()

     pf.setOrientation(PageFormat.PORTRAIT)

     //    通过Paper设置页面的空白边距和可打印区域。必须与实际打印纸张大小相符。

     Paper p = new Paper()

     p.setSize(590,840)//纸张大小 

     p.setImageableArea(10,10, 590,840)//A4(595 X 842)设置打印区域,其实0,0应该是72,72,因为A4纸的默认X,Y边距是72

     pf.setPaper(p)

     //    把 PageFormat 和 Printable 添加到书中,组成一个页面

     book.append(new PrintTest(), pf)

 

      //获取打印服务对象

      PrinterJob job = PrinterJob.getPrinterJob()      

      // 设置打印类

      job.setPageable(book)

      

      try {

          //可以用printDialog显示打印对话框,在用户确认后打印;也可以直接打印

          //boolean a=job.printDialog()

          //if(a)

          //{        

          job.print()

          //}

      } catch (PrinterException e) {

          e.printStackTrace()

      }

    }

 }

eclipse中的javaw.exe是Sun Microsystems公司的相关网络协议软件。

跟java命令相对的,运行java命令时,会出现并保持一个console窗口,程序中的信息可以通过System.out在console内轿丛型输出,而运行javaw,开始时会出现console,当主程序调用之后,console就会消失;

javaw 大多用来运行GUI程序

注释: javaw.exe 是存放在 "C:\Program Files" 下的子目录 - 一般是 C:\WINDOWS\system32\ 或 C:\Program Files\Java\jre1.5.0_02\bin\。

javaw.exe是jre的一部分。

jre(java runtime environment),就是java程序的运行环境闭猜。用户所写的java程序在经过javac编译后会形成字符行文件,这个java的中间文件,计算机是看不懂的,而这个文件是给jvm(java的虚拟机)用的,由jvm进行解释后形成机器语言给计算郑州机。而这个jvm就在jre中,也就是说java程序的运行要有jre来担当。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12466085.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存