JNetPJ
Dezembro 22, 2006, 4:14pm
#1
tenho que imprimir o conteúdo de uma página .jsp. Devo usar javax.print ou javascript?
tenho tb um conteúdo em Java Beans… uso javax.print ?
por como devo implementar essas duas situações…
“os códigos valem para qualquer impressora matricial, jato tinta ou laser”???
se tiverem algum link com o conteúdo favor indicar.
Obrigado [ ]
quando vc fala conteudo jsp…vc fala tudo q esta na pagina ou apenas um relatorio, ou uma tabela, etc???
o q vc pode fazer eh o seguinte…
no clique para imprimir, chame um pop-up q mostre apenas o conteudo q vc quer imprimir, e no onLoad() dessa pagina, vc chama a função window.print()…tipo assim:
<form onLoad="javascript: window.print();" />
se vc quiser imprimir a propria pagina, vc pode usar a função javascript print() no onClick do botão de impressão…mas cuidado se vc tiver usando frames…
espero ter ajudado…
flw
Se for usar Java, o usuário vai precisar ter o JRE instalado na máquina dele…
a JRE no caso do javax.print
o Javascript funciona em qq navegador praticamente…
JNetPJ
Dezembro 26, 2006, 3:45pm
#5
Tem essa classe abaixo no Portal Java, mas não dá para formatar o texto com “\n”, imprimi somente a string.
gostaria de uma classe onde pudesse formatar um relatório com cabeçalho etc…
obrigado [ ]
import java.net .*;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.print.PageFormat;
import java.awt.print.Printable;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;
import javax.print.PrintService;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.print.attribute.standard.Copies;
import javax.print.attribute.standard.JobName;
import javax.print.attribute.standard.OrientationRequested;
public class Print2DPrinterJob implements Printable {
private String text;
/**
* Efetua impressão do texto passado como parâmetro.
* @param texto
*/
public Print2DPrinterJob(String texto) {
text += texto;
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
aset.add(OrientationRequested.PORTRAIT);
aset.add(new Copies(1));
aset.add(new JobName("Relatório", null));
/*
* Crai um "Printer job"
*/
PrinterJob pj = PrinterJob.getPrinterJob();
pj.setPrintable(this);
/*
* Localiza um serviço de impressão
* que possa tratar esta requisção.
*/
PrintService[] services = PrinterJob.lookupPrintServices();
if (services.length > 0) {
System.out.println("Impressora seleionada" + services[0].getName());
try {
pj.setPrintService(services[0]);
pj.pageDialog(aset);
if (pj.printDialog(aset)) {
pj.print(aset);
}
} catch (PrinterException pe) {
System.err.println(pe);
}
}
}
/**
* Método necessário quando a interface Printable é implementada.
*/
public int print(Graphics g, PageFormat pf, int pageIndex) {
if (pageIndex == 0) {
Graphics2D g2d = (Graphics2D) g;
g2d.translate(pf.getImageableX(), pf.getImageableY());
g2d.setColor(Color.black);
/*
* Imprime o texto passado, na coluna 10 e na linha 5
* da página a ser impressa
*/
g2d.drawString(text, 10, 5);
return Printable.PAGE_EXISTS;
} else {
return Printable.NO_SUCH_PAGE;
}
}
}