swing 打印

我在使用swing做一个程序,想要点击一个按钮然后打印。添加监听器和打印一个文件(例如txt文件),这我都知道但是我现在想打印出一个证书,证书中的内容是从数据库中取得的,证书要有一定的格式,怎么办呢?谁能帮一下,谢了(证书的样式和我swing的界面的截图都已经在附件中上传了)
[b]问题补充:[/b]
我试一试吧,感觉自己画太麻烦了。
[b]问题补充:[/b]
能给个自己画的打印的例子么?
[b]问题补充:[/b]
lovewhzlq
你看我上传的图片了么?我要的就是这样 的效果。这是什么格式个文件,该怎么实现呢。给个你们用过的打印的例子行不

我贴个例子吧:
[code="java"]

public class Printer {

/**
 * @param args
 */
public static void main(String[] args) {
    JFrame jf = new JFrame();
    JButton jb = new JButton("Print");
    jb.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {

            PrinterJob job = PrinterJob.getPrinterJob();
            PageFormat pageformat = new PageFormat();

            Paper paper = new Paper();
            paper.setSize(730, 850);
            paper.setImageableArea(0, 0, 730, 850);
            pageformat.setPaper(paper);

            Book book = new Book();
            Printable testPrintable = new Printable() {

                @Override
                public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
                    graphics.drawString("这是一个test", 0, 0);
                    graphics.drawString("这是一个test", 0, 100);
                    graphics.drawString("这是一个test", 0, 200);
                    try {
                        Image img = ImageIO.read(new File("D:\\BottomBar.png"));
                        graphics.drawImage(img, 100, 100, null);
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    return Printable.PAGE_EXISTS;
                }
            };
            book.append(testPrintable, pageformat);

            job.setPageable(book);

            boolean doPrint = job.printDialog();

            if (doPrint) {
                try {
                    job.print();
                } catch (Exception ex) {
                }
            }
        }

    });
    jf.setSize(400, 300);
    jf.getContentPane().add(jb);
    jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    jf.setVisible(true);

}

}
[/code]
用drawXxxx方法自己定位

这个得自己画吧!好像没见过套样式来打印的包哦!

打印出一个证书,证书中的内容是从数据库中取得的,证书要有一定的格式

这个需求就是要”打印出一个证书“嘛

你就在点击打印证书的时候,用jdbc去从数据库中取得的内容,然后根据一定的格式输出数据到一个文件(新建一个文件),你都知道”打印一个文件",那自然就没问题了嘛

这个就是报表的格式了,
要这种效果你得去研究jasperreport
http://macrochen.iteye.com/blog/164101
http://www.blogjava.net/fastunit/archive/2008/01/16/175687.html
http://jasperreports.sourceforge.net/

思路已经给你了,代码或例子可就没有了