RE: jEditorPane y text/html problema con width y height
"jimmy_nimo" <jimmy_nimo-/[email protected]>
| Newsgroups | gmane.comp.java.javaspain |
|---|---|
| Message-ID | <[email protected]> |
no, quiero tomar una imagen del html que estoy renderizando y que sea
del tamaño correcto,
leer html
renderizarlo a imagen
guardar imagen
y si, tambien lo he intentando con flyingsawcer aqui esta el codigo
con flyingsawcer:
public static String Nueva(String archivo, String ruta) throws
CaidaException
{
String address = archivo;
String fin=null;
// render
try {
BufferedImage buff = null;
buff = Graphics2DRenderer.renderToImage(address, 1);
fin=ruta+"temp.png";
File f = new File(fin);
ImageIO.write(buff, "png", f);
} catch (Exception e) {
Logs.add("Error en creacion de imagen"+e.toString(), 3);
throw new CaidaException("Error en creacion de imagen"+e.toString());
}
return fin;
}
el problema es que en este caso en especifico (aun no entiendo porque)
el interlineado de Flying saucer es incorrecto (coloca un interlineado
2 veces mas grueso que el que deberia ser)
estoy haciendo pruebas con los 2, con Flying tengo el interlineado y
con jEditorPane el problema que tengo al menos lo tengo ubicado es que
la etiqueta <div style="width:348px; "> no la respeta, alguna posible
solucion?
--- En [email protected], Sebastian Gurin <sgurin@...> escribió:
>
> a ver, según te entiendo estñás renderizando html en un panel y
luego dibujando directamente una imágen en el mismo panel. No entendi
muy bien qué es lo que quieres hacer, pero me asombra que, si estas
gastando en renderizar html en swing, no metas la imagen dentro del
documento html en lugar de dibijarla directamente en el panel.
>
> para renderizar html, te recomiendo flyingsawcer
(xhtmlrenderer.dev.java.net) que respeta el estándar css2 al 100% y
por ahí tu error viene porque la renderización html de swing no lo hace...
>
> un saludo
>
> On Fri, 22 Aug 2008 11:14:37 -0000
> "jimmy_nimo" <jimmy_nimo@...> wrote:
>
> > Hola y ante todo gracias por leerme y por tener esta comunidad, espero
> > poder ser de ayuda en ella.
> >
> > se que debe ser comun pero llegue a ustedes porque tengo un problema,
> > si alguien me puede ayudar le estare tremendamente agradecido
> >
> >
> > Estoy trabajando en un proyecto donde interrelacionan muchos sistemas,
> > una de las interrelaciones es a traves de archivos html, donde un
> > sistema (en flex) escribe el html y java lo tiene que renderizar y
> > poderlo usar como imagen
> >
> > anexo coloco un ejemplo de un html
> > html:
> >
> > <body bgcolor="#FFFFFF"><div style="width:348px; ">
> > <div style="text-align:left; margin-top:0;margin-bottom: 0">
> > <font style="letter-spacing: 0px; letter-spacing: 0px; color:
> > #000000; font-size: 10px; font-family: Arial; ">Estoy escribiendo un
> > texto bien largo al pie de una foto, para ver como se comporta con los
> > interlineados respecto al tamaño origen del mismo, a ver si se quedan
> > muy espaciados o no o para poder estudiar mejor como se va a comporar
> > a posteriori. es importante ver como esta quedando el espacio entre
> > las lineas de texto para despues saber porque ha pasado todo esto.
> > vaya rollo que estoy metiendo. añado para que me cuadre la
foto</font>
> > </div>
> > </div></body>
> >
> >
> > Yo estoy usando un jEditorPane para renderizar la imagen del html y el
> > hace todo bien (tipos de letras y size, align, etc) pero no los
> > tamaños, primero coloco el codigo para ver si es esto.
> >
> > public static BufferedImage create(String texto, int width, int
height) {
> > BufferedImage image = null;
> >
> > JEditorPane pane = new JEditorPane();
> > Kit kit = new Kit();
> > pane.setEditorKit(kit);
> > pane.setEditable(false);
> > pane.setMargin(new Insets(0,0,0,0));
> > pane.setEditable(false);
> >
> > try {
> >
> > pane.setContentType("text/html");
> >
> >
> > pane.setPage("http://localhost/"+texto);
> > image = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);
> > Graphics g = image.createGraphics();
> > Container c = new Container();
> > SwingUtilities.paintComponent(g, pane, c, 0, 0, width, height);
> > g.dispose();
> > } catch (Exception e) {
> > System.out.println(e);
> > }
> > return image;
> > }
> >
> > si uso width igual al del div que tengo (348) corta la imagen
> > resultante, si le coloco tamaño 450 lo toma completo pero necesito que
> > sea del tamaño exacto como en el html (que se vea como se ve en
> > firefox, mismos tamaños) alguien me puede dar alguna idea?
> >
> >
>
>
> --
> Sebastian Gurin <sgurin@...>
>