Exportação html para pdf

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

com font-family para arial e tabela com align center, porém ainda não está exportando com a formatação que estou configurando.

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'>&nbsp</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'>&nbsp</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'>&nbsp</td>");
		html.append("					</tr>");
		html.append("					<tr>");
		html.append("						<td align='center' style'font: arial'>&nbsp</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