1.报错代码
String file1 = "C:\\Users\\86166\\Desktop\\新建文本文档 (16).html";
String url = new File(file1).toURI().toURL().toString();
String outputFile = "C:\\Users\\86166\\Desktop\\contractTemplate1111.pdf";
OutputStream os = new FileOutputStream(outputFile);
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(url);
// 解决中文问题
ITextFontResolver fontResolver = renderer.getFontResolver();
try {
fontResolver.addFont("web-admin\\web\\pdf-source\\simsun.ttc",
BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
renderer.layout();
try {
renderer.createPDF(os);//这里是报错行
System.out.println("转换成功!");
os.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
2.报错问题
java.lang.NullPointerException
at org.xhtmlrenderer.css.style.derived.BorderPropertySet.lighten(BorderPropertySet.java:120)
at org.xhtmlrenderer.render.BorderPainter.paintBorderSide(BorderPainter.java:112)
at org.xhtmlrenderer.render.BorderPainter.paint(BorderPainter.java:69)
at org.xhtmlrenderer.render.AbstractOutputDevice.paintCollapsedBorder(AbstractOutputDevice.java:149)
at org.xhtmlrenderer.newtable.TableCellBox.paintCollapsedBorder(TableCellBox.java:328)
at org.xhtmlrenderer.layout.Layer.paintCollapsedTableBorders(Layer.java:451)
at org.xhtmlrenderer.layout.Layer.paintBackgroundsAndBorders(Layer.java:254)
at org.xhtmlrenderer.layout.Layer.paint(Layer.java:329)
at org.xhtmlrenderer.pdf.ITextRenderer.paintPage(ITextRenderer.java:384)
at org.xhtmlrenderer.pdf.ITextRenderer.writePDF(ITextRenderer.java:348)
at org.xhtmlrenderer.pdf.ITextRenderer.createPDF(ITextRenderer.java:315)
at org.xhtmlrenderer.pdf.ITextRenderer.createPDF(ITextRenderer.java:246)
at cn.forp.pitaya.utils.freemarkerToPDF.PdfUtil.main(PdfUtil.java:69)
3.出问题的原因
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge;Chrome=1" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta name="generator" content="Aspose.Words for .NET 15.1.0.0" />
<xlink rel="xlink" href="http://www.w3.org/1999/xlink" name="xlink" />
<style type="text/css">
body{
font-family:SimSun;
font-size:14px;
}
@page {
size: 8.5in 11in;
@top-center{
content: element(pageHeader);
}
@bottom-center {
content: counter(page) " / " counter(pages);
}
}
#pageHeader{
position: running(pageHeader);
}
.webuploader-container{display:none !important}
.hide{display:none !important}
.form-control{display:none}
*{font-size: 12px !important;border-color: #999 !important}
.table-bordered,.table-bordered th,.table-bordered td{border-color: #999 !important}
h3{font-size: 16px !important}
.webuploader-pick{color: #ffffff !important;height: 34px !important;line-height: 1.5 !important;display: none}
.btn-primary{background-color: #2dc3e8 !important;color: #ffffff !important}
.btn-warning{background-color: #f0ad4e !important;color: #ffffff !important}
.flow-title{background-color: #fcfbf3 !important;color: #333333 !important;}
.info-table th{background-color: #ffffff !important}
.table-info{table-layout: fixed !important}
.table-info td:nth-child(2n+1),.table-combine>:first-child{background-color: #fcfbf3 !important;width: 120px !important}
.table-info th, .table-info td{padding: 3px 5px !important}
.table-info .info-table td{background-color: transparent !important}
.complex-form{overflow: hidden !important}
table[fieldtype="set"] th {white-space: normal !important}
input.hide{display: none !important;visibility: hidden !important}
#printView{position: static !important}
table th, table td{padding: 3px 5px !important;background-color: #ffffff !important;}
#flowFileArea>td,#flowFileArea+tr>td{padding: 0 !important}
table[table-data-view='attachments-pdf'] th, table[table-data-view='attachments-pdf'] td:first-child{display: none !important}
table[table-data-view='attachments-pdf'] th, table[table-data-view='attachments-pdf'] td:last-child{display: none !important}
/*视图标题样式*/
.form_title{
font-size: 18px !important;
text-align: center !important;
line-height: 40px !important;
}
.table-info{width: 100%;border-collapse: collapse;border-top: 1px solid #dddddd; border-left: 1px solid #dddddd;} /*border-collapse: collapse;这个样式iText可能是找不到 报错了*/
.table-info th,.table-info td{padding: 5px;border-right: 1px solid #dddddd;border-bottom: 1px solid #dddddd;word-break: break-all;vertical-align: middle;}
.table-info tr:last-child th,.table-info tr:last-child td{border-bottom: none}
.table-info thead{border-bottom: 1px solid #dddddd}
.table-info thead th{line-height: 2.6;text-align: center;background-color: #eff8ff !important;}
.table-info td:nth-child(2n+1){width: 180px;text-align: right;background-color: #eff8ff !important;;padding:12px 5px; }
.table-info tr>:last-child{border-right: none}
p{margin: 1px 0 0 0;}
</style>
</head>
<body>
<div class="pd-10 bd" style="margin-top: 10px;border-left:0px;border-right:0px;" id="flowViewMainArea">
<form class="form-horizontal" id="mainForm" enctype="multipart/form-data" action="" method="post">
${formViewHtml} /*这里面放的是标签*/
</form>
</div>
</body>
</html>
4.解决办法
只能在style里面进行样式的改变,替换掉border-collapse: collapse;这个样式