当前位置: 首页 > news >正文

工厂网站建设/学电脑在哪里报名

工厂网站建设,学电脑在哪里报名,湖北建设厅,商城网站免费建设前段时间由于需要做了个打印,主要是打印学生证。需求很简单,就是在规定的坐标点打印规定的内容即可。为了实现,却费尽了周折,不过还好,在大家的帮助下,终于实现了最终想要的功能。其代码如下:pa…

前段时间由于需要做了个打印,主要是打印学生证。

需求很简单,就是在规定的坐标点打印规定的内容即可。

为了实现,却费尽了周折,不过还好,在大家的帮助下,终于实现了最终想要的功能。

其代码如下:

package yourPackage;

import java.awt.Color;

import java.awt.Font;

import java.awt.Graphics;

import java.awt.Graphics2D;

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.util.List;

import javax.print.PrintService;

import javax.print.PrintServiceLookup;

import javax.print.attribute.HashAttributeSet;

import javax.print.attribute.standard.PrinterName;

/**

* 打印服务程序

* @author Administrator

*

*/

@SuppressWarnings("unchecked")

public class PrintServiceTest implements Printable {

private String printInfo;//打印内容

private int rowSpace;//打印行距

private int rowNum = 0;//打印行数从0开始算起

private int[] regNums ;//注册序号的集合,得到他就可以算出要打多少行,和每行Y轴的坐标

/**

* 下面的数组中封装的是数组对象,数组对象中封装了三个子对象,一个被打印的内容

* 一个是被打印内容的X坐标,最后一个是被打印内容的Y坐标,注意坐标的单位是 像素(点)

* 一点 = 1/72英寸, 一英寸 = 25.4mm

*/

private List infoList;

private int printNum ;//打印份数从0开始算起

public int[] getRegNums() {

return regNums;

}

public List getInfoList() {

return infoList;

}

public void setInfoList(List infoList) {

this.infoList = infoList;

}

public void setRegNums(int[] regNums) {

this.regNums = regNums;

}

public int getPrintNum() {

return printNum;

}

public void setPrintNum(int printNum) {

this.printNum = printNum;

}

public int getRowSpace() {

return rowSpace;

}

public void setRowSpace(int rowSpace) {

this.rowSpace = rowSpace;

}

public String getPrintInfo() {

return printInfo;

}

public void setPrintInfo(String printInfo) {

this.printInfo = printInfo;

}

public int getRowNum() {

return rowNum;

}

public void setRowNum(int rowNum) {

this.rowNum = rowNum;

}

/**

* 只是打印写死的内容,但也可以根据上面的infoList来组织多条内容。

* 注意:此方法并没有把多余一页的打印情况考虑进去,即每个打印都会在一页中。

*/

public int print(Graphics graphics, PageFormat pageFormat, int pageIndex)

throws PrinterException {

//打印规定的份数

if(this.getPrintNum()!=0) {

//pageIndex 的值是从零开始的

if(pageIndex>(this.getPrintNum()-1)) {

return Printable.NO_SUCH_PAGE;

}

} else {

//pageIndex 的值是从0开始的,下面已经设置了打印一份,打印完一份时pageIndex就增1,所以当大于0后,即第一份已经完成

if(pageIndex>0) {

return Printable.NO_SUCH_PAGE;

}

}

Graphics2D g2 = (Graphics2D) graphics;

//g2.setPaint(Color.black);//设置颜色

g2.translate(pageFormat.getImageableX(), pageFormat.getImageableY());

Font font = new Font("宋体", Font.BOLD, 11);

g2.setFont(font);

g2.drawString("-----------------测试打印坐标为:X=50,Y=50---------", 50, 10);

g2.drawString("要打印的第一行", 0, 20);

return Printable.PAGE_EXISTS;//只有存在此页的时候,才会执行打印的方法

}

/**

* 打印方法

*/

public void print() throws PrinterException{

PrinterJob printerJob = PrinterJob.getPrinterJob();

Book book = new Book();

PageFormat pf = printerJob.defaultPage(); //得到printerJob 的默认页面格式。

Paper p = pf.getPaper();//得到默认页

//System.out.println("页面的 宽度"+p.getWidth()+";页面的高度:"+p.getHeight());

/*

* 要注意的是:下面的设置是去掉了页边距的设置,如果不考虑页边距的影响,可以不做此操作。

*/

p.setImageableArea(0, 0, p.getImageableWidth()+70, p.getImageableWidth()+70);

//System.out.println("可成像的宽度"+p.getImageableWidth()+";可成像的高度:"+p.getImageableHeight());

pf.setPaper(p);

//book.append(this, pf);

//

//printerJob.setPageable(book);

// 查找此环境的默认printservice

PrintService ps = PrintServiceLookup.lookupDefaultPrintService();

if (ps == null) {

System.out.println("无法找到打印机:");

return;

}

printerJob.setPrintService(ps);

//printerJob.pageDialog(pf);//设置打印页的属性

//printerJob.printDialog();//设置打印机的属性

printerJob.setCopies(1);//只打印一份

printerJob.setPrintable(this,pf);

printerJob.print();

}

public static void main(String[] args) {

PrintServiceTest myprinttest = new PrintServiceTest();

try {

myprinttest.print();

} catch (PrinterException e) {

e.printStackTrace();

}

}

/**

* 毫米转换为点数 (取整)

* @param mm 毫米数

* @return 点数

*/

public static int returnPointNo(int mm)

{

return 72*mm/25 ;

}

}

上面的被注释掉的部分,可以释放开,以查看效果,此代码用到的服务器上默认的打印机,当然也可以根据需求来使用指定名称的打印机。

相关的方法请参考:PrintServiceLookup 类的相关方法。

http://www.lbrq.cn/news/1261405.html

相关文章:

  • wordpress菜单导航插件/武汉久都seo
  • 网站建站素材/北京疫情又严重了
  • 溧阳做网站/公关公司经营范围
  • 水果网络营销策划书/windows优化
  • 成都小程序系统定制开发/当阳seo外包
  • 宜兴做网站多少钱/郑州搜狗关键词优化顾问
  • wordpress免ftp/seo怎么才能优化好
  • 惠州网站建设设计/外链代发
  • 郑州免费自助建站模板/广告位招商怎么找客户
  • 可信赖的南昌网站制作/seo排名计费系统
  • 北京网站建设推荐q479185700上快/好看的seo网站
  • 网站开发都有/电商seo优化是什么意思
  • 网站开发设计师培训/网站技术解决方案
  • wordpress变成小程序/深圳网站设计专业乐云seo
  • nginx环境下安装wordpress/合肥网站优化推广方案
  • 网站广告位投放/搜索引擎营销方法有哪些
  • 网站开发中数据库的设计原则/职业培训热门行业
  • 网站域名申请/考拉seo
  • 有哪些h5做的网站/站长工具在线平台
  • 交友系统网站建设/宁波网站建设与维护
  • 产品外观设计师/seo网站优化师
  • 网站建设论文linux/关键词优化需要从哪些方面开展?
  • 网站建设论文答辩自述/什么软件可以推广自己的产品
  • 网站主服务器所在地地址/微信管理软件哪个最好
  • ag bbin 网站开发/建站官网
  • 网站建设经验心得/百度指数网址
  • 网站备案要什么资料/专注于品牌营销服务
  • google 网站打不开/互动营销经典案例
  • 厦门优秀的网站设计/制作网页多少钱
  • 齐家网装修公司地址/谷歌seo优化
  • MySQL 基本操作入门指南
  • 抛出自定义异常
  • Python中的sys.path与PYTHONPATH全解析:模块导入路径的底层机制与最佳实践
  • Python篇---环境变量软件安装
  • 一加Ace5无法连接ColorOS助手解决(安卓设备ADB模式无法连接)
  • [硬件电路-143]:模拟电路 - 开关电源与线性稳压电源的详细比较