用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();

}

}

}

java book打印机_java如何调用本地打印机进行图片打印相关推荐

  1. java打印图片_java如何调用本地打印机进行图片打印

    展开全部 用java实现本地e69da5e887aa3231313335323631343130323136353331333337396235打印:java.awt中提供了一些打印的API,要实现打 ...

  2. java连接打印机_JAVA实现连接本地打印机并打印文件的实现代码

    实现代码一 import javax.print.*; import javax.print.attribute.DocAttributeSet; import javax.print.attribu ...

  3. Web端调用本地打印机-Java实现

    实现思路: 用Java调用本地打印机实现功能,将java程序打包成exe可执行文件,在本地注册表中新增URL协议,最后web端通过该协议实现启动本地exe程序进行打印 实现过程: 1.下载32位TSC ...

  4. 服务器调用打印机进行文档打印,云服务器怎么调用本地打印机

    云服务器怎么调用本地打印机 内容精选 换一换 只有运行中的云服务器才允许用户登录.Windows操作系统用户名"Administrator".忘记密码,请先通过"重置密码 ...

  5. 使用JavaScript调用本地打印机

    在前端页面调用本地打印机的实现: 点击打印之后调出打印机 代码实现: # HTML代码 <!DOCTYPE html> <html lang="en"> & ...

  6. java 打印机编程_JAVA实现连接本地打印机并打印文件的实现代码

    JAVA实现连接本地打印机并打印文件的实现代码 发布时间:2020-08-31 15:52:25 来源:脚本之家 阅读:96 作者:piaoyunlive 实现代码一 import javax.pri ...

  7. PHP\Java\C#\Js\Go\Python调用小票打印机打印订单实现

    优声云打印机U7是成都优声科技有限公司推出的一款WIFI.4G联网的打印机.注意这是一款热敏58mm小票打印机,就是大家购物,外卖那样的收银小票. 在原来的小票打印机世界里,通常都是U口和蓝牙,更高级 ...

  8. java调用so库中的native方法_Java如何调用本地.so库里的方法

    首先在此之前希望你已经掌握了基本JNI常识的运用,比如Java代码如何调用本地native的方法,native方法如何访问本地变量,本地方法等以及其他相关的基础知识.在此我还是贴上Activity的部 ...

  9. Web端调用本地打印机-JS实现

    大概步骤: 1.安装打印机驱动,连接打印机 2.下载并部署TSCActiveX,下载地址 https://download.csdn.net/download/u010188178/10642451 ...

最新文章

  1. 了解机器学习回归的3种最常见的损失函数
  2. Python回顾与整理5:映像和集合类型
  3. 一个最为简单的jquery 分页实现方法!可以用用于理解js分页的原理。
  4. Python——为什么要在意:模块重载
  5. ipfs-hdfs分布式文件系统
  6. ubuntu安装postgreSQL 9.3
  7. IDEA 访问Maven私服与上传组件
  8. 22.11.16 IO day 8
  9. 压缩word的简单方法看这里
  10. kaldi中文语音识别(一):multi_cn
  11. 随机存储器(RAM),只读存储器(ROM),高速缓存(CACHE),内存,硬盘,CPU
  12. Error starting ApplicationContext.
  13. 【架构师面试-JVM原理-3】-JVM垃圾回收
  14. Spark MLlib数据挖掘2--基础统计分析
  15. 计算机中央的处理器由什么构成,计算机中央处理器CPU的由什么组成
  16. Linux/Unix 设计思想概述
  17. 使用计算机辐射最大,台式电脑哪里辐射最大
  18. 好以前写的一个java采集淘宝搜索页面商品数据的函数
  19. c#——InitializeComponent();
  20. 隆重推荐:外星人就在月球背面

热门文章

  1. 了解 TCP 系统调用序列
  2. POJ-29932996
  3. android 无障碍 webview,Android WebView使用
  4. 一款功能强大且专业好用的CAD图形创建工——corelcad 2021
  5. HDU 3636-Dragon Balls
  6. 【工具】OmniGraffle 激活码、UML模板型版
  7. Windows CMD命令行一启动就闪退问题解决
  8. python量化期权_如何20小时搞定Python量化期权实战?
  9. Elasticsearch 5.5 SQL语句转Java Client 及相关注意事项(三)
  10. 怎么申请邮箱?163邮箱如何注册使用?