2024-04-14 21:05:01 +08:00

620 lines
26 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.zhgd.xmgl.pdf;
import com.google.gson.JsonObject;
import com.itextpdf.text.*;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.draw.DottedLineSeparator;
import com.itextpdf.text.pdf.draw.LineSeparator;
import com.zhgd.jeecg.common.mybatis.EntityMap;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.MapUtils;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
/**
* @program: wisdomSite
* @description:
* @author: Mr.Peng
* @create: 2022-06-01 11:28
**/
@Slf4j
public class PdfUtils {
// 定义全局的字体静态变量
private static Font titlefont;
private static Font headfont;
private static Font keyfont;
private static Font textfont;
// 静态代码块
static {
try {
// 不同字体这里定义为同一种字体包含不同字号、不同style
BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
titlefont = new Font(bfChinese, 16, Font.BOLD);
headfont = new Font(bfChinese, 14, Font.BOLD);
keyfont = new Font(bfChinese, 10, Font.BOLD);
textfont = new Font(bfChinese, 10, Font.NORMAL);
} catch (Exception e) {
log.error("error", e);
}
}
// 生成PDF文件
public static void generatePDF1(Document document, List<EntityMap> list, String monthTitle,String projectName) throws Exception {
// 优化打印后的签名宽高
BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
textfont = new Font(bfChinese, 13, Font.NORMAL);
// 优化打印
//textfont = new Font(bfChinese, 15, Font.NORMAL);
// 段落
Paragraph paragraph = new Paragraph("工人考勤表", titlefont);
paragraph.setAlignment(1); // 设置文字居中 0靠左 1居中 2靠右
paragraph.setIndentationLeft(12); // 设置左缩进
paragraph.setIndentationRight(12); // 设置右缩进
paragraph.setFirstLineIndent(24); // 设置首行缩进
paragraph.setLeading(20f); // 行间距
paragraph.setSpacingBefore(5f); // 设置段落上空白
paragraph.setSpacingAfter(10f); // 设置段落下空白
// 直线
Paragraph p1 = new Paragraph();
p1.add(new Chunk(new LineSeparator()));
// 点线
Paragraph p2 = new Paragraph();
p2.add(new Chunk(new DottedLineSeparator()));
// 超链接
// Anchor anchor = new Anchor("日期");
//// anchor.setReference("2020");
// // 定位
// Anchor gotoP = new Anchor("项目名称");
// gotoP.setReference("#top");
// 添加图片
// Image image =
// Image.getInstance("https://img-blog.csdn.net/20180801174617455?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zNzg0ODcxMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70");
// image.setAlignment(Image.ALIGN_CENTER);
// image.scalePercent(40); //依照比例缩放
// 表格
// PdfPTable table = createTable(new float[] { 40, 120, 120, 120, 80, 80
// });
PdfPTable table = createTable2(38);
table.setWidthPercentage(100); // 宽度100%填充
// float[] columnWidths = { 0.8f, 1.8f, 2.5f, 2.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f,
// 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f,
// 0.5f, 0.5f, 0.5f, 0.5f, 1.2f, 1.5f, 2.5f };
// 优化打印后的签名宽高
float[] columnWidths = { 0.8f, 1.8f, 2.5f, 2.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f,
0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f,
0.5f, 0.5f, 0.5f, 0.5f, 1.2f, 3.0f, 2.5f };
table.setWidths(columnWidths);
table.addCell(createCell("时间: " + monthTitle, headfont, Element.ALIGN_LEFT, 38, false));
table.addCell(createCell("项目名称: " + projectName, headfont, Element.ALIGN_LEFT, 38, false));
table.addCell(createCell("序号", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("姓名", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("部门/班组", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("人员类型", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("1", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("2", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("3", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("4", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("5", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("6", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("7", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("8", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("9", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("10", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("11", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("12", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("13", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("14", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("15", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("16", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("17", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("18", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("19", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("20", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("21", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("22", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("23", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("24", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("25", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("26", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("27", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("28", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("29", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("30", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("31", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("出勤天数合计", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("本人签名确认", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("备注", keyfont, Element.ALIGN_CENTER));
int index=0;
for (EntityMap data:list) {
table.addCell(myCreateCell(String.valueOf(index + 1), textfont));
index++;
// 出勤合计
int cqMaxx = 0;
table.addCell(myCreateCell(MapUtils.getString(data,"workerName"), textfont));
table.addCell(myCreateCell(MapUtils.getString(data,"departmentTeamName"), textfont));
table.addCell(myCreateCell(MapUtils.getString(data,"personTypeName"), textfont));
String cq1 = "";
if (!"0".equals(MapUtils.getString(data,"day1"))) {
cq1 = "";
cqMaxx = cqMaxx + 1;
} else {
cq1 = " ";
}
table.addCell(myCreateCell(cq1, textfont));
String cq2 = "";
if (!"0".equals(MapUtils.getString(data,"day2"))) {
cq2 = "";
cqMaxx = cqMaxx + 1;
} else {
cq2 = " ";
}
table.addCell(myCreateCell(cq2, textfont));
String cq3 = "";
if (!"0".equals(MapUtils.getString(data,"day3"))) {
cq3 = "";
cqMaxx = cqMaxx + 1;
} else {
cq3 = " ";
}
table.addCell(myCreateCell(cq3, textfont));
String cq4 = "";
if (!"0".equals(MapUtils.getString(data,"day4"))) {
cq4 = "";
cqMaxx = cqMaxx + 1;
} else {
cq4 = " ";
}
table.addCell(myCreateCell(cq4, textfont));
String cq5 = "";
if (!"0".equals(MapUtils.getString(data,"day5"))) {
cq5 = "";
cqMaxx = cqMaxx + 1;
} else {
cq5 = " ";
}
table.addCell(myCreateCell(cq5, textfont));
String cq6 = "";
if (!"0".equals(MapUtils.getString(data,"day6"))) {
cq6 = "";
cqMaxx = cqMaxx + 1;
} else {
cq6 = " ";
}
table.addCell(myCreateCell(cq6, textfont));
String cq7 = "";
if (!"0".equals(MapUtils.getString(data,"day7"))) {
cq7 = "";
cqMaxx = cqMaxx + 1;
} else {
cq7 = " ";
}
table.addCell(myCreateCell(cq7, textfont));
String cq8 = "";
if (!"0".equals(MapUtils.getString(data,"day8"))) {
cq8 = "";
cqMaxx = cqMaxx + 1;
} else {
cq8 = " ";
}
table.addCell(myCreateCell(cq8, textfont));
String cq9 = "";
if (!"0".equals(MapUtils.getString(data,"day9"))) {
cq9 = "";
cqMaxx = cqMaxx + 1;
} else {
cq9 = " ";
}
table.addCell(myCreateCell(cq9, textfont));
String cq10 = "";
if (!"0".equals(MapUtils.getString(data,"day10"))) {
cq10 = "";
cqMaxx = cqMaxx + 1;
} else {
cq10 = " ";
}
table.addCell(myCreateCell(cq10, textfont));
String cq11 = "";
if (!"0".equals(MapUtils.getString(data,"day11"))) {
cq11 = "";
cqMaxx = cqMaxx + 1;
} else {
cq11 = " ";
}
table.addCell(myCreateCell(cq11, textfont));
String cq12 = "";
if (!"0".equals(MapUtils.getString(data,"day12"))) {
cq12 = "";
cqMaxx = cqMaxx + 1;
} else {
cq12 = " ";
}
table.addCell(myCreateCell(cq12, textfont));
String cq13 = "";
if (!"0".equals(MapUtils.getString(data,"day13"))) {
cq13 = "";
cqMaxx = cqMaxx + 1;
} else {
cq13 = " ";
}
table.addCell(myCreateCell(cq13, textfont));
String cq14 = "";
if (!"0".equals(MapUtils.getString(data,"day14"))) {
cq14 = "";
cqMaxx = cqMaxx + 1;
} else {
cq14 = " ";
}
table.addCell(myCreateCell(cq14, textfont));
String cq15 = "";
if (!"0".equals(MapUtils.getString(data,"day15"))) {
cq15 = "";
cqMaxx = cqMaxx + 1;
} else {
cq15 = " ";
}
table.addCell(myCreateCell(cq15, textfont));
String cq16 = "";
if (!"0".equals(MapUtils.getString(data,"day16"))) {
cq16 = "";
cqMaxx = cqMaxx + 1;
} else {
cq16 = " ";
}
table.addCell(myCreateCell(cq16, textfont));
String cq17 = "";
if (!"0".equals(MapUtils.getString(data,"day17"))) {
cq17 = "";
cqMaxx = cqMaxx + 1;
} else {
cq17 = " ";
}
table.addCell(myCreateCell(cq17, textfont));
String cq18 = "";
if (!"0".equals(MapUtils.getString(data,"day18"))) {
cq18 = "";
cqMaxx = cqMaxx + 1;
} else {
cq18 = " ";
}
table.addCell(myCreateCell(cq18, textfont));
String cq19 = "";
if (!"0".equals(MapUtils.getString(data,"day19"))) {
cq19 = "";
cqMaxx = cqMaxx + 1;
} else {
cq19 = " ";
}
table.addCell(myCreateCell(cq19, textfont));
String cq20 = "";
if (!"0".equals(MapUtils.getString(data,"day20"))) {
cq20 = "";
cqMaxx = cqMaxx + 1;
} else {
cq20 = " ";
}
table.addCell(myCreateCell(cq20, textfont));
String cq21 = "";
if (!"0".equals(MapUtils.getString(data,"day21"))) {
cq21 = "";
cqMaxx = cqMaxx + 1;
} else {
cq21 = " ";
}
table.addCell(myCreateCell(cq21, textfont));
String cq22 = "";
if (!"0".equals(MapUtils.getString(data,"day22"))) {
cq22 = "";
cqMaxx = cqMaxx + 1;
} else {
cq22 = " ";
}
table.addCell(myCreateCell(cq22, textfont));
String cq23 = "";
if (!"0".equals(MapUtils.getString(data,"day23"))) {
cq23 = "";
cqMaxx = cqMaxx + 1;
} else {
cq23 = " ";
}
table.addCell(myCreateCell(cq23, textfont));
String cq24 = "";
if (!"0".equals(MapUtils.getString(data,"day24"))) {
cq24 = "";
cqMaxx = cqMaxx + 1;
} else {
cq24 = " ";
}
table.addCell(myCreateCell(cq24, textfont));
String cq25 = "";
if (!"0".equals(MapUtils.getString(data,"day25"))) {
cq25 = "";
cqMaxx = cqMaxx + 1;
} else {
cq25 = " ";
}
table.addCell(myCreateCell(cq25, textfont));
String cq26 = "";
if (!"0".equals(MapUtils.getString(data,"day26"))) {
cq26 = "";
cqMaxx = cqMaxx + 1;
} else {
cq26 = " ";
}
table.addCell(myCreateCell(cq26, textfont));
String cq27 = "";
if (!"0".equals(MapUtils.getString(data,"day27"))) {
cq27 = "";
cqMaxx = cqMaxx + 1;
} else {
cq27 = " ";
}
table.addCell(myCreateCell(cq27, textfont));
String cq28 = "";
if (!"0".equals(MapUtils.getString(data,"day28"))) {
cq28 = "";
cqMaxx = cqMaxx + 1;
} else {
cq28 = " ";
}
table.addCell(myCreateCell(cq28, textfont));
String cq29 = "";
if (!"0".equals(MapUtils.getString(data,"day29"))) {
cq29 = "";
cqMaxx = cqMaxx + 1;
} else {
cq29 = " ";
}
table.addCell(myCreateCell(cq29, textfont));
String cq30 = "";
if (!"0".equals(MapUtils.getString(data,"day30"))) {
cq30 = "";
cqMaxx = cqMaxx + 1;
} else {
cq30 = " ";
}
table.addCell(myCreateCell(cq30, textfont));
String cq31 = "";
if (!"0".equals(MapUtils.getString(data,"day31"))) {
cq31 = "";
cqMaxx = cqMaxx + 1;
} else {
cq31 = " ";
}
table.addCell(myCreateCell(cq31, textfont));
table.addCell(myCreateCell(String.valueOf(cqMaxx), textfont));
table.addCell(myCreateCell(" ", textfont));
table.addCell(myCreateCell(" ", textfont));
}
document.add(paragraph);
// document.add(anchor);
document.add(p2);
// document.add(gotoP);
document.add(p1);
document.add(table);
// document.add(image);
}
// 生成PDF文件
public static void generatePDF2(Document document, java.util.List<EntityMap> list, String projectName, String monthTitle)
throws Exception {
double payNetmaYf = 0.0;
double payNetmaSf = 0.0;
if (list.size() > 0) {
for(EntityMap data:list){
payNetmaSf = payNetmaSf + MapUtils.getDouble(data,"payNet",0d);
payNetmaYf = payNetmaYf + MapUtils.getDouble(data,"payGross",0d);
}
}
//换算
DecimalFormat df = new DecimalFormat("0.00");
String str = df.format(payNetmaYf);
BigDecimal bigDecimalk = new BigDecimal(str);
String strssk = bigDecimalk.toPlainString();
//log.info("2:" + strssk);
DecimalFormat df2 = new DecimalFormat("0.00");
String str2 = df2.format(payNetmaSf);
BigDecimal bigDecimalk2 = new BigDecimal(str2);
String strssk2 = bigDecimalk2.toPlainString();
//log.info("2:" + strssk2);
// 段落
Paragraph paragraph = new Paragraph(projectName + "工资表" + monthTitle, titlefont);
paragraph.setAlignment(1); // 设置文字居中 0靠左 1居中 2靠右
paragraph.setIndentationLeft(12); // 设置左缩进
paragraph.setIndentationRight(12); // 设置右缩进
paragraph.setFirstLineIndent(24); // 设置首行缩进
paragraph.setLeading(20f); // 行间距
paragraph.setSpacingBefore(5f); // 设置段落上空白
paragraph.setSpacingAfter(10f); // 设置段落下空白
Paragraph paragraph2 = new Paragraph("施工单位:(盖章)", textfont);
paragraph2.setAlignment(0); // 设置文字居中 0靠左 1居中 2靠右
paragraph2.setIndentationLeft(12); // 设置左缩进
paragraph2.setIndentationRight(12); // 设置右缩进
paragraph2.setFirstLineIndent(24); // 设置首行缩进
paragraph2.setLeading(0); // 行间距
paragraph2.setSpacingBefore(45f); // 设置段落上空白
paragraph2.setSpacingAfter(0); // 设置段落下空白
Paragraph paragraph3 = new Paragraph("应发工资总金额:¥" + strssk, textfont);
paragraph3.setAlignment(2); // 设置文字居中 0靠左 1居中 2靠右
paragraph3.setIndentationLeft(12); // 设置左缩进
paragraph3.setIndentationRight(12); // 设置右缩进
paragraph3.setFirstLineIndent(24); // 设置首行缩进
paragraph3.setLeading(0); // 行间距
paragraph3.setSpacingBefore(0); // 设置段落上空白
paragraph3.setSpacingAfter(0); // 设置段落下空白
Paragraph paragraph4 = new Paragraph("建设单位(盖章)", textfont);
paragraph4.setAlignment(0); // 设置文字居中 0靠左 1居中 2靠右
paragraph4.setIndentationLeft(12); // 设置左缩进
paragraph4.setIndentationRight(12); // 设置右缩进
paragraph4.setFirstLineIndent(24); // 设置首行缩进
paragraph4.setLeading(0); // 行间距
paragraph4.setSpacingBefore(75f); // 设置段落上空白
paragraph4.setSpacingAfter(0); // 设置段落下空白
Paragraph paragraph5 = new Paragraph("实发工资总金额:¥" + strssk2, textfont);
paragraph5.setAlignment(2); // 设置文字居中 0靠左 1居中 2靠右
paragraph5.setIndentationLeft(12); // 设置左缩进
paragraph5.setIndentationRight(12); // 设置右缩进
paragraph5.setFirstLineIndent(24); // 设置首行缩进
paragraph5.setLeading(0); // 行间距
paragraph5.setSpacingBefore(0); // 设置段落上空白
paragraph5.setSpacingAfter(0); // 设置段落下空白
Paragraph paragraph6 = new Paragraph("", textfont);
paragraph6.setAlignment(0); // 设置文字居中 0靠左 1居中 2靠右
paragraph6.setIndentationLeft(12); // 设置左缩进
paragraph6.setIndentationRight(12); // 设置右缩进
paragraph6.setFirstLineIndent(24); // 设置首行缩进
paragraph6.setLeading(0); // 行间距
paragraph6.setSpacingBefore(75f); // 设置段落上空白
paragraph6.setSpacingAfter(15f); // 设置段落下空白
PdfPTable table = createTable3(7);
table.setWidthPercentage(100); // 宽度100%填充
float[] columnWidths = { 1.2f, 2.5f, 3.5f, 2.5f, 2.5f, 2.5f, 2.5f };
table.setWidths(columnWidths);
// table.addCell(createCell("施工单位:(盖章)", headfont, Element.ALIGN_LEFT,
// 7, false));
// table.addCell(createCell2("应发工资总金额:", headfont, Element.ALIGN_LEFT,
// 7, false));
// table.addCell(createCell("建设单位(盖章)", headfont, Element.ALIGN_LEFT,
// 7, false));
// table.addCell(createCell("实发工资总金额:", headfont, Element.ALIGN_LEFT, 7,
// false));
table.addCell(createCell("序号", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("姓名", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("身份证号", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("银行卡号", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("部门/班组", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("实发工资", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("领款签字人", keyfont, Element.ALIGN_CENTER));
//序号
Integer totalQuantity = 0;
if (list.size() > 0) {
for (EntityMap data : list) {
Double payNet=MapUtils.getDoubleValue(data,"payNet");
if(payNet!=null) {
//序号
table.addCell(myCreateCell(String.valueOf(totalQuantity + 1), textfont));
//姓名
table.addCell(myCreateCell(MapUtils.getString(data, "workerName", ""), textfont));
//身份证号
table.addCell(myCreateCell(MapUtils.getString(data, "idCard", ""), textfont));
//银行卡号
table.addCell(myCreateCell(MapUtils.getString(data, "payRollBankNumber", ""), textfont));
//
table.addCell(myCreateCell(MapUtils.getString(data, "departmentTeamName", ""), textfont));
//Double payNet = MapUtils.getDoubleValue(data, "payNet", 0d);
DecimalFormat df3 = new DecimalFormat("0.00");
String str3 = df3.format(payNet);
BigDecimal bigDecimalk3 = new BigDecimal(str3);
String strssk3 = bigDecimalk3.toPlainString();
// 实发工资payNet
table.addCell(myCreateCell(String.valueOf(strssk3), textfont));
// 领款待签字
table.addCell(myCreateCell(" ", textfont));
totalQuantity++;
}
}
}
document.add(paragraph);
document.add(paragraph2);
document.add(paragraph3);
document.add(paragraph4);
document.add(paragraph5);
document.add(paragraph6);
document.add(table);
}
/** --------------------------创建表格的方法end------------------- --------- */
// 生成表格
public static PdfPTable createTable2(int colNumber) {
PdfPTable table = new PdfPTable(colNumber);
try {
table.setLockedWidth(true);
//table.setTotalWidth(780);
table.setTotalWidth(1100);
table.setHorizontalAlignment(Element.ALIGN_CENTER);
table.getDefaultCell().setBorder(1);
} catch (Exception e) {
log.error("error", e);
}
return table;
}
public static PdfPCell createCell(String value, Font font, int align) {
PdfPCell cell = new PdfPCell();
cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
cell.setHorizontalAlignment(align);
cell.setPhrase(new Phrase(value, font));
return cell;
}
/**
* 创建单元格(指定字体、水平居..、单元格跨x列合并、设置单元格内边距
*
* @param value
* @param font
* @param align
* @param colspan
* @param boderFlag
* @return
*/
public static PdfPCell createCell(String value, Font font, int align, int colspan, boolean boderFlag) {
PdfPCell cell = new PdfPCell();
cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
cell.setHorizontalAlignment(align);
cell.setColspan(colspan);
cell.setPhrase(new Phrase(value, font));
cell.setPadding(3.0f);// 标题下内容居左位置(时间项目)
if (!boderFlag) {
cell.setBorder(0);// 标题下内容边框,不改变这个数据(时间项目)
cell.setPaddingTop(15.0f);// 标题下内容向上位置
cell.setPaddingBottom(8.0f);// 标题下内容两个位置
} else if (boderFlag) {
cell.setBorder(0);
cell.setPaddingTop(0.0f);
cell.setPaddingBottom(15.0f);
}
return cell;
}
/**
* 创建单元格(指定字体)
* 固定高度40
* @param value
* @param font
* @return
*/
public static PdfPCell myCreateCell(String value, Font font) {
PdfPCell cell = new PdfPCell();
cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setPhrase(new Phrase(value, font));
cell.setFixedHeight(40);
return cell;
}
// 生成表格
public static PdfPTable createTable3(int colNumber) {
PdfPTable table = new PdfPTable(colNumber);
try {
table.setLockedWidth(true);
table.setTotalWidth(520);
table.setHorizontalAlignment(Element.ALIGN_CENTER);
table.getDefaultCell().setBorder(1);
} catch (Exception e) {
log.error("error", e);
}
return table;
}
}