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();
}
}
}