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]>
Sebastian gracias

en efecto he usado flying para esto en el 99% de los casos y funciona
perfecto y estoy usando es un bufferedImage directamente y despues a
archivo y me funciona en e 100% de los casos menos cuando tienes un
texto MUY largo en un solo font y tiene que ser recortado es por width
del div (como el html que te muestro abajo) con la funcion que te
mostre que corre en stand alone con una simple llamada al main y
usando ese html que te mostre veras a lo que me refiero

intente jEditorPane porque el en este casi si respeta ese interlineado
no se porque no funciona :(

alguna idea?


--- En [email protected], Sebastian Gurin <sgurin@...> escribió:
>
> jimmy: flying sawcer es 100% css. Yo me la jugaría por probar con
objetos html con posicionamiento absoluto, y especificar w y h así:
> 
> <div style="position: absolute; width: wpx; height: hpx; top:0px;
left:0px">
> contenido</div>
> 
> esto renderizado por flying sawcer deberá hacer que el div quede en
el pixel 0,0 del jpanel (xhtmlpanel creo que se llama), por lo que
basta tomar un screenshot del rectangulo 0,0,w,h. Eso si, vas a tener
problemas si utilizas bordes css, por ejemplo "border solid 10px blue"
ya que en la espec css el borde no forma parte del contenido ni de la
caja (los bordes gruesos se salen para afuera)...
> 
> creo que lo ateior también funciona con la renderización html que
viene con swing.
> 
> si quieres renderizar 100% igual que el browser, también me ha
funcionado, pero utilizando swt, no swing, hacerle un screenshot al
Componente browser de dicho toolkit, utilizando la misma tecnica que
te comenté atras
> 
> suerte!
> 
> 
> 
> On Fri, 22 Aug 2008 12:58:03 -0000
> "jimmy_nimo" <jimmy_nimo@...> wrote:
> 
> > 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@>
> > >
> > 
> > 
> > 
> 
> 
> -- 
> Sebastian Gurin <sgurin@...>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.