HTML to PDF

HTML to PDF


最近在项目中需要把HTML页面转成PDF,查阅了一些资料,这里把实现方法记录一下供大家参考
JAR包:IText2.0.8.jar、core-renderer.jar、iTextAsian.jar         下载demo
HTML页面
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
    <title>测试中文编码</title>
    <style type="text/css">
        body{font-family: "SimSun"}
    </style>
</head>
<body>
    <div>测试中文编码</div>
</body>
</html>
java代码
package com.inspur.demo;

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;

import org.xhtmlrenderer.pdf.ITextRenderer;
import com.lowagie.text.pdf.BaseFont;

public class Html2PDF {

	private static void createPDF() throws Exception {
		String inputFile = "D:\\test.html";
		String url = new File(inputFile).toURI().toURL().toString();
		String outputFile = "D:\\test.pdf";

		OutputStream os = new FileOutputStream(outputFile);
		ITextRenderer renderer = new ITextRenderer();
		renderer.setDocument(url);

		org.xhtmlrenderer.pdf.ITextFontResolver fontResolver = renderer.getFontResolver();
		fontResolver.addFont("c:/windows/fonts/simsun.ttc", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);

		renderer.layout();
		renderer.createPDF(os);
		os.close();
		System.out.println("create pdf done!!");
	}

	public static void main(String[] args) throws Exception {
		Html2PDF.createPDF();
	}
}
运行结果
HTML to PDF_第1张图片
注意事项:
1.
必须是严格的XHTML文件
2. html页面的字体body{font-family: "SimSun"}要与java代码中c:/windows/fonts/simsun.ttc字体一致,若HTML含有多个字体或者字体不匹配,中文将无法显示
3. itextAsian.jar要与itext.*.jar要匹配。由于itext.5.*.jar中package发生了变化所以itextAsian.jar也要与之对应。
4. 若html中有大段的中文,在pdf中无法实现换行





你可能感兴趣的:(HTML to PDF)