将html文件转换为pdf文件,代码如下:
OutputStream os = null;
try {
File f = new File("F:/Test");
if (!f.exists()) {
f.mkdir();
}
os = new FileOutputStream("F:/Test/file.pdf");
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(); 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\">");
html.append("<head>"); html.append("<meta
http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"
/>"); html.append("<style type=\"text/css\">body
{font-family:SimSun;}</style>"); html.append("</head>");
html.append("<body>"); html.append("<div>支持中文</div>");
html.append("</body>"); html.append("</html>");
renderer.setDocumentFromString(html.toString());
renderer.layout();
renderer.createPDF(os);
System.out.println("转换成功=======");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
必须注意的是一定要加上<style type=\"text/css\">body {font-family:SimSun;}</style>
否则可能会输出中文乱码,或者不能输出中文。
需要下载的core-renderer.jar、iText-2.0.8.jar这两个包。