81,092
社区成员
发帖
与我相关
我的任务
分享
plumbing.render INFO:: Using CSS implementation from: org.xhtmlrenderer.context.StyleReference
plumbing.exception WARNING:: Unhandled exception. tables
org.xhtmlrenderer.util.XRRuntimeException: tables
at org.xhtmlrenderer.pdf.ITextFontResolver.addFont(ITextFontResolver.java:96)
at test.byd.com.dcc.unittest.TestPdf.main(TestPdf.java:114)
Caused by: java.lang.NoSuchFieldException: tables
at java.lang.Class.getDeclaredField(Unknown Source)
at org.xhtmlrenderer.pdf.TrueTypeUtil.extractTables(TrueTypeUtil.java:66)
at org.xhtmlrenderer.pdf.TrueTypeUtil.populateDescription(TrueTypeUtil.java:77)
at org.xhtmlrenderer.pdf.ITextFontResolver.addFont(ITextFontResolver.java:94)
... 1 more
plumbing.load INFO:: TIME: parse stylesheets 140ms
plumbing.match INFO:: media = print
plumbing.match INFO:: Matcher created with 119 selectors
plumbing.exception WARNING:: IO problem for file:/public/global/images/byd_logo.png
private static Cell newCell(String str,int align,Color color){
Cell cell=null;
try {
cell = new Cell(new Paragraph(str,setChineseFont()));
cell.setHorizontalAlignment(align);
cell.setUseAscender(false);
cell.setVerticalAlignment(Element.ALIGN_CENTER);//上下居中
cell.setBackgroundColor(color);
//cell.setBorderWidth(1);
} catch (BadElementException e) {
e.printStackTrace();
}
return cell;
}
/**
* 设置中文
* @author maHai
* @return Font
*/
private static Font setChineseFont() {
BaseFont base = null;
Font fontChinese = null;
try {
base = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.EMBEDDED);
fontChinese = new Font(base, 12, Font.NORMAL);
} catch (DocumentException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return fontChinese;
}
这样应该就可以
<html>
<head>
<title>公司级管理文件履历表</title>
</head>
<body class="body_center">
<div class="fileTemplate_div">
<div class="div_he">
<div class="div_fl"><img alt="" src="/public/global/images/byd_logo.png" width="72" height="46" style="float:left;" /> </div>
</div>
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="fileTemplate_table">
<tr>
<td class="ft_tdfl st_5"><strong>文件名称</strong></td>
<td colspan="3"><input id="" type="text" name="textfield5" class="text_comFRT st_5" /></td>
<td class="ft_tdfl st_5"><strong>文件编号</strong></td>
<td><input id="" type="text" name="textfield5" class="text_comFRT st_5" /></td>
</tr>
<tr>
<td class="ft_tdfl st_5" width="15%"><strong>文件层级</strong></td>
<td width="20%"><input id="" type="text" name="textfield5" class="text_comFRT st_5" /></td>
<td class="ft_tdfl st_5" width="15%"><strong>版本号</strong></td>
<td width="20%"><input id="" type="text" name="textfield5" class="text_comFRT st_5" /></td>
<td class="ft_tdfl st_5" width="15%"><strong>页次</strong></td>
<td width="15%" class="st_5">1/<input id="" type="text" name="textfield5" class="text_page st_5" /></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="fileTemplate_table" style="margin-top:90px;">
<tr>
<td class="ft_tdfl st_5">编制部门:</td>
<td colspan="3"><input id="" type="text" name="textfield5" class="text_comFRT st_5" /></td>
</tr>
<tr>
<td class="ft_tdfl st_5">适用范围:</td>
<td colspan="3"><input id="" type="text" name="textfield5" class="text_comFRT st_5" /></td>
</tr>
<tr>
<td class="ft_tdfl st_5">拟稿人:</td>
<td colspan="3"><input id="" type="text" name="textfield5" class="text_comFRT st_5" /></td>
</tr>
<tr>
<td class="ft_tdfl st_5">发行:</td>
<td colspan="3"><input id="" type="text" name="textfield5" class="text_comFRT st_5" /></td>
</tr>
<tr>
<td class="ft_tdfl st_5">受控状态:</td>
<td width="40%" class="st_5"><label></label>
<input id="" name="" type="checkbox" alt="" class="checkbox_css"/> 非受控
<input id="" name="" type="checkbox" alt="" class="checkbox_css"/> 受控
</td>
<td class="ft_tdfl st_5">受控号:</td>
<td width="20%"><input id="" type="text" name="textfield5" class="text_comFRT st_5" /></td>
</tr>
<tr>
<td class="ft_tdfl st_5">秘密等级:</td>
<td colspan="3" class="st_5"><label></label>
<input id="" name="" type="checkbox" alt="" class="checkbox_css"/> 绝密
<input id="" name="" type="checkbox" alt="" class="checkbox_css"/> 机密
<input id="" name="" type="checkbox" alt="" class="checkbox_css"/> 秘密
<input id="" name="" type="checkbox" alt="" class="checkbox_css"/> 一般
</td>
</tr>
</table>
<div class="fileTemplate_fl st_5">文件发行/修订履历</div>
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="fileTemplate_table">
<tr>
<td class="ft_tdfl st_5">版本号</td>
<td class="ft_tdfl st_5">生效日期</td>
<td class="ffl_tdfl st_5">修改内容</td>
<td class="ft_tdfl st_5">拟稿</td>
<td class="ft_tdfl st_5">审核</td>
<td class="ft_tdfl st_5">批准</td>
</tr>
<tr>
<td><input id="" type="text" name="textfield5" class="text_comFRT st_5" value="A/49" /><span style="display:block;">A/49</span></td>
<td><input id="" type="text" name="textfield5" class="text_comFRT st_5" value="Mon Oct 10 16:21:06 CST 2011" />Mon Oct 10 16:21:06 CST 2011</td>
<td><textarea id="" name="textarea2" rows="1" class="textarea_css st_5" >ceshi</textarea>ceshi</td>
<td><input id="" type="text" name="textfield5" class="text_comFRT st_5" value="xiaohe" />xiaohe</td>
<td><input id="" type="text" name="textfield5" class="text_comFRT st_5" value="xiaohe" />xiaohe</td>
<td><input id="" type="text" name="textfield5" class="text_comFRT st_5" value="xiaohe" />xiaohe</td>
</tr>
</table>
<div class="comFRT_footer">@比亚迪股份有限公司 版权所有</div>
</div>
</body>
</html>
public static void main(String[] args) throws Exception {
String inputFile = "D:/pdfs.xhtml";
String url = new File(inputFile).toURI().toURL().toString();
String outputFile = "D:/firstdochhhh.pdf";
OutputStream os = new FileOutputStream(outputFile);
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(url);
// 解决中文支持问题
ITextFontResolver fontResolver = renderer.getFontResolver();
fontResolver.addFont("C:/Windows/Fonts/arialuni.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
// 解决图片的相对路径问题
// renderer.getSharedContext().setBaseURL("file:/D:/Work/Demo2do/Yoda/branch/Yoda%20-%20All/conf/template/");
renderer.layout();
renderer.createPDF(os);
os.close();
}