Ola pessoal,
eu preciso imprimir a tela inteira do meu sistema eu to usando um JFrame.
Eu pesquisei no forum e n encontrei…
Desde já obrigado.
Ola pessoal,
eu preciso imprimir a tela inteira do meu sistema eu to usando um JFrame.
Eu pesquisei no forum e n encontrei…
Desde já obrigado.
Facinho ;D
n tem nada nesse mov q vc mandou cara…
ou eu n entendi…
ctrl+c errado -_-
link certo:
http://www.apl.jhu.edu/~hall/java/Swing-Tutorial/Swing-Tutorial-Printing.html
coloquei esse codigo no evento de um botao q esta na janela q quero imprimir…
[code] PrinterJob printJob = PrinterJob.getPrinterJob();
[b]printJob.setPrintable(this);[/b]
if (printJob.printDialog())
try {
printJob.print();
} catch(PrinterException pe) {
System.out.println("Error printing: " + pe);
}[/code]
O netbeans acusa cannot find simbol…
dei uma olhada o metodo setPrintable requer um parametro “Printable painer”
desculpa a ignorancia amigo, mas poderia me dar uma mão é q estou começando a utilizar java…
Foi mal ai… n tinha terminado d le o artigo e ja tva perguntando…
agora criei a classe abaixo postada e dei um print…
funcionou blz…
[code]
package cew3000;
import java.awt.;
import javax.swing.;
import java.awt.print.*;
public class PrintUtilities implements Printable {
private Component componentToBePrinted;
public static void printComponent(Component c) {
new PrintUtilities©.print();
}
public PrintUtilities(Component componentToBePrinted) {
this.componentToBePrinted = componentToBePrinted;
}
public void print() {
PrinterJob printJob = PrinterJob.getPrinterJob();
printJob.setPrintable(this);
if (printJob.printDialog())
try {
printJob.print();
} catch(PrinterException pe) {
System.out.println("Error printing: " + pe);
}
}
public int print(Graphics g, PageFormat pageFormat, int pageIndex) {
if (pageIndex > 0) {
return(NO_SUCH_PAGE);
} else {
Graphics2D g2d = (Graphics2D)g;
g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
disableDoubleBuffering(componentToBePrinted);
componentToBePrinted.paint(g2d);
enableDoubleBuffering(componentToBePrinted);
return(PAGE_EXISTS);
}
}
public static void disableDoubleBuffering(Component c) {
RepaintManager currentManager = RepaintManager.currentManager©;
currentManager.setDoubleBufferingEnabled(false);
}
public static void enableDoubleBuffering(Component c) {
RepaintManager currentManager = RepaintManager.currentManager©;
currentManager.setDoubleBufferingEnabled(true);
}
}[/code]
unica coisa q ficou ruim e q a minha tela e bem grande e deve ser impressa como paisagem…
tem como sair modo paisagem marcado como default na janela de configuração da impressora???
Filipe Sabella, Valeu o Tutorial é muito bom e foi de grande ajuda…