Lo siguiente me funciona cuando utilizo html para mostrar el grafico que esta hecho con openflashchart en un popup html, el cambio que hize es que este html me muestra en formato pdf, para esto buscando informacion por internet encontre que la manera de hacerlo era convertir el html en xhtml y este en pdf por medio java, el problema surge en la validacion de un fichero imrpimir.js que contiene el proceso del swf, que esta dentro del xhtml, no me el grafico swf en el pdf , pero si en html, y el otro problema es como abro el pdf creado desde un link en index.html, funcione pero abriendome 2 paginas la del pdf, y una vacia la del servlet no entiendo xq:S
imprimir.js
Cita:
var so = new SWFObject("sice.swf", "ofc", "60%", "60%", "9", "#FFFFFF");
so.addVariable("data","/RETENCIONES/Imprimir");
so.addVariable("variables","true");
so.addParam("allowScriptAccess", "always" );
so.write("my_chart");
so.addVariable("data","/RETENCIONES/Imprimir");
so.addVariable("variables","true");
so.addParam("allowScriptAccess", "always" );
so.write("my_chart");
imprimir.xhtml
Cita:
GeneratePDFjava<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
<link href="estilos/ext/ext-all.css" type="text/css" rel="stylesheet" />
<link href="estilos/ext/ytheme-aero.css" type="text/css" rel="stylesheet" /><style media="Screen" type="text/css">
@import url("estilos/master.css");
</style>
<link href="estilos/cabeceraKm.css" type="text/css" rel="stylesheet" />
</head>
<body><br /><br />
<div id="encabezado">
<table border="2" class="tablaCabecera">
<tbody>
<tr>
<td class="tdCabeceraSice"> </td>
<td class="tdCabeceraBlanco">
<table width="100%">
<tbody>
<tr>
<td width="auto"> </td>
</tr>
</tbody></table>
</td>
<td style="width: 311px;" class="tdCabeceraDgt"> </td>
</tr></tbody></table><br /><br />
<hr /><br /><br /></div>
<script charset="utf-8" src="js/swfobject.js" type="text/javascript"></script>
<object type="application/x-shockwave-flash" data="flash.swf" width="230" height="100">
<div id="my chart"></div>
</object>
<script type="text/javascript" src="js/imprimir.js"></script>
</body></html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
<link href="estilos/ext/ext-all.css" type="text/css" rel="stylesheet" />
<link href="estilos/ext/ytheme-aero.css" type="text/css" rel="stylesheet" /><style media="Screen" type="text/css">
@import url("estilos/master.css");
</style>
<link href="estilos/cabeceraKm.css" type="text/css" rel="stylesheet" />
</head>
<body><br /><br />
<div id="encabezado">
<table border="2" class="tablaCabecera">
<tbody>
<tr>
<td class="tdCabeceraSice"> </td>
<td class="tdCabeceraBlanco">
<table width="100%">
<tbody>
<tr>
<td width="auto"> </td>
</tr>
</tbody></table>
</td>
<td style="width: 311px;" class="tdCabeceraDgt"> </td>
</tr></tbody></table><br /><br />
<hr /><br /><br /></div>
<script charset="utf-8" src="js/swfobject.js" type="text/javascript"></script>
<object type="application/x-shockwave-flash" data="flash.swf" width="230" height="100">
<div id="my chart"></div>
</object>
<script type="text/javascript" src="js/imprimir.js"></script>
</body></html>
Cita:
[quote]import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import org.xhtmlrenderer.pdf.ITextRenderer;
public class GeneratePDF extends HttpServlet{
public void service(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException
{
GeneratePDF hp=new GeneratePDF();
try{
hp.crearPdf();
hp.abrirPdf();
}catch(Exception e){
e.printStackTrace(System.out);
}
}
public void crearPdf()throws Exception
{
File inputFile = new File("R:\\Workspace\\RETENCIONES\\WebContent\\impr imir.xhtml");
OutputStream os = new FileOutputStream(new File("xhtmlToPdf.pdf"));
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(inputFile);
renderer.layout();
renderer.createPDF(os);
os.close();
}
public void abrirPdf()
{
try {
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler "+"xhtmlToPdf.pdf");
System.out.println("Final");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
import java.io.FileOutputStream;
import java.io.OutputStream;
import org.xhtmlrenderer.pdf.ITextRenderer;
public class GeneratePDF extends HttpServlet{
public void service(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException
{
GeneratePDF hp=new GeneratePDF();
try{
hp.crearPdf();
hp.abrirPdf();
}catch(Exception e){
e.printStackTrace(System.out);
}
}
public void crearPdf()throws Exception
{
File inputFile = new File("R:\\Workspace\\RETENCIONES\\WebContent\\impr imir.xhtml");
OutputStream os = new FileOutputStream(new File("xhtmlToPdf.pdf"));
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(inputFile);
renderer.layout();
renderer.createPDF(os);
os.close();
}
public void abrirPdf()
{
try {
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler "+"xhtmlToPdf.pdf");
System.out.println("Final");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
index.html
Cita:
Muchas Gracias de antemano!!<html>
........
.
.
.
.
<td><a target="_blank" href="/RETENCIONES/GeneratePDF">Impresion Pdf</a></td></tr>
</table>
</body>
</html>
........
.
.
.
.
<td><a target="_blank" href="/RETENCIONES/GeneratePDF">Impresion Pdf</a></td></tr>
</table>
</body>
</html>
Saludos ross