Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > ayuda para imprimir

Buenas escribo pidiendo ayuda en un codigo que lo que hace es tomar un html mostrarlo en un jedtorpane y al pulsar el boton imprimir lo imprima.

Bueno comento rapido el problema:
el asunto es que al darle a imprimir en mi codigo el html no se cuadra dentro de la hoja y sale muy grande (PD: probe pensando que era el html que era muy grande pero por googlechrome e internet explorer se imprime perfecto de tamaño el problema es mi app subo el codigo a ver quien me puede ayudar).


package pruebapanehtml1;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.print.PageFormat;
import java.awt.print.Paper;
import java.awt.print.Printable;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;
import java.net.URL;
import javax.swing.JButton;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JScrollPane;

/**
*
* @author Venespana
*/
public class PruebaPaneHtml1 extends JFrame implements Printable {

//Componentes
private JEditorPane panel;
private JScrollPane scroll;
private JButton boton;;
JFrame ventana;

public static void main(String[] args) {
new PruebaPaneHtml1();
}

public PruebaPaneHtml1() {
initComp();
}

//cargo todos los componentes
private void initComp() {

panel = new JEditorPane();
scroll = new JScrollPane(panel);
scroll.setBounds(0, 50, 795, 525);
panel.setVisible(true);
panel.setEditable(false);
panel.setContentType("text/html");
//cargo el html
try {
URL url = new URL("file://localhost/G:\\Programacion\\Programas Java\\Programas\\Ines Tejada Diseños Exclusivos\\Data\\FacturaPagos.html");
panel.setPage(url);
} catch (Exception e) {
System.out.println(e);
}

boton = new JButton("boton");
boton.setVisible(true);
boton.setBounds(350, 10, 100, 35);
boton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
botonAction(e);
}
});

ventana = this;
ventana.setName("Prueba Html y TextPane1");
ventana.setSize(800, 600);
ventana.setVisible(true);
ventana.setResizable(false);
ventana.setDefaultCloseOperation(EXIT_ON_CLOSE);
ventana.setLocationRelativeTo(null);

ventana.setLayout(null);

ventana.add(boton);
ventana.add(scroll);
}
//accion del boton
public void botonAction(ActionEvent e) {
System.out.println("Has pulsado el boton imprimir");
PrinterJob job = PrinterJob.getPrinterJob();
PageFormat formaPagina = new PageFormat();
formaPagina.setOrientation(PageFormat.PORTRAIT); //Establecemos la orientación de la página
Paper papel = new Paper();
papel.setSize(612,792); //Tamaños oja carta 612pts x792pts
formaPagina.setPaper(papel); //Establecemos el tamaño del papel para el trabajo
job.setPrintable(this, formaPagina);
try {
job.print();
} catch (PrinterException ex) {
ex.printStackTrace();
}
}

@Override
public int print(Graphics g, PageFormat pf, int page) throws PrinterException {
if (page > 0) {
return NO_SUCH_PAGE;
}
Graphics2D g2d = (Graphics2D) g;
g2d.translate(pf.getImageableX(), pf.getImageableY());
System.out.println("alto: "+pf.getImageableX()+" ancho: "+pf.getImageableY());
// imprime el panel(Jeditorpane)
panel.printAll(g);
return PAGE_EXISTS;
}
}

el html es el siguiente:


<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></meta>
</head>





<table width="650" cellspacing="1" align="center">
<tr>
<th bgcolor="#FFFFFF" align="left" width="600" rowspan="2"></th>
<td align="center" width="200">
<table width="200" cellspacing="1" align="right" bgcolor="#75BDFF">
<tr>
<th bgcolor="#75BDFF" align="center" width="200">Factura N°:</th>
</tr>
<tr>
<td bgcolor="#75BDFF" align="center" width="200">1000002</td>
</tr>
</table>
</td>
</tr>
</table>

<p></p>

<table border="1" BORDERCOLOR="black" bgcolor="black" width="650" cellspacing="1" align="center">
<tr>
<th bgcolor="#75BDFF" align="center">Razon Social:</th>
<td bgcolor="#FFFFFF" align="center" colspan ="5">ujgfuyguy trtrt trtertet tret</td>
</tr>
<tr>
<th bgcolor="#75BDFF" align="center">Direccion:</th>
<td bgcolor="#FFFFFF" align="center" colspan ="5"></td>
</tr> <tr>
<th bgcolor="#75BDFF" align="center">Telefono:</th>
<td bgcolor="#FFFFFF" align="center" colspan ="5"></td>
</tr> <tr>
<th bgcolor="#75BDFF" align="center" width="150">Fecha:</th>
<td bgcolor="#FFFFFF" align="center" width="250" colspan="1">16/09/2013</td>
<th bgcolor="#75BDFF" align="center" width="100">C.I./R.I.F.:</th>
<td bgcolor="#FFFFFF" align="center" width="150" colspan="1">544</td>
</tr>
<tr>
<th bgcolor="#75BDFF" align="center" width="150">N° de Cheque(s)</th>
<td bgcolor="#FFFFFF" align="center" width="250" colspan="1"></td>
<td bgcolor="#FFFFFF" align="center" width="250" colspan="2"></td>
</tr>
<tr>
<th bgcolor="#75BDFF" align="center" width="150">Monto Cheque</th>
<td bgcolor="#FFFFFF" align="center" width="250" colspan="1"></td>
<td bgcolor="#FFFFFF" align="center" width="250" colspan="2"></td>
</tr>
<tr>
<th bgcolor="#75BDFF" align="center" width="150">Banco(s):</th>
<td bgcolor="#FFFFFF" align="center" width="250" colspan="1"></td>
<td bgcolor="#FFFFFF" align="center" width="250" colspan="2"></td>
</tr>
<tr>
<th bgcolor="#75BDFF" align="center" width="150">Efectivo:</th>
<td bgcolor="#FFFFFF" align="center" width="250" colspan="1"></td>
<td bgcolor="#FFFFFF" align="center" colspan="2"></td>
</tr>
</table>
<center> CONCEPTOS: </center>
<table border="1" BORDERCOLOR="black" bgcolor="black" width="650" cellspacing="1" align="center">
<tr>
<th bgcolor="#75BDFF" align="center" width="40">CANTIDAD</th>
<th bgcolor="#75BDFF" align="center" width="250">DESCRIPCION</th>
<th bgcolor="#75BDFF" align="center">UNITARIO</th>
<th bgcolor="#75BDFF" align="center">TOTAL</th>
</tr>
<tr height="100">
<td bgcolor="#FFFFFF" align="center">


</td>
<td bgcolor="#FFFFFF" align="center">


</td>
<td bgcolor="#FFFFFF" align="center">


</td>
<td bgcolor="#FFFFFF" align="center">


</td>
</tr>
<tr>
<th bgcolor="#75BDFF" align="center" colspan="2">SUBTOTAL</th>
<th bgcolor="#FFFFFF" align="center" colspan="2">0.00</th>
</tr>
<tr>
<th bgcolor="#75BDFF" align="center" colspan="2">IVA (12%)</th>
<th bgcolor="#FFFFFF" align="center" colspan="2">0.00</th>
</tr>
<tr>
<th bgcolor="#75BDFF" align="center" colspan="2">TOTAL GENERAL</th>
<th bgcolor="#FFFFFF" align="center" colspan="2">0.00</th>
</tr>
</table>

</html>

De ante mano Gracias por su ayuda

septiembre 19, 2013 | Unregistered CommenterAlejandro