资源简介
以前做项目时候为了实现证书打印做的简单封装,使用方便,只需给定证书底版图的路径以及文字样式和坐标即可。代码以项目的方式提供(内含Demo)。
代码片段和文件信息
package util;
import java.awt.*;
import java.awt.print.*;
import java.util.ArrayList;
/**
* 证书打印服务类
*
* @author Zhang Jiupeng
*/
public class CertificatePrinter implements Printable {
PrintContent printContent;
public CertificatePrinter(PrintContent printContent) {
this.printContent = printContent;
}
@Override
public int print(Graphics graphics PageFormat pageFormat int pageIndex) throws PrinterException {
Graphics2D g2 = (Graphics2D) graphics;
double startX = pageFormat.getImageableX();
double startY = pageFormat.getImageableY();
switch (pageIndex) {
case 0:
if (printContent.getBackgroundImage() != null) {
g2.drawImage(printContent.getBackgroundImage() (int) startX (int) startY null);
}
for (Text t : printContent.getTextPool()) {
Font font = new Font(t.getFontFamily() t.getFontstyle() t.getFontSize());
g2.setFont(font);
graphics.setColor(t.getColor());
graphics.drawString(t.getContent() (int) startX + t.getPosX()
(int) startY + t.getPosY() + (int)font.getSize2D());
}
return PAGE_EXISTS;
default:
return NO_SUCH_PAGE;
}
}
public void doPrint() {
Paper paper = new Paper();
paper.setSize(590 840);
paper.setImageableArea(72 72 590 840);
PageFormat pageFormat = new PageFormat();
pageFormat.setOrientation(PageFormat.PORTRAIT);
pageFormat.setPaper(paper);
Book book = new Book();
book.append(this pageFormat);
PrinterJob job = PrinterJob.getPrinterJob();
job.setPageable(book);
try {
boolean checkOption = job.printDialog();
if (checkOption) {
job.print();
}
} catch (PrinterAbortException e) {
System.err.println(“提示:打印操作已取消!“);
} catch (PrinterException pe) {
pe.printStackTrace();
}
}
}
/**
* 打印上下文类
*
* @author Zhang Jiupeng
*/
class PrintContent {
private Image backgroundImage;
private ArrayList textPool;
public PrintContent() {
textPool = new ArrayList<>();
}
public Image getBackgroundImage() {
return backgroundImage;
}
public void setBackgroundImage(String backgroundImagePath) {
this.backgroundImage = Toolkit.getDefaultToolkit()
.getImage(backgroundImagePath);
}
public void addText(Text text) {
textPool.add(text);
}
public ArrayList getTextPool() {
return textPool;
}
}
/**
* 文本单元类
*
* @author Zhang Jiupeng
*/
class Text {
private String content;
private Color color;
pri
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 301 2015-11-06 21:17 CertificatePrinter\.classpath
文件 394 2015-11-06 21:17 CertificatePrinter\.project
文件 598 2015-11-06 21:17 CertificatePrinter\.settings\org.eclipse.jdt.core.prefs
文件 3424 2015-11-06 21:18 CertificatePrinter\bin\util\CertificatePrinter.class
文件 1750 2015-11-06 21:21 CertificatePrinter\bin\util\Demo.class
文件 1223 2015-11-06 21:18 CertificatePrinter\bin\util\PrintContent.class
文件 1916 2015-11-06 21:18 CertificatePrinter\bin\util\Text.class
文件 75545 2015-11-06 21:27 CertificatePrinter\data\testBg.jpg
文件 4502 2015-11-06 21:18 CertificatePrinter\src\util\CertificatePrinter.java
文件 1762 2015-11-06 21:24 CertificatePrinter\src\util\Demo.java
目录 0 2015-11-06 21:23 CertificatePrinter\bin\util
目录 0 2015-11-06 21:23 CertificatePrinter\src\util
目录 0 2015-11-06 21:23 CertificatePrinter\.settings
目录 0 2015-11-06 21:23 CertificatePrinter\bin
目录 0 2015-11-06 21:27 CertificatePrinter\data
目录 0 2015-11-06 21:23 CertificatePrinter\src
目录 0 2015-11-06 21:23 CertificatePrinter
----------- --------- ---------- ----- ----
91415 17
相关资源
- 图书管理系统 servlet+jsp适合初学者
- java openCV 人脸识别 找茬
- 基于java旅游网站毕业论文
- JAVA动物识别系统266510
- java猴子选王
- java8+tomcat8+struts2.5+spring4.3+hibernate5.2框
- jdbc+控制台java+oracle模拟银行程序MVC思
- Java版剑指Offer全部测试用例
- java秒杀(高并发)视频教程
- 基于UDP协议的数据包收发程序代码+报
- 基于java和mysql的学生信息管理系统
- 西电软院java上机大作业全
- JavaATM机取款模拟程序
- mail.jar+activation.jar+additional.jar
- java打砖块源码加注释
- jxl完美实现Excel加水印(内及jar包,基
- javadbf.jar-修复中文乱码-部分生僻字显
- 数据结构课设 java版 校园导航系统
- Java实现音视频通讯
- pcap文件解析,并且按照五元组分类
- javaweb 图片上传
- 学生成绩管理系统java源代码
- commons-collections-3.2.jar - Java包页
- 基于rxtx的java串口通信
- Elasticsearch5.5.1 JAVA客户端TransportClien
- java-client-5.0.4.jar
- java实现聊天室功能全部代码,有界面
- JAVA 银行系统
- java实现的爬虫,亲自编写,测试通过
- 拼单词游戏
评论
共有 条评论