`
lgl669
  • 浏览: 173439 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

关于java打印功能的最简单实现的学习笔记

    博客分类:
  • java
阅读更多


<script type="text/javascript"> document.body.oncopy = function() { if (window.clipboardData) { setTimeout(function() { var text = clipboardData.getData(&quot;text&quot;); if (text &amp;&amp; text.length&gt;300) { text = text + &quot;\r\n\n本文来自CSDN博客,转载请标明出处:&quot; + location.href; clipboardData.setData(&quot;text&quot;, text); } }, 100); } } </script><script class="blogstory">function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&amp;u='+escape(d.location.href)+'&amp;c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script>

/*
关于java打印功能的最简单实现的学习笔记
*/

import javax.print.*;
import javax.print.attribute.*;
import javax.print.attribute.standard.*;
import javax.print.event.*;

import java.net.URL;

public class PrintDemo{
 public static void main(String[] args){

//第一步:定位打印服务(打印机)

  //定义打印机支持的文档类型
  DocFlavor fr = DocFlavor.URL.GIF;
  /*
  创建DocFlavor实例需要两个参数(String),
  一个是表示MIME类型,一个是表示类的名称
  */
  //很多情况下,不一定要创建DocFlavor实例
  PrintService[] allps = PrintServiceLookup.lookupPrintServices(null,null);
   //检索所有的可用打印机服务
    for(int i=0;i<allps.length;i++){
   System.out.println(allps[i].getName());  
  }
  //通常情况下只要获取默认的打印服务就ok了
  PrintService defaultps = PrintServiceLookup.lookupDefaultPrintService();
  System.out.println(defaultps.getName());
  //定义属性(javax.print.attribute包)
  PrintRequestAttributeSet attrs = new HashPrintRequestAttributeSet();
  //这里的属性不能为null,否则,IIlegalArgumentException
  PrintService select = ServiceUI.printDialog(null,100,100,allps,defaultps,null,attrs);
  
//第二步:创建打印任务
  
  DocPrintJob job = defaultps.createPrintJob();//?这里的services是调用哪个对象,需要进一步验证
//第三步:获取打印数据
 try{
  URL url = new URL("http://localhost:8080/demo/printtest.gif ");
  DocFlavor flavor = DocFlavor.URL.GIF;
  SimpleDoc doc = new SimpleDoc(url,flavor,null);

//第四步:初始化打印
  //javax.print.attribute.standard包中有很多有用的实现!
  //attrs.add(new Copies(2));
  attrs.add(OrientationRequested.LANDSCAPE);
  job.print(doc,attrs);

//监控打印任务(可选)
  job.addPrintJobListener(new PrintJobAdapter(){
   public void printDataTransferCompleted(PrintJobEvent event){
    System.out.println("数据传输成功!!");
   }
   public void printJobNoMoreEvents(PrintJobEvent event){
    System.out.println("该接口中没有更多的方法可以让打印机调用!!");
   }
   public void printJobCanceled(PrintJobEvent event){
    System.out.println("取消打印服务!!");
   }
   public void printJobCompleted(PrintJobEvent event){
    System.out.println("打印任务完成!!");
   }
   public void printJobFailed(PrintJobEvent event){
    System.out.println("打印任务失败!!");
   }
   public void printJobRequiresAttention(PrintJobEvent event){
    System.out.println("可以恢复的错误,如打印机缺纸!!");
   }
  });
  
  
 }catch(Exception e){
  e.printStackTrace();
 } 
  
}

}

分享到:
评论

相关推荐

    CoreJava学习笔记

    ### CoreJava学习笔记 #### 一、JAVA特点与运行原理 **JAVA特点:** 1. **简单性**:Java的设计者们将C++语言中许多不易理解和容易混淆的部分去除,使得Java更容易理解与掌握。 2. **面向对象**:Java几乎一切都...

    Java学习笔记_web服务器实现和源码

    在Java学习过程中,Web服务器的实现是一个重要的环节。本文主要探讨了如何使用Java构建一个简单的Web服务器,并涉及到了相关的输入输出流操作、编程思路、调试方法以及遇到的问题和下一步的计划。 首先,字符串操作...

    java的学习笔记和简单实验程序

    以下是从给定的文件内容中提炼出的一些Java学习的关键知识点: 1. **循环与嵌套循环**: 在第一个例子中,使用了嵌套循环来打印特定的图形。`for`循环是Java中的基本迭代结构,用于重复执行一段代码,直到满足某个...

    JAVA经典教材笔记

    ### JAVA经典教材笔记知识点梳理 #### 第一章:JAVA概述及开发环境搭建 - **Java学习概述** - Java作为一种广泛使用的编程语言,其学习路径包括掌握基本语法、理解面向对象编程思想、熟悉标准库使用等。 - **JAVA...

    java笔记_Java笔记_

    Java是世界上最流行的编程语言之一,尤其在企业级应用开发领域占据主导地位。这份"java笔记"是专为初学者设计的,旨在帮助那些对编程没有基础的人快速掌握Java核心技术。笔记采用Ediplus编辑器编写,这是一款轻量级...

    java从入门到精通视频教程学习笔记全

    1994年,高斯林在硅谷大会上展示了Java的功能,引起了业界的广泛关注。1995年,Sun公司正式发布了Java的第一个版本,现在最新的版本是JDK 7.0。 Java有三个主要平台,分别是: 1. J2SE(Java Development Kit ...

    ant 学习 笔记 一个简单的java 编译部署实例

    根据提供的文件信息,这里将深入解析“ant学习笔记:一个简单的java编译部署实例”,涵盖标题、描述、标签以及部分内容中提及的关键知识点。 ### Apache Ant简介 Apache Ant是一款开源的Java环境下的自动化构建...

    韩顺平java从入门到精通视频教程(全94讲)学习笔记整理(齐全)

    ### 韩顺平Java从入门到精通视频教程学习笔记整理 #### Java开发平台与运行机制 - **J2SE(Java 2 Platform Standard Edition)**:Java的标准版平台,适用于开发桌面应用程序,包含了Java的核心类库和技术。 - **...

    MLDN——Java Web 开发实战经典源码笔记(基础篇)|

    《MLDN——Java Web开发实战经典源码笔记(基础篇)》是一本专注于Java Web开发的实战教程,旨在帮助读者从零开始掌握Web应用的开发技术。这本书通过深入浅出的讲解和丰富的实例代码,全面介绍了Java Web开发的基础...

    java 学习笔记

    ### Java学习笔记:深入理解JDK安装、配置与类的基础 #### JDK的安装与配置 在开始Java编程之旅前,首要任务是安装JDK(Java Development Kit),这是Java开发环境的核心,包含了编译、运行Java程序所需的所有工具...

    Java学习笔记(必看经典)

    JAVA的面向对象编程--------课堂笔记 面向对象主要针对面向过程。 面向过程的基本单元是函数。 什么是对象:EVERYTHING IS OBJECT(万物皆对象) 所有的事物都有两个方面: 有什么(属性):用来描述对象。 能够做...

    JAVA初学者笔记 使用JAVA理解逻辑基础-菜鸟入门(简单易懂)

    【JAVA初学者笔记:理解逻辑基础】 在编程领域,Java是一种广泛应用的高级编程语言,尤其适合初学者。本文将从基础出发,帮助你理解和掌握Java编程的基本概念。 首先,了解什么是程序。程序是一系列有序指令的集合...

    整理后java开发全套达内学习笔记(含练习)

    implements (关键字) 实现 ['implimәnt] import (关键字) 引入(进口,输入) Info n.信息 (information [,infә'meiʃәn] ) Inheritance [java] 继承 [in'heritәns] (遗传,遗产) initialize 预置 初始化 [i'ni...

    java入门及教学案例及笔记

    "开始,这是了解如何在Java中输出文本的最简单方式。 - **数据结构与算法**:通过实际案例学习数组、链表、栈、队列等基础数据结构,以及排序、搜索等常见算法。 5. **笔记部分**: - **理论讲解**:笔记可能涵盖...

    LotusDomino学习笔记.doc

    ### LotusDomino学习笔记知识点概览 #### 1. 选取视图的列的内容 (@Trim @DbColumn) - **@Trim**: 是一个内置的LotusScript函数,用于去除字符串两端的空白字符。 - **@DbColumn**: 此函数用于获取指定列的信息。...

    java日常笔记安装包.rar

    这份"java日常笔记安装包"包含了关于Java学习的重要知识点,很适合初学者和有经验的开发者用来巩固基础或查阅参考资料。 1. **Java环境搭建**:首先,学习Java需要在计算机上安装Java Development Kit (JDK),它...

    个人笔记--JAVA基础

    ### 个人笔记--JAVA基础 #### 一、初识Java **1.1. Java语言是什么** Java是一种广泛使用的高级编程语言,由Sun Microsystems于1995年发布。它被设计为简单、面向对象、分布式、解释型、健壮、安全、与体系结构...

    简单计算器Java编的

    它可能包含了关于如何组织代码、实现特定功能的具体步骤,或者是开发者在编写计算器过程中遇到的问题及解决方案。 7. **学习价值** 这个简单的Java计算器项目是学习基础Java语法、控制流、异常处理以及用户输入...

Global site tag (gtag.js) - Google Analytics