Olá,
Tenho uma página jsp que gera para mim uma tabela e mais 3 graficos, e gostaria de gerar o pdf desta pagina gerada.
Tentei usar este exemplo, e ele realmente funciona, coloquei meu codigo jsp dentro de um servlet e fiz uma variavel do tipo string receber o codigo html gerado, mas ele não mostra minhas imagens. Já tentei usar file:///, e nada.
Acredito que o jeito que eu estou fazendo não deva ser o melhor jeito.
Já revirei o GUJ e não achei uma solução para o meu problema.
Se alguém puder me ajudar eu adradeço!
Segue meu código:
public class HtmlToPdf extends HttpServlet {
@SuppressWarnings("unchecked")
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException ,IOException {
relatorio ="<html>";
relatorio +="<head> etc...";
// E aqui eu vou fazendo minha variavel "relatorio" receber o codigo html de acordo com minha logica para gerar o relatorio
OutputStream os = new FileOutputStream("c://Program Files/Apache Software Foundation/Tomcat 6.0/webapps/projeto/relatorio.pdf");
try {
convert(relatorio, os);
} catch (Exception e) {
e.printStackTrace();
}
os.close();
response.sendRedirect("relatorio.pdf");
}
public static void convert(String input, OutputStream out) throws DocumentException{
convert(new ByteArrayInputStream(input.getBytes()), out);
}
public static void convert(InputStream input, OutputStream out) throws DocumentException{
Tidy tidy = new Tidy();
Document doc = tidy.parseDOM(input, null);
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(doc, null);
renderer.layout();
renderer.createPDF(out);
}
};