Можно ли установить размер левого и правого поля при вызове JTable.print () в Java? - PullRequest
2 голосов
/ 15 марта 2012

Я пытаюсь распечатать содержимое моей JTable на принтере, используя метод table.print ():

boolean complete = table.print(JTable.PrintMode.FIT_WIDTH,header,null);

Мой вопрос, возможно ли установить размер слева иправое поле на области печати без необходимости вручную устанавливать их на PrintDialog?

Большое спасибо за помощь!

1 Ответ

2 голосов
/ 19 марта 2012

при условии, что при установке «не вручную» вы имеете в виду программную установку их без отображения PrintDialog: вы можете установить их в документе, возвращенном PrinterJob, а затем сразу запустить задание

PrinterJob job = PrinterJob.getPrinterJob();
PageFormat pf = job.defaultPage();
Paper paper = pf.getPaper();
double margin = 20.;
paper.setImageableArea(margin, 
        paper.getImageableY(), 
        paper.getWidth() - 2* margin, paper.getImageableHeight());
pf.setPaper(paper);
job.setPrintable(table.getPrintable(JTable.PrintMode.FIT_WIDTH, null, null), 
        job.validatePage(pf));
job.print();
...