一、分页问题

问题,如下图所示,长表格在跨页时被截断:

freemarker 转 pdf 表格分页被截断、分页标记和中文不显示问题_css

解决这个问题,通过在模板中设置样式来解决,代码如下:

table {
page-break-inside:auto;
-fs-table-paginate:paginate;
border-spacing:0;
table-layout:fixed;
word-break:break-strict;
cellspacing:0;cellpadding:0;
border: solid 1px #ccc;
padding: 2px 2px;
}
tr {
page-break-inside:avoid;
page-break-after:auto;
}

二、主动分页

通过 html 代码来主动分页的代码如下:

<h1>First Page</h1>
<div style="page-break-after:always;"></div>
<h1>Second Page</h1>
<div style="page-break-after:always;"></div>
<h1>第三页</h1>

三、中文不显示

1、在样式中指定字体

body {
font-family: SimSun;
}

2、Java 代码载入字体文件

ITextRenderer renderer = new ITextRenderer();
renderer.getFontResolver().addFont("D:\\Downloads\\templates\\font\\simsun.ttc", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);

(END)