Imprimir... javascript? ou javax.print?

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…

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;
    }
}

}

http://jasperforge.org/sf/projects/jasperreports