import java.io.InputStream;
import org.xml.sax.InputSource;
import com.lowagie.text.DocListener;
import com.lowagie.text.html.HtmlParser;
import com.lowagie.text.html.SAXmyHtmlHandler;
import com.lowagie.text.pdf.BaseFont;
public class ITextSurportHtmlParser extends HtmlParser {
public ITextSurportHtmlParser(){
super();
}
public void goGB(DocListener document, InputStream is) throws Exception{
BaseFont bfChinese = BaseFont.createFont("/MSYH.TTF", BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
parser.parse(new InputSource(is), new SAXmyHtmlHandler(document, bfChinese));
}
}
Document document = new Document();
try {
FileOutputStream f=new FileOutputStream(filePath+File.separator
+ "email.pdf");
PdfWriter.getInstance(document,f);
document.open();
BaseFont bfChinese = BaseFont.createFont("/MSYH.TTF", BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
document.add(new Paragraph("Subject:"+email.getStrsubject(), new Font(bfChinese, 10, Font.NORMAL)));
document.add(new Paragraph("From:"+email.getStrfrom(), new Font(bfChinese, 10, Font.NORMAL)));
document.add(new Paragraph("To:"+email.getStrto(), new Font(bfChinese, 10, Font.NORMAL)));
document.add(new Paragraph("Dtattime:"+email.getDtattime(), new Font(bfChinese, 10, Font.NORMAL)));
document.add(new Paragraph("Content:", new Font(bfChinese, 10, Font.NORMAL)));
try{
String htmText = new String(("<html>"+email.getStrcontent()+"</html>").getBytes("UTF-8"),"ISO8859-1");
StringBufferInputStream html = new StringBufferInputStream(htmText);
ITextSurportHtmlParser p = new ITextSurportHtmlParser();
p.goGB(document, html);
}catch(Exception e){
System.out.println("邮件内容不是标准的XHTML,原文输出!");
document.add(new Paragraph(email.getStrcontent(), new Font(bfChinese, 10, Font.NORMAL)));
}
document.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}