資源簡(jiǎn)介
以前做項(xiàng)目時(shí)候?yàn)榱藢?shí)現(xiàn)證書打印做的簡(jiǎn)單封裝,使用方便,只需給定證書底版圖的路徑以及文字樣式和坐標(biāo)即可。代碼以項(xiàng)目的方式提供(內(nèi)含Demo)。

代碼片段和文件信息
package?util;
import?java.awt.*;
import?java.awt.print.*;
import?java.util.ArrayList;
/**
?*?證書打印服務(wù)類
?*
?*?@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
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件????????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
評(píng)論
共有 條評(píng)論