Я решил проблему, нарисовав всю таблицу на странице принтера, соответственно изменив ее размер и т. Д. Поскольку печать на самом деле рисует только для другого получателя.
@ Сахер, пожалуйста проверьте мой ответ на другой вопрос , где я представляю ссылки, которые были мне полезны для понимания того, как API работает / может применяться.
РЕДАКТИРОВАТЬ:
Пожалуйста, проверьте учебники, особенно нет.2. То, как я это делаю, заключается в том, что у меня есть класс MyPrintUtilityclass, который реализует интерфейс для печати.Его конструктор берет компонент, который я хочу напечатать.Когда он берет компонент, он вычисляет, сколько страниц он займет, и сохраняет конечные точки страницы.Затем у меня есть метод, который я вызываю для этого, который инициализирует диалоговое окно печати.
public void print()
{
PrinterJob printJob = PrinterJob.getPrinterJob();
if(printJobName != null)
printJob.setJobName(printJobName);
printJob.setPrintable(this);
if(printJob.printDialog())
try
{
//for faster printing, turn off double buffering
disableDoubleBuffering(componentToPrint);
System.out.println("Calling PrintJob.print()");
printJob.print(new HashPrintRequestAttributeSet());
System.out.println("End PrintJob.print()");
}catch(PrinterException pe)
{
System.out.println("Error printing: " + pe);
}finally//whatever happend (exception or not) turn back on the double buffering
{
enableDoubleBuffering(componentToPrint);
}
}
В методе public int print(Graphics g, PageFormat pf, int pageIndex)
интерфейса Printable я перевожу рисунок соответствующим образом, обрезая таблицу для каждой страницы.
Дополнительные ресурсы для проверки:
http://www.java2s.com/Code/Java/2D-Graphics-GUI/PrintinJavaMultipage.htm --- печать на многих страницах
http://download.oracle.com/javase/tutorial/2d/printing/gui.html --- печать компонентов графического интерфейса.
http://www.sideofsoftware.com/print_preview_tutorial.htm --- учебное пособие по предварительному просмотру
http://www.java -tips.org / java-se-tips / java.awt.print / print-the-text-file-and-print-preview-them.html --- фантастический пример предварительного просмотра и печати текстовых файлов.
EDIT2:
Вы должны серьезно прочитать это. Здесь автор объясняет, как работает разбиение на многие страницы и как перевести графику, переместить клип и т. Д.