2015-02-17 2 views
-3

Может ли кто-нибудь помочь в том, как печатать JFrame на бумаге формата A4 в java.I Создал JFrame для печати счета, но он не работает. Я попытался использовать интерфейс Printable, но, похоже, он не работает для меня.Pinting in java a JFrame

+2

Что-то вроде [этого] (http://stackoverflow.com/questions/22241711/setting-print-size-of-a-jlabel-and-put-a-jradiobutton-on-the-print/22242658#22242658) или [это] (http://stackoverflow.com/questions/22241711/setting-print-size-of-a-jlabel-and-put-a-jradiobutton-on-the-print/22244116#22244116) или [ это] (http://stackoverflow.com/questions/22058738/print-jlabels-icon-in-a-printer-using-a-button/22059079#22059079) или [это] (http://stackoverflow.com/ вопросы/12764634/print-a-jframe-and-its-components/12765916 # 12765916) – MadProgrammer

+1

или [это] (http://stackoverflow.com/questions/17904518/fit-scale-jcomponent-to-page-being- напечатанный/17961911 # 17961911)? – MadProgrammer

+0

Или используйте что-то вроде отчетов Jasper – MadProgrammer

ответ

0

Если вы хотите напечатать только текст, который вы можете использовать

JTextPane jtp = new JTextPane(); 
jtp.setBackground(Color.white); 
jtp.setText(text);//Set text to print. 
try { 
    jtp.print(null, null, true, null, null, true); 
} catch (java.awt.print.PrinterException ex) { 
    ex.printStackTrace(); 
} 

Если вы действительно хотите, чтобы напечатать весь JFrame, вы можете попробовать взять снимок экрана экрана пользователя и обрезать его на JFrame или сделать this а затем используйте что-то вроде this для печати изображения.

+0

Или просто вызывается 'print' на' JFrame', но проблема вам нужно будет изменить размер кадра так, чтобы он мог поместиться в пределах листа листа A4, который, по-видимому, по крайней мере, составляет половину вопроса здесь – MadProgrammer

+0

Хорошо ... затем найдите, сколько пикселей может поместиться на бумаге формата А4, затем возьмите более длинную сторону JFrame и измените размер, чтобы изменить размер другой пропорциональности. – Forseth11

+0

Не теория - замечательная вещь;) – MadProgrammer