【问题标题】:java.awt.print only prints the first pagejava.awt.print 只打印第一页
【发布时间】:2011-12-31 06:45:25
【问题描述】:

我正在尝试根据 oracle 网页中的打印示例打印一个列表,但由于某种原因它只会打印列表的第一页

我从 oracle 获取了关于基本打印的打印示例: A Basic Printing Program

并在此处修改以更好地解释我的意思

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.print.*;

public class HelloWorldPrinter implements Printable, ActionListener {


    public int print(Graphics g, PageFormat pf, int page) throws
                                                        PrinterException {

        if (page > 0) { /* We have only one page, and 'page' is zero-based */
            return NO_SUCH_PAGE;
        }

        Graphics2D g2d = (Graphics2D)g;
        g2d.translate(pf.getImageableX(), pf.getImageableY());

        g.drawString("1.Hello world!", 100, 100);
        g.drawString("2.Hello world!", 100, 300);
        g.drawString("3.Hello world!", 100, 600);
        g.drawString("4.Hello world!", 100, 800);
        g.drawString("5.Hello world!", 100, 1000);
        g.drawString("6.Hello world!", 100, 1200);
        g.drawString("7.Hello world!", 100, 1500);

        return PAGE_EXISTS;
    }

    public void actionPerformed(ActionEvent e) {
         PrinterJob job = PrinterJob.getPrinterJob();
         job.setPrintable(this);
         boolean ok = job.printDialog();
         if (ok) {
             try {
                  job.print();
             } catch (PrinterException ex) {
             }
         }
    }

    public static void main(String args[]) {

        UIManager.put("swing.boldMetal", Boolean.FALSE);
        JFrame f = new JFrame("Hello World Printer");
        f.addWindowListener(new WindowAdapter() {
           public void windowClosing(WindowEvent e) {System.exit(0);}
        });
        JButton printButton = new JButton("Print Hello World");
        printButton.addActionListener(new HelloWorldPrinter());
        f.add("Center", printButton);
        f.pack();
        f.setVisible(true);
    }
}

这个例子只会打印前 4 行 ...

【问题讨论】:

    标签: java printing pagination graphics2d


    【解决方案1】:

    我很长一段时间都遇到了类似的问题。 This example 在正确分页方面帮助了我很多。正如我的问题here 中所建议的那样,尝试在教程示例中复制并确保它有效,然后开始一次添加一个部分,直到它停止工作,这样您就可以看到问题出在哪里。

    编辑:糟糕,没有注意到答案来自 OP。哦,好吧,如果有人遇到这个并且 OP 的答案不起作用,也许我的会。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-04
      • 1970-01-01
      • 2023-03-27
      • 2014-03-16
      • 1970-01-01
      • 2012-11-09
      • 2015-09-29
      • 1970-01-01
      相关资源
      最近更新 更多