• 大小: 64KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-15
  • 语言: Java
  • 标签: Java  打印  工具类  

资源简介

以前做项目时候为了实现证书打印做的简单封装,使用方便,只需给定证书底版图的路径以及文字样式和坐标即可。代码以项目的方式提供(内含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


评论

共有 条评论