Exportação html para pdf

0 respostas
T

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

Criado 31 de março de 2011
Respostas 0
Participantes 1