Galera, tudo bem?
Estou com um sério problema, se possível me ajudem. Já tentei solucionar de algumas formas porém não obtive sucesso, estou fazendo uma exportação de um html para pdf e preciso que mesmo saia com as imagens e o css configurado como letra arial e tabela com align=center. Comecei com uma div dentro de uma jsp, onde eu passava essa div como parâmetro numa string para a converção e exportação, porém sem sucesso. Agora montei todo html na minha action com fonte no e
Segue abaixo o fonte:
String nomeArquivo = “EtqCuidadosEspeciais-” + new SimpleDateFormat(“yyyyMMddHHmmss”).format(new Date()) + “.pdf”;
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
HttpServletResponse response = super.getServletResponse();
response.setCharacterEncoding(“ISO-8859-1”);
response.setContentType(“application/pdf”);
response.setHeader(“Content-Disposition”, “attachment; filename=” + nomeArquivo);
response.setHeader(“Cache-Control”, “no-cache”);
StringBuilder html = new StringBuilder();
html.append("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>");
html.append("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">");
html.append("<link rel='stylesheet' type='text/css' href='/static/css/ris.css' />");
html.append("<link rel='stylesheet' type='text/css' href='/static/css/yahoo/menu.css' />");
html.append("<link rel='stylesheet' type='text/css' href='/static/css/displaytag.css' />");
html.append("<html><head>");
html.append("<style type=\"text/css\">@page { size: 210mm 291mm; }</style>");
html.append("<style type=\"text/css\">"+getCss()+"</style>");
html.append("</head>");
html.append("<body>");
html.append("<br/>");
//html.append(htmlToExport);
html.append("<div id='divModalEtiquetaInterna' class='interiorPopups' style='display: block; position:absolute; width:600px; background-color:#FFF; border:2px solid #CCC;' align='center'>");
html.append("<div class='header_filtros' align='center' style='padding: 5px; vertical-align:top;'>");
html.append("<br/><br/>");
html.append("<table width='100%' align='center'>");
html.append(" <tr>");
html.append(" <td width='50%' height='100%' align='center'>");
html.append(" <table cellspacing='0' width='30%' height='100%' style='border: 1; border-style: solid;'>");
html.append(" <tr>");
html.append(" <td align='center'>");
html.append(" <table id='tblComposicao' width='100%'>");
for(FiguraEtiquetaVo f: result.getListaComposicao()) {
// mostra o tipo da aplicação
if (result.isMostraTipoAplicacao() && !f.getDsTipAplFib().equals("")) {
html.append(" <tr>");
html.append(" <td><label style='color:#000000; font-family:Arial; font-size:11px;'>" + f.getDsTipAplFib() + "</label></td>");
html.append(" </tr>");
}
if (getIdioma().trim().equals("br")){
html.append(" <tr>");
html.append(" <td style='font-family:verdana; font-size:10px'><label style='color:#000000; font-family:Arial; font-size:11px;'>" + f.getPcFibTxlArt() + "% " +
f.getDsFibTxl_prg() + "</label></td>");
html.append(" </tr>");
}else if (getIdioma().trim().equals("es")){
html.append(" <tr>");
html.append(" <td style='font-family:verdana; font-size:10px'><label style='color:#000000; font-family:Arial; font-size:11px;'>" + f.getPcFibTxlArt() + "% " +
f.getDsFibTxlSph() + "</label></td>");
html.append(" </tr>");
}else if (getIdioma().trim().equals("en")){
html.append(" <tr>");
html.append(" <td style='font-family:verdana; font-size:10px'><label style='color:#000000; font-family:Arial; font-size:11px;'>" + f.getPcFibTxlArt() + "% " +
f.getDsFibTxlIgl() + "</label></td>");
html.append(" </tr>");
}
}
html.append(" </table>");
html.append(" </td>");
html.append(" </tr>");
html.append(" <tr>");
html.append(" <td align='center'> </td>");
html.append(" </tr>");
html.append(" <tr>");
html.append(" <td align='center'>");
html.append(" <table id='tblFiguraLavagem' width='100%'>");
html.append(" <tr>");
for(String imgEtiqueta: resultPedido.getImgManutencaoPeca()) {
html.append(" <td style='font: arial'>" + imgEtiqueta + "</td>");
}
html.append(" </tr>");
html.append(" </table>");
html.append(" </tr>");
html.append(" <tr>");
html.append(" <td align='center'>");
html.append(" <table id='tblGrauInstrucao' width='100%'>");
for(FiguraEtiquetaVo figuraEtiquetaVo: result.getListaFigLav()) {
html.append(" <tr>");
html.append(" <td style='font: arial'>" + figuraEtiquetaVo.getDsGrauInsSph() + "</td>");
html.append(" </tr>");
}
html.append(" </table>");
html.append(" </tr>");
html.append(" <tr>");
html.append(" <td align='center' style'font: arial'> </td>");
html.append(" </tr>");
html.append(" <tr>");
String txtProduzido = "";
String txtPara="";
if(result.getTextoPaisProd().trim().equals("BR")){
txtProduzido = getText("lbl.prod.mexico");
txtPara = getText("lbl.prod.mexico.para");
html.append(" <td align='center' id='tdPais' style'font: arial'>" + txtProduzido + "</td>");
html.append(" </tr>");
html.append(" <tr>");
html.append(" <td align='center' style'font: arial'>" + txtPara + "</td>");
html.append(" </tr>");
}else{
txtProduzido = getText("lbl.prod.mexico.importado")
+ " " + infoImportado.getTxtPaisFabPed();
String txtInsumo="";
if(infoImportado.getTxtPaisOrigemInsumo()!=null
&& infoImportado.getTxtPaisOrigemInsumo().trim().equals("")){
txtInsumo = getText("lbl.prod.mexico.importado.insumo") + " " + infoImportado.getTxtPaisOrigemInsumo();
}
html.append(" <td align='center' id='tdPais' style'font: arial'>" + txtProduzido + "</td>");
html.append(" </tr>");
html.append(" <tr>");
html.append(" <td align='center' style'font: arial'>" + txtInsumo + "</td>");
html.append(" </tr>");
}
html.append(" <tr>");
html.append(" <td align='center' style'font: arial'> </td>");
html.append(" </tr>");
html.append(" <tr>");
html.append(" <td align='center' style'font: arial'> </td>");
html.append(" </tr>");
if (resultPedido.getTipoPedidoPrg().trim().equals(TP_IMPORTADO_PRG)){
String txtImportadoPor = getText("lbl.prod.mexico.importadopor");
html.append(" <tr>");
html.append(" <td align='center' style'font: arial'>" + txtImportadoPor + "</td>");
html.append(" </tr>");
}
String txtCeA = getText("lbl.prod.mexico.cea");
html.append(" <tr>");
html.append(" <td align='center' style'font: arial'>" + txtCeA + "</td>");
html.append(" </tr>");
String txtEndereco = getText("lbl.prod.mexico.endereco");
html.append(" <tr>");
html.append(" <td align='center' style'font: arial'>" + txtEndereco + "</td>");
html.append(" </tr>");
String txtLocalidade = getText("lbl.prod.mexico.localidade");
html.append(" <tr>");
html.append(" <td align='center' style'font: arial'>" + txtLocalidade + "</td>");
html.append(" </tr>");
String txtCidadeEstado = getText("lbl.prod.mexico.cidadeestado");
html.append(" <tr>");
html.append(" <td align='center' style'font: arial'>" + txtCidadeEstado + "</td>");
html.append(" </tr>");
String txtCpPais = getText("lbl.prod.mexico.caixapostalpais");
html.append(" <tr>");
html.append(" <td align='center' style'font: arial'>" + txtCpPais + "</td>");
html.append(" </tr>");
String txtRfc = getText("lbl.prod.mexico.rfc");
html.append(" <tr>");
html.append(" <td align='center' style'font: arial'>" + txtRfc + "</td>");
html.append(" </tr>");
String txtTel1 = getText("lbl.prod.mexico.tel1");
html.append(" <tr>");
html.append(" <td align='center' style'font: arial'>" + txtTel1 + "</td>");
html.append(" </tr>");
String txtTel2 = getText("lbl.prod.mexico.tel2");
html.append(" <tr>");
html.append(" <td align='center' style'font: arial'>" + txtTel2 + "</td>");
html.append(" </tr>");
html.append(" </table>");
html.append(" </td>");
html.append(" </tr>");
html.append(" </table>");
html.append(" <br/>");
html.append("</div>");
html.append("</div>");
html.append("</body></html>");
Html2Pdf.convert(html.toString(), outputStream, 1.5F, 1);
response.setContentLength( outputStream.size() );
ServletOutputStream sos = response.getOutputStream();
outputStream.writeTo(sos);
sos.flush();
Obrigado,
Tiago L. canatelli