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/