当前位置: 代码迷 >> J2EE >> 大神来解释下这个步骤的代码都是什么意思
  详细解决方案

大神来解释下这个步骤的代码都是什么意思

热度:3   发布时间:2016-04-17 23:04:39.0
大神来解释下这个方法的代码都是什么意思?

try {
renderer.setDocumentFromString(body); //?
ITextFontResolver fontResolver = renderer.getFontResolver(); //?
fontResolver.addFont("C:/Windows/fonts/arialuni.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);//就知道这个是设置字体的
renderer.getSharedContext().setBaseURL("file:/" + path1);  //?
renderer.layout();   //?
renderer.createPDF(os); //?
renderer.finishPDF(); //?
} catch (com.lowagie.text.DocumentException e) {
e.printStackTrace();




------解决思路----------------------

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

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

/**
 * @author zhuangqing
 */

public class Test {

    public static void main(String[] args) {
        //实例化一个ITextRenderer
        ITextRenderer renderer = new ITextRenderer();
        //要转成PDF的html文本内容
        String body = "<html><body>Hello,World</body></html>";
        String path1 = "D:/work/project/src/webapp/";
        OutputStream os;
        try {
            //创建输出流,指定pdf存储文件
            os = new FileOutputStream("D:/test.pdf");
            //html转成Document对象并设置给renderer,后续renderer可通过操作Document来获取相关html内容。
            renderer.setDocumentFromString(body);
            //创建字体解析器
            ITextFontResolver fontResolver = renderer.getFontResolver();
            //添加字体支持
            fontResolver.addFont("C:/Windows/fonts/arialuni.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);//就知道这个是设置字体的
            //设置相对路径、可以解决html中的相对路径问题,如图片相对路径
            renderer.getSharedContext().setBaseURL("file:/" + path1);
            //生成pdf界面布局
            renderer.layout();
            //开始创建PDF并往目标文件导出pdf数据
            renderer.createPDF(os);
            //完成创建,自动关闭Document资源
            renderer.finishPDF();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
  相关解决方案