private static void addPageFooter(Document doc, String testTaskNo, List<byte[]> checkUsers, String checkDate
) {
System.out.println("文档节:" + doc.getSections().getCount());
for (Section section : doc.getSections()) {
// 检查当前节的页眉是否已经存在
HeaderFooter existingHeader = section.getHeadersFooters().getByHeaderFooterType(HeaderFooterType.FOOTER_PRIMARY);
if (existingHeader != null) {
// 如果存在,移除已存在的页眉
section.getHeadersFooters().remove(existingHeader);
}
// 设置当前节的起始页码
section.getPageSetup().setPageStartingNumber(1);
// 创建新的页脚
HeaderFooter header = new HeaderFooter(doc, HeaderFooterType.FOOTER_PRIMARY);
section.getHeadersFooters().add(header);
// 使用DocumentBuilder添加内容
DocumentBuilder builder = new DocumentBuilder(doc);
builder.moveToSection(doc.getSections().indexOf(section));
builder.moveToHeaderFooter(HeaderFooterType.FOOTER_PRIMARY);
builder.getParagraphFormat().setAlignment(ParagraphAlignment.LEFT);
Font font = builder.getFont();
font.setSize(10);
font.setName("Times New Roman");
builder.write("GQI检测单号:" + testTaskNo);
builder.write("\t\t\t\t");
double left = 185; // 不额外偏移
//设置检测员,插入签名图片
builder.write("检测员:");
for (byte[] checkUser : checkUsers) {
Shape shape = builder.insertImage(new ByteArrayInputStream(checkUser), ConvertUtil.millimeterToPoint(21.0),
ConvertUtil.millimeterToPoint(10.0));
shape.setLeft(left + ConvertUtil.millimeterToPoint(21.0));
left += ConvertUtil.millimeterToPoint(21.0);
shape.setWrapType(WrapType.SQUARE);
}
builder.write("\t\t\t\t\t\t\t\t\t\t");
builder.write("第 ");
builder.insertField("PAGE ", null);
builder.write(" 页");
builder.writeln();
builder.getParagraphFormat().setAlignment(ParagraphAlignment.LEFT);
font.setSize(10);
font.setName("Times New Roman");
builder.write("实施日期:" + "2019-06-10");
builder.write("\t\t\t\t\t\t\t\t\t\t\t\t\t\t");
//设置检测日期
builder.write("检测日期:" + checkDate);
doc.updatePageLayout();
doc.updateFields();
}
}
在对文档生成统一页眉时,有些页的不会添加生成页眉