summaryrefslogtreecommitdiff
path: root/src/main/java/it/alessandroiezzi
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/it/alessandroiezzi')
-rw-r--r--src/main/java/it/alessandroiezzi/simplyreports/pdf/PDFTable.java28
1 files changed, 25 insertions, 3 deletions
diff --git a/src/main/java/it/alessandroiezzi/simplyreports/pdf/PDFTable.java b/src/main/java/it/alessandroiezzi/simplyreports/pdf/PDFTable.java
index 39ee50e..ad44916 100644
--- a/src/main/java/it/alessandroiezzi/simplyreports/pdf/PDFTable.java
+++ b/src/main/java/it/alessandroiezzi/simplyreports/pdf/PDFTable.java
@@ -19,8 +19,11 @@
package it.alessandroiezzi.simplyreports.pdf;
-import com.lowagie.text.DocumentException;
+import com.lowagie.text.*;
+import com.lowagie.text.Font;
import com.lowagie.text.pdf.*;
+
+import java.awt.*;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
@@ -30,13 +33,15 @@ import java.util.function.Supplier;
public abstract class PDFTable<E> extends PDFEntity<PdfPTable> {
private final List<E> entities;
private final List<PdfTableCell> cells = new ArrayList<>();
- private int[] widths = null;
+ private final int[] widths;
private PDFTableHeader header;
private PDFTableFooter footer;
+ private final String[] columnTitles;
- public PDFTable(List<E> entities, int...widths) {
+ public PDFTable(List<E> entities, String[] columnTitles, int...widths) {
this.entities = entities;
this.widths = widths;
+ this.columnTitles = columnTitles;
generateSignature();
}
@@ -79,6 +84,8 @@ public abstract class PDFTable<E> extends PDFEntity<PdfPTable> {
if (widths != null && widths.length > 0)
table.setWidths(widths);
+ else
+ throw new IllegalArgumentException("widths is mandatory!");
for (E entity : this.entities) {
mapRow(entity);
@@ -91,6 +98,21 @@ public abstract class PDFTable<E> extends PDFEntity<PdfPTable> {
table.addCell(header.generate(writer));
}
+ if (columnTitles != null && columnTitles.length > 0) {
+ for (String columnTitle : columnTitles) {
+ Font f = new Font(Font.HELVETICA, 8.0f, Font.BOLD, Color.BLACK);
+ Chunk c = new Chunk(columnTitle, f);
+ Paragraph p = new Paragraph(c);
+ p.setAlignment(Element.ALIGN_CENTER);
+ PdfPCell cell = new PdfPCell();
+ cell.setUseAscender(true);
+ cell.setPadding(5);
+ cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
+ cell.addElement(p);
+ table.addCell(cell);
+ }
+ }
+
for (PdfTableCell cell : cells) {
table.addCell(cell.getValue());
}