"Java编程中的打印功能实现案例" 在Java编程中,打印代码是一个常见的需求,尤其是处理文档或图像时。下面将详细解释这个小案例中的关键知识点。 首先,我们看到导入了一系列`javax.print`包下的类,这些是Java Print Service API的核心组件,用于处理打印任务。`javax.print`接口提供了在Java应用程序中与打印机进行交互的能力。 1. **`PrintService`**: 这个接口代表了打印机服务,它可以执行打印任务。`PrintServiceLookup`类用于查找系统中的可用打印服务。 2. **`Doc`**: `Doc`接口代表要打印的数据。在这个案例中,数据是文件的内容,通过`DocFlavor`指定数据的类型。 3. **`DocFlavor`**: 定义了数据的“口味”或格式,如`DocFlavor.INPUT_STREAM.AUTOSENSE`表示自动检测输入流的数据类型。这允许Java自动识别文件内容的格式。 4. **`DocPrintJob`**: 代表一个打印作业,是实际执行打印操作的对象。可以通过`PrintService`获取`DocPrintJob`实例。 5. **`DocAttributeSet` 和 `PrintRequestAttributeSet`**: 这些接口用于设置打印参数,比如纸张大小、方向、颜色等。`HashDocAttributeSet`和`HashPrintRequestAttributeSet`是它们的实现,可以存储多个属性。 6. **`JFileChooser`**: 这是一个 Swing 组件,用于让用户选择文件。在案例中,它用于打开文件选择对话框,虽然在这个具体例子中没有使用。 7. **`File` 类**: 用于处理文件对象,包括读取文件、检查文件是否存在等功能。 在`printFileAction()`方法中,程序首先尝试打开一个文件,然后创建一个`PrintRequestAttributeSet`来设置打印选项。接着,定义`DocFlavor`为自动检测模式,意味着Java会尝试根据输入流内容自动确定数据格式。然后,创建`SimpleDoc`对象,将文件内容和其数据类型(`DocFlavor`)传入。最后,获取`PrintService`,并通过它创建一个`DocPrintJob`,将`Doc`对象和`PrintRequestAttributeSet`传递给`print()`方法,从而执行打印操作。 这个案例简化了打印过程,通常在实际应用中,可能需要根据具体需求添加更多的打印设置和错误处理。例如,用户可能需要选择打印机、调整页面设置,或者处理文件打开失败等情况。Java Print Service API 提供了强大且灵活的打印功能,开发者可以根据需要对其进行扩展和定制。
import java.io.FileInputStream;
import javax.print.Doc;
import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.ServiceUI;
import javax.print.SimpleDoc;
import javax.print.attribute.DocAttributeSet;
import javax.print.attribute.HashDocAttributeSet;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.swing.JFileChooser;
public class PrintImage {
public void printFileAction()
{
// //构造一个文件选择器,默认为当前目录
// JFileChooser fileChooser = new JFileChooser(SystemProperties.USER_DIR);
// int state = fileChooser.showOpenDialog(this);//弹出文件选择对话框
// if (state == fileChooser.APPROVE_OPTION)//如果用户选定了文件
// {
File file = new File("D:\\svn.txt");//fileChooser.getSelectedFile();//获取选择的文件
System.out.println(file.exists());
//构建打印请求属性集
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
//设置打印格式,因为未确定文件类型,这里选择AUTOSENSE
下载后可阅读完整内容,剩余2页未读,立即下载
- 粉丝: 2
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦