package br.com.citframework.util;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import org.w3c.dom.Document;
import org.w3c.tidy.Tidy;
import org.xhtmlrenderer.pdf.ITextRenderer;
import com.lowagie.text.DocumentException;
import com.lowagie.text.html.HtmlParser;
public class Html2Pdf {
public static void convert(String input, OutputStream out) throws DocumentException, UnsupportedEncodingException{
convert(new ByteArrayInputStream(input.getBytes("ISO-8859-1")), out);
}
/**
* O campo style, define tamanhos da pagina e margens:
* Exemplo: <style>@page {size: 4.18in 6.88in; margin: 30px 20px 15px 35px; size:landscape;}</style>
* @param input
* @param out
* @param style
* @throws DocumentException
*/
public static void convert(String input, OutputStream out, String style) throws DocumentException{
String str = input;
if (str == null){
str = "";
}
str = style + str;
convert(new ByteArrayInputStream(str.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);
}
public static void convert(com.lowagie.text.Document document, String strNameFileInDisk) throws DocumentException{
HtmlParser.parse(document, strNameFileInDisk);
}
}