Converta HTML para PDF com 06 linhas de Código

Segue o code modificado.

... //parte do codigo que mudou PdfReader reader = new PdfReader(baos.toByteArray()); for (int i = 0; i < reader.getNumberOfPages(); i++) { copy.addPage(copy.getImportedPage(reader, i + 1)); } ...

Boa tarde comu,

estava tentando, a algumas semanas atras, add uma imagem carregada de uma pasta do meu cpu para a geracao do PDF.
Porem utilizando o iText o imagem n eh carreada quando utilizamos a tag: <img> do html, teremos que usar no atributo SRC o seguinte prefixo:

<img src='file:///C:/tmp/temp.jpg' alt='teste imagem iText' />

como estava tentando colocar diretamente o caminho n rolava, pode ateh ser uma falta de conhecimento da tag, mas, caso alguem tenha o mesmo problema, vai ae minha dica.

o que ainda n conseguir fazer foi add o rodape e cabecalho com o CSS?
Some one have any idea?

tnxs

Eu estou tendo problemas com a tag FONT, pois é como se a classe ignorasse essa tag. Tentei utilizar o DropFontTag mas nao adiantou. Gostaria de saber se alguem tem uma solução. Abraço.

deves utilizar CSS para definir os stilos de fontes, sizes etc e tal.

Era esse o problema mesmo. Colocando a formatação de cores e fontes em CSS e inline ao arquivo html a classe gera com sucesso o pdf. Unico problema parece ser algumas fontes, mas as 3 familias principais que são serif, sans-serif e monospace funcionam perfeitamente.
Obrigado pela ajuda!

Boa tarde!
Fiz todo o processo de conversão de HTML para PDF, meu problema é tenho de ler algumas imagens apresentados no PDF de um banco de dados.
Alguém tem uma sugestão de como fazer este processo?
Abraço.

Galera seguinte, os fontes passados neste tópico realmente funcionam, so que quando tento passar uma string para ser gerado o PDF e nessa string tem acentuação, ele não imprime no PFD a acentuação neim caracteres especiais… alguem poderia me ajudar…?

segue o código que estou fazendo:

		String relatorio = "";
		
		relatorio  = "&lt;html&gt;";
		relatorio += "&lt;div align='center'&gt;";
		relatorio += "<img   >";
		relatorio += "&lt;/div&gt;";
		relatorio += "<p>";		
		relatorio += "&lt;h2&gt;OFÍCIO n°. 000/2008&lt;/h2&gt;";		
		relatorio += "&lt;/html&gt;"; 	 
	 
	 
		try {
			OutputStream os = new FileOutputStream(new File(
					"/home/roberiomatos/hello.pdf"));

			Html2Pdf.convert(relatorio, os);
			os.close();
		} catch (Exception ex) {
			ex.printStackTrace();
		}

Use algo pra converter estes caracteres para HTMLEntities

https://htmlentities.dev.java.net/

Não testei, mas deve funcionar.

Olá, boa Tarde Pessoal!!
Somos de uma indústria de grande porte, e estamos com vagas em aberto para Programadores Java. Os interessados favor enviarem o currículo para cbassan@stillnet.com.br
Aguardo um retorno.

Sobre css externo, alguém conseguiu? Aqui funcionou colocando o css no próprio html, mas ao usar

<link href="file:///C:/estilo.css" rel="stylesheet" type="text/css" />

ou

@import url("file:///C:/estilo.css");

ocorre o erro:
org.xhtmlrenderer.util.XRRuntimeException: Failed on parsing CSS sheet at file:/C:/estilo.css

obs: quando o caminho está errado, dá uma mensagem específica pra isso.

Obrigado!

Como eu faço para transformar HTML com CSS em PDF???

Só o Html eu consigo mas ele com css não consigo me de alguma dica ai pessoal!

VLW!

como eu faço para pegar esse relatório gerado e gravar em um banco de dados???
quando eu tenho que anexar um arquivo eu sempre utilizo o fileUpload só que no caso o arquivo não vai ser buscado pelo usuário
ao salvar esse relatório terá que criar e automaticamente gravar como um anexo no banco de dados
alguem poderia me dar uma ajudinha ai?
vlw

Resolvido!!!

a solução era mais simples do que eu imaginava!
quando passamos o caminho em que queremos que seja criado o arquivo

OutputStream os = new FileOutputStream("C:\\Teste.pdf");
Html2Pdf.convert(buffer.toString(), os);

é só utilizar desta outra forma

ByteArrayOutputStream stream = new ByteArrayOutputStream();
Html2Pdf.convert(rel, stream);

e na hora de setar um atributo do tipo byte é só colocar atributo.set(stream.toByteArray());

quero chamar um pagina que roda no meu loucalhoot e manda ela vira .pdf
eu chamo o metodo doPost do servlet que está assim:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		Html2Pdf.convert(request.getParameterValues("xxxxxx"));
		request.getParameter("http://localhost:8080/xxxx/xxxx.do?xxx=1");
											
		        		      
	response.sendRedirect("index.do");	
}

O servlet chama o metodo converte que estpa asssim:

public static void convert(StringBuffer requestURL, String localName) {

    try{  
           	OutputStream os = new FileOutputStream("/home/vinicius/teste.pdf");   
       	URL u = new URL ("http://localhost:8080/xxxx/xxxxx.do?xxx=1");  
		URLConnection conn = u.openConnection();  
		InputStream is = conn.getInputStream();
		StringBuffer buffer = new StringBuffer();
		Scanner scanner = new Scanner(is);
        while(scanner.hasNextLine()){buffer.append(scanner.nextLine());}  
        String doc = buffer.toString();  
		Html2Pdf.convert(doc, os);             
		os.close();    
    }  
    catch(FileNotFoundException e){System.out.println("[Arquivo não encontrado.]");e.printStackTrace();}  
    catch(IOException e){e.printStackTrace();}  
    catch(DocumentException e){e.printStackTrace();} 		
}  

Ta morrendo no metodo, ou seja tá alguma coisa errada, só que tenho certeza que é no doPost, se alguem me puder ajudar, agradeço.

O endereçamento está assim pq é Linux q eu uso !

Como eu faço para converter uma página jsp da minha aplicação para pdf ??? :frowning:

Olá galera, tou conseguindo gerar o PDF beleza. Tenho somente 1 problema que é justamente referente a textos justificados (

). O PDF não está interpretando essa solicitação.
Agradeço caso alguém possa me ajudar.

Estou usando este código e está funcionando certinho…Mas to precisando iserir um rodapé e um cabeçalho na página…como faço ???
com o Document do IText puro eu consigo mas preciso usar o Tidy para obter o html processado…

Estou usando este código e está funcionando certinho…Mas to precisando iserir um rodapé e um cabeçalho na página…como faço ???
com o Document do IText puro eu consigo mas preciso usar o Tidy para obter o html processado…

Edder, muito obrigado pelas informações. Realmente solucionaram meus problemas.

Abraços