HTML dentro do Java retorna erro

2 respostas
javafront-end
brizola727

Montei um relatório que é exportado para pdf, tudo estava indo bem até ter que usar Itext para inserir uma imagem no PDF, pois bem fiz tudo certinho como diziam pra fazer, porém começou a dar um erro no HTML, dizendo que algumas tags estavam sem seu fechamento, varri todo html encontrei realmente alguns erros de tags e as fechei. Porém agora ele retorna o erro:

java.lang.IllegalArgumentException: The number of columns in PdfPTable constructor must be greater than zero.

Acho que tem algo a ver com que o HTML não esta sendo preenchido, alguma tag deve estar sendo fechada deixando de fora o conteúdo e ele esta vindo vazio… seria isso mesmo?!

Tentei encontrar onde errei e não consegui, olhei tag por tag para verificar se estava abrindo e fechando, usei até um site que analise erros no html e não encontrei, alguém poderia me ajudar encontrar onde esta o erro? Segue o trecho HTML + JAVA

String htmlHead = "<html>" + "<thead>" +

	"<STYLE TYPE=\"text/css\">" + "TD{font-family: Arial; font-size: 10pt;}" + "TH{font-family: Arial; font-size: 12pt;}" + "</STYLE>" +

	"</thead>" + "<tbody>" + "<table border=\"0\" width=\"600\" cellpadding=\"15\" cellspacing=\"0\">";

	}String	htmlBody = 
				"<h7>  TITULO1+
				"<hr>" +
			    "<th align=\"center\">Titulo</th>" + "<br />"
				+ "<table border=\"1\" width=\"600\" cellspacing=\"0\">" + "<tr>" + "<td><b>Elaborado por: </b>"
				+ info.getElaboratedBy()
				+ "</td>"
				+ "<td colspan=\"2\"><b>Nº: </b>"
				+ info.getReportRegister()
				+ "</td>"
				+ "<td><b>Área/Diretoria: </b>Produção/Operações</td>"
				+ "</tr>"
				+ "<tr>"
				+ "<td colspan=\"2\"><b>Responsável: </b>"
				+ info.getResponsibleReport()
				+ "</td>"
				+ "<td><b>Data: </b>"
				+ dayDate
				+ "</td>"
				+ "<td width=\"50\"><b>Rev.: </b>"
				+ info.getReview()
				+ "</td>"
				+ "</tr>"
				+ "<tr>"
				+ "<td colspan=\"2\"><b>Data de Criação do Laudo: </b>"
				+ info.getDtCreation()
				+ "</td>"
				+ "</tr>"
				+ "</table>"
				+ "<br />"
				+ "<table border=\"0\" cellspacing=\"0\">"
				+ "<tr>"
				+ "<th>DADOS DO MATERIAL</th>"
				+ "</tr>"
				+ "</table>"
				+ "<table border=\"1\" width=\"600\" cellspacing=\"0\">"
				+ "<tr>"
				+ "<td width=\"465\"><b>Descrição: </b>"
				+ info.getProdDescCAS()
				+ "</td>"
				+ "</tr>"
				+ "</table>"
				+ "<br />"
				+ "<table border=\"0\" cellspacing=\"0\">"
				+ "<tr>"
				+ "<th>DADOS DO RECEBIMENTO</th>"
				+ "</tr>"
				+ "</table>"
				+ "<table border=\"1\" width=\"600\" cellspacing=\"0\">"
				+ "<tr>"
				+ "<td width=\"300\"><b>Fornecedor: </b>"
				+ info.getProvider()
				+ "</td>"
				+ "<td width=\"170\"><b>Recebido em: </b>"
				+ purchaseOrderDate
				+ "</td>"
				+ "<td width=\"70\"><b>NF: </b>"
				+ info.getNumberNF()
				+ "</td>"
				+ "<td><b>Data NF: </b>"
				+ info.getDtNF()
				+ "</td>"
				+ "</tr>"
				+ "<tr>"
				+ "<td align=\"center\" colspan=\"4\"><b>Pedido de Compra</b></td>"
				+ "</tr>"
				+ "<tr>"
				+ "<td width=\"260\"><b>Número: </b>"
				+ purchaseOrder
				+ "</td>"
				+ "<td width=\"260\"><b>Qtde:</b> "
				+ info.getQuantity()
				+ "</td>"
				+ "</tr>"
				+ "</table>"
				+ "<br />"
				+ "<table border=\"0\" cellspacing=\"0\">"
				+ "<tr>"
				+ "<th>DADOS DOS TESTES</th>"
				+ "</tr>"
				+ "</table>"
				+ "<table border=\"1\" width=\"600\" cellspacing=\"0\">"
				+ "<tr>"
				+ "<td><b>Data de Início: </b>"
				+ dtInicial
				+ "</td>"
				+ "<td><b>Nome do Operador: </b>"
				+ info.getOperatorWI()
				+ "</td>"
				+ "</tr>"
				+ "</table>"
				+ "<br />"
				+ "<table border=\"0\" cellspacing=\"0\">"
				+ "<tr>"
				+ "<th>RESULTADOS</th>"
				+ "</tr>"
				+ "</table>"
				+ "<table border=\"1\" width=\"600\" cellspacing=\"0\">"
				+ "<tr>"
				+ "<td  align=\"center\" rowspan=\"2\"><b>	</b></td>"
				+ "<td  align=\"center\" colspan=\"4\"><b>Quantidade de Peças</b></td>"
				+ "</tr>"
				+ "<tr>"
				+ "<td  align=\"center\"><b>Conformes</b></td>"
				+ "<td  align=\"center\"><b>Não Conformes</b></td>"
				+ "<td  align=\"center\"><b>Total</b></td>"
				+ "<td  align=\"center\"><b>Qtde. Amostragem</b></td>"
				+ "</tr>"
				+ "<tr>"
				+ "<td align=\"center\">"
				+ info.getDtWIDev()
				+ "</td>"
				+ "<td align=\"center\">"
				+ conformConcat
				+ "</td>"
				+ "<td align=\"center\">"
				+ notConformConcat
				+ "</td>"
				+ "<td align=\"center\">"
				+ info.getTotality()
				+ "</td>"
				+ "<td align=\"center\">"
				+ sampleQtt
				+ "</td>"
				+ "</tr>"
				+ "<tr>"
				+ "<td colspan=\"5\"><b>1. Laudo</b>(Informação da quantidade de peças não conformes por tipo de defeito)</td>"
				+ "</tr>"
				+ "<td colspan=\"5\">"
				+ info.getDescConclusion()
				+ "</td>"
				+ "<table border=\"1\" width=\"600\" height=\"250\" cellspacing=\"0\">"
				+ "<tr>"
				+ "<td colspan=\"5\">"
				+ createImgTag(info.getParamRecQltRepId()) 
				+ "</td>"
				+ "</tr>"
				+ "</table>"
				+ "<tr>"
				+ "<td colspan=\"5\"><b>Data de Devolução ao Estoque: </b>"
				+ info.getDtWIDev()
				+ "</td>"
				+ "</tr>"
				+ "<tr>"
				+ "<td colspan=\"5\"><b>Responsável pela Conclusão: </b>"
				+ info.getResponsibleConclusion()
				+ "</td>"
				+ "</tr>"
				+ "</table>"
				+ "<br />"
				+ "<table border=\"1\" width=\"600\" cellspacing=\"0\">"
				+ "<tr>"
				+ "<td colspan=\"4\"><b>2. Correções</b></td>"
				+ "</tr>"
				+ "<tr>"
				+ "<td colspan=\"4\">"
				+ info.getCorrectionsConclusion()
				+ "</td>"
				+ "</tr>"
				+ "</table>"
				+ "<br />"
				+ "<table border=\"1\" width=\"600\" cellspacing=\"0\">"
				+ "<tr>"
				+ "<td colspan=\"3\"><b>3. Parecer Final</b></td>"
				+ "</tr>"
				+ "<tr>"
				+ "<td align=\"center\" width=\"230\">APROVADO ("
				+ approvated
				+ ")</td>"
				+ "<td align=\"center\" width=\"230\">REPROVADO ("
				+ rejected
				+ ")</td>"
				+ "<td align=\"center\" width=\"230\">APROVADO CONDICIONALMENTE ("
				+ partiallyApproved
				+ ")</td>" + "</tr>" + "</table>" + "<br />" + "</hr>" + "</h7>" + "</table>" + "</tbody>" + "</html>" ;

	return htmlHead + htmlImage + htmlBody;

2 Respostas

E

Pega a saída do html gerado pelo console e testa em:
https://validator.w3.org/#validate_by_input

brizola727

Bom dia amigo,
eu ja tinha testado nesse site, porém não da muito certo, pois eu tenho que tirar os apende da vida e deixar somente o html, eu consegui resolver de outra maneira, fiz o html separado sem apende e montei o relatorio, não consegui achar onde estava errado.

Mesmo assim agradeço a intenção.

Obrigado!

Criado 24 de junho de 2016
Ultima resposta 11 de jul. de 2016
Respostas 2
Participantes 2