package cn.spring.test.htmltopdf; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; import org.xhtmlrenderer.pdf.ITextFontResolver; import org.xhtmlrenderer.pdf.ITextRenderer; import com.lowagie.text.pdf.BaseFont; public class HtmltoPDF { public static void main( String[] args ) throws Exception{ // htmlToPdf(); // htmlToPdf2(); htmlToPdf3(); } // 不支持中文 public static void htmlToPdf() throws Exception { String inputFile = "D:/Test/flying.html"; String url = new File( inputFile ).toURI().toURL().toString(); String outputFile = "D:/Test/flying.pdf"; OutputStream os = new FileOutputStream( outputFile ); ITextRenderer renderer = new ITextRenderer(); renderer.setDocument( url ); renderer.layout(); renderer.createPDF( os ); os.close(); } // 支持中文 public static void htmlToPdf2() throws Exception { String outputFile = "F:/TestDemo/demo_3.pdf"; OutputStream os = new FileOutputStream(outputFile); ITextRenderer renderer = new ITextRenderer(); ITextFontResolver fontResolver = renderer.getFontResolver(); fontResolver.addFont("C:/Windows/fonts/simsun.ttc", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); StringBuffer html = new StringBuffer(); // DOCTYPE 必需写否则类似于 这样的字符解析会出现错误 html.append("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">"); html.append("<html xmlns=\"http://www.w3.org/1999/xhtml\">"). append("<head>") .append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />") .append("<style type=\"text/css\" mce_bogus=\"1\">body {font-family: SimSun;}</style>") .append("</head>") .append("<body>"); html.append("<div>支持中文!</div>"); html.append("</body></html>"); renderer.setDocumentFromString(html.toString()); // 解决图片的相对路径问题 // renderer.getSharedContext().setBaseURL("file:/F:/teste/html/"); renderer.layout(); renderer.createPDF(os); System.out.println("======转换成功!"); os.close(); } public static void htmlToPdf3() throws Exception{ String inputFile = "F:/TestDemo/test.html"; String outFile = "F:/TestDemo/test.pdf"; OutputStream os = null; os = new FileOutputStream(outFile); ITextRenderer renderer = new ITextRenderer(); ITextFontResolver fontResolver = renderer.getFontResolver(); fontResolver.addFont("C:/Windows/fonts/simsun.ttc", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); String url = new File( inputFile ).toURI().toURL().toString(); System.out.println("=============url: "+url); renderer.setDocument(url); renderer.layout(); renderer.createPDF(os); System.out.println("======转换成功!"); os.close(); } }
JAVA中HTML转PDF
HtmltoPDF
猜你喜欢
转载自springlin.iteye.com/blog/1473609
今日推荐
周排行