`

java调用打印机打印自定义的图片

    博客分类:
  • J2EE
 
阅读更多
package test;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;

import javax.imageio.ImageIO;
import javax.imageio.stream.ImageOutputStream;
import javax.print.Doc;
import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
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.print.attribute.standard.MediaPrintableArea;

public class QingPrint {
public static void main(String[] args) throws Exception {

// 构建打印请求属性集
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
// 设置打印格式,因为未确定类型,所以选择autosense
DocFlavor flavor = DocFlavor.INPUT_STREAM.JPEG;
// 查找所有的可用的打印服务
PrintService[] printService = PrintServiceLookup.lookupPrintServices(
flavor, pras);
// 如果没有获取打印机
if (printService.length == 0) {
// 终止程序
return;
}
// 定位默认的打印服务
PrintService defaultService = PrintServiceLookup
.lookupDefaultPrintService();
// 获得打印工作
DocPrintJob job = defaultService.createPrintJob();
DocAttributeSet das = new HashDocAttributeSet();
das.add(new MediaPrintableArea(1, 1, 4,3, MediaPrintableArea.INCH));
// 设置打印内容
Doc doc = new SimpleDoc(getinputstream(), flavor, das);
// 出现设置对话框
// PrintService service = ServiceUI.printDialog(null, 200,
// 00,printService, defaultService, flavor, pras);
// if (service != null) {
// 开始打印
job.print(doc, pras);
getinputstream().close();
// }
}

public static ByteArrayInputStream getinputstream() throws Exception {
// ByteArrayInputStream inputStream;
// 在内存中创建图象
int width = 300, height = 200;
BufferedImage image = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);
// 获取图形上下文
Graphics g = image.getGraphics();
// 设定背景色
g.setColor(new Color(250, 250, 250));
g.fillRect(0, 0, width, height);
// 设定字体
g.setFont(new Font("宋体", Font.BOLD, 18));
// 随机产生155条干扰线,使图象中的认证码不易被其它程序探测到
g.setColor(new Color(0, 0, 0));

// g.drawLine(0,0,50,50);

// 取随机产生的认证码(6位数字)
g.drawString("中国", 10, 30);
g.drawString("中国", 60, 30);
g.drawString("中国", 110, 30);
g.drawString("中国", 160, 30);
g.drawString("中国", 210, 30);
g.drawString("山东", 10, 60);
g.drawString("山东", 60, 60);
g.drawString("山东", 110, 60);
g.drawString("山东", 160, 60);
g.drawString("山东", 210, 60);
g.drawString("济南", 10, 90);
g.drawString("济南", 60, 90);
g.drawString("济南", 110, 90);
g.drawString("济南", 160, 90);
g.drawString("济南", 210, 90);
g.drawString("洪楼", 10, 120);
g.drawString("洪楼", 60, 120);
g.drawString("洪楼", 110, 120);
g.drawString("洪楼", 160, 120);
g.drawString("洪楼", 210, 120);
g.drawString("花园", 10, 150);
g.drawString("花园", 60, 150);
g.drawString("花园", 110, 150);
g.drawString("花园", 160, 150);
g.drawString("花园", 210, 150);
// 图象生效
g.dispose();
ByteArrayOutputStream output = new ByteArrayOutputStream();
ImageOutputStream imageOut = ImageIO.createImageOutputStream(output);
ImageIO.write(image, "JPEG", imageOut);
imageOut.close();
ByteArrayInputStream input = new ByteArrayInputStream(
output.toByteArray());
return input;
}

}
分享到:
评论

相关推荐

    Web Service调用打印机打印自定义表单

    Web服务调用打印机打印自定义表单是一种常见的技术应用场景,特别是在企业级系统中,需要将数据转换为可打印的文档格式。在这个过程中,开发者通过调用Web Service接口,实现远程控制本地或网络打印机来完成打印任务...

    java调用打印机打印的相关教程

    ### Java调用打印机打印的相关教程 #### 一、Java打印API简介 Java打印API主要包含在`java.awt.print`包中。随着Java的发展,特别是从JDK 1.4开始,Java提供了更为丰富的打印支持,这主要体现在`javax.print`及其...

    JAVA连接打印机打印小票

    总的来说,JAVA连接打印机打印小票涉及到硬件交互、网络编程和可能的本地库调用。理解和掌握这些知识点,能帮助开发者灵活应对不同场景下的小票打印需求。在实践中,记得不断调试和优化,以确保打印效果和效率。

    Java打印小票自定义小票纸张大小,分辨率

    在Java编程环境中,进行小票打印时,我们经常会遇到需要自定义小票纸张大小和分辨率的需求。这通常涉及到对打印机API的深入理解和利用。以下将详细解释如何实现这一目标。 首先,Java提供了`java.awt.print`包,该...

    JAVA网络调用打印机工具类

    本工具类实现了这一需求,通过Java调用网络打印机来完成打印任务,并且支持自定义打印内容,如快递单号、发票等。本文将详细介绍该工具类的关键实现逻辑。 #### 二、核心功能 - **自动化打印**:根据用户订单信息...

    JAVA通过网络调用网络打印机的工具类

    - `paperW` 和 `paperH`: 分别表示打印纸张的宽度和高度,这些值可以通过调用打印机获取。 - `printType`: 打印类型,用于区分打印的是快递单还是发票。 - `map`: 存储打印所需的各种参数,如订单信息等。 ##### ...

    java实现sdk斑马打印机打印。

    在本文中,我们将深入探讨如何使用Java SDK与斑马(Zebra)打印机进行交互,以实现文字、图片、条形码和二维码的打印功能。斑马打印机因其在工业和商业领域的广泛应用而广受赞誉,其SDK提供了丰富的功能,使得开发者...

    Java实现斑马打印机ZPL指令打印,源码,可运行

    在Java环境下,我们可以编写程序来发送ZPL指令到斑马打印机,实现打印任务。本项目提供了可运行的源码,使得开发者无需依赖ts24.lib库就能处理中文和二维码打印。 首先,理解ZPL指令是实现斑马打印机打印的基础。...

    java连接北洋牌打印机打印二维码

    北洋打印机的驱动程序需要正确安装在运行Java应用程序的系统上,这样才能通过JNI调用驱动中的函数完成打印任务。 - 驱动加载:在Java中,可能需要使用`Class.forName`加载包含驱动调用的类,然后通过反射调用相应...

    使用java实现,通过zpl指令调用 zebra打印机打印标签,含二维码及中文

    在本文中,我们将深入探讨如何使用Java编程语言来实现ZPL指令,以便调用Zebra打印机进行标签打印,包括二维码和中文字符。ZPL(Zebra Programming Language)是Zebra公司开发的一种专用于控制其标签打印机的语言,它...

    java调用本地打印机

    在Java编程环境中,调用本地打印机是一项常见的任务,特别...总之,Java提供了强大的打印功能,通过`java.print`包可以方便地调用本地打印机。理解并熟练掌握这些API,能够帮助开发者构建出高效且灵活的打印解决方案。

    java打印html

    本文将深入探讨如何使用纯Java API来实现HTML(包括HTML5)的打印服务,以及如何预先设置默认的打印机。 首先,我们要了解Java中的`java.awt.print`包,这个包提供了用于打印的基本接口和类。其中,`PrinterJob`类...

    java使用jacob包调用bartender软件自定义行列数批量打印标签

    若是下载本地测试需要有修改,包中文件不一定全部用到

    java实现针式打印机套打功能

    总之,Java和SpringBoot为我们提供了强大的工具来实现针式打印机的套打功能,无论是简单的文档打印还是复杂的多联单据处理,都能通过编程灵活控制。关键在于理解打印服务模型,正确配置打印参数,并进行充分的测试以...

    java打印word

    Windows环境下的Java应用程序可以通过API调用来实现对Word文档的打印。下面将详细讲解这个过程。 首先,我们需要理解Java中的打印机制。Java提供了一个名为`java.awt.print`的包,它包含了一系列类用于处理打印任务...

    JAVA调用zpl条码打印机打印中文打印及网络打印实例

    总的来说,通过JAVA调用ZPL实现中文打印和网络打印,不仅需要掌握JAVA的网络编程,还需要理解ZPL指令系统,以及字符编码的相关知识。这是一项挑战性但实用的技术,对于那些需要自动化打印解决方案的开发者来说尤其有...

    JAVA连接打印机调用打印功能

    在Java编程语言中,连接打印机并调用打印功能是一项常见的任务,尤其对于处理报表、文档或其他需要物理输出的场景。以下是一些关于如何在Java中实现这一功能的关键知识点: 1. **Java Print Service API**: Java...

    浏览器不弹出打印窗口, 直接调动打印机打印 静默打印程序

    针对“浏览器不弹出打印窗口, 直接调动打印机打印 静默打印程序”的需求,我们将主要探讨如何使用Java编程语言实现这一功能。 首先,Java提供了丰富的API来处理打印任务,这些API集中在`java.awt.print`和`javax....

    JAVA调用zpl条码打印机打印中文实例

    在本文中,我们将深入探讨如何使用JAVA调用ZPL(Zebra Programming Language)条码打印机来打印中文实例。ZPL是一种编程语言,专门用于配置和控制Zebra品牌的条码和标签打印机,它允许用户创建自定义的标签设计,...

    Print.zip Java实现Printtable类,打印表格

    通过调用`PrinterJob.getPrinterJob().setPrintService(PrintService service)`,可以选择特定的打印机进行打印。`PrinterJob.printDialog()`方法可以显示一个对话框让用户选择打印机。 6. **PageFormat和Paper**:...

Global site tag (gtag.js) - Google Analytics