Convertendo HTML para PDF

Galera, eu sei que o tópico é antigo mais vou postar uma solução linda que eu encontrei. Vai que via google alguém chega aqui… assim será útil.

Depois de ler todas as respostas a cima e apanhar bastante (sem sucesso) para converter HTML em PDF de uma forma rápida eu achei um post de um cara chamado EderBaum. O post dele é excepcional porque mostra como fazer isso de uma forma muito simples e fácil. Aqui está o post original dele: http://javafree.uol.com.br/artigo/866449/Converta-HTML-para-PDF-com-06-linhas-de-Codigo.html

Abaixo está o código criado pelo EderBaum no seu post com uma e outra alteração que eu fiz:

import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.InputStream;
import java.io.OutputStream;

import org.w3c.dom.Document;
import org.w3c.tidy.Tidy;
import org.xhtmlrenderer.pdf.ITextRenderer;

import com.lowagie.text.DocumentException;
  
/** 
 * @Autor Eder Baum 
 */  
public class Html2Pdf {  
	
	
	public static void main(String[] args) {		
		try {
			OutputStream os = new FileOutputStream("C:\\Documents and Settings\\Zell Ruskea\\Desktop\\hello.pdf");
			convert(getHTML(), os);             
			os.close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} 
		
	}
	
	public static String getHTML() {
		try {
			String text = "";
			FileReader in = new FileReader("C:/Documents and Settings/Zell Ruskea/Desktop/Teste.html");
			
			BufferedReader buffer = new BufferedReader(in);
			
			while(buffer.ready()) {
				text += buffer.readLine();
			}
			
			
			return text;
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
	}
	
	
  
   public static void convert(String input, OutputStream out) throws DocumentException{  
        convert(new ByteArrayInputStream(input.getBytes()), out);  
   }  
     
   public static void convert(InputStream input, OutputStream out) throws DocumentException{  
       Tidy tidy = new Tidy();             
       Document doc = tidy.parseDOM(input, null);  
        ITextRenderer renderer = new ITextRenderer();  
        renderer.setDocument(doc, null);  
        renderer.layout();         
        renderer.createPDF(out);                
   }     
  
}

Jars necessários:
Tidy : http://jtidy.sourceforge.net
XHTMLRenderer : https://xhtmlrenderer.dev.java.net/
Itext: http://www.lowagie.com/iText

Abraço! o/

Se não me engano essa é a mesma formula usada no meu post não?
veja os comentários.

Você usou o

Putzzz, vendo melhor aqui eu também to com esse problema das imagens que não vem =/
Se eu descobrir alguma solução eu posto aqui o/
Show essa carta... agora que vi hauuhahua xD  Mas ainda prefiro o Magic xP

sei que faz tempo, sou novo no forum tambem , mas vai que alguem ainda precisa dessa forcinha.

esse problema com as imagens tambem tive, ela aparecia no html porem quando ia pro pdf nao apresentava.

percebi que quando as imagens sao redimencionadas mais especificamente “diminuidas” via código html, quando ela vai pro pdf esses comandos nao surtem efeito, a solução que encontrei foi redimencionando a imagem antes de coloca-la no html e passar essa imagem sem nenhum comando de redimencionamento.

bom espero ter ajudado!

Hummm… legal. Valeu pela resposta e ajuda Vinivinimoraes.