use of com.itextpdf.text.pdf.PdfPTable in project FarmCloud by vratsasg.
the class ExtractController method createPDF.
private com.itextpdf.text.Document createPDF(WateringMeasure wateringMeasure, String dtfrom, String dtto, com.itextpdf.text.Document doc) throws Exception {
String paragraph = String.format("Measures for %1$s(%2$s) from end device with identifier %3$s \n from %4$s until %5$s", wateringMeasure.getObservableProperty(), wateringMeasure.getUnit(), wateringMeasure.getIdentifier(), dtfrom, dtto);
doc.add(new Paragraph(paragraph));
PdfPTable table = new PdfPTable(4);
table.setWidthPercentage(100.0f);
table.setWidths(new float[] { 3.0f, 3.0f, 3.0f, 3.0f });
table.setSpacingBefore(10);
// define font for table header row
Font font = FontFactory.getFont(FontFactory.HELVETICA);
font.setColor(BaseColor.DARK_GRAY);
// define table header cell
PdfPCell cell = new PdfPCell();
cell.setBackgroundColor(new BaseColor(197, 255, 165));
cell.setPadding(5);
// write table header
cell.setPhrase(new Phrase("Watering time from", font));
table.addCell(cell);
cell.setPhrase(new Phrase("Watering time until", font));
table.addCell(cell);
cell.setPhrase(new Phrase("Total Duration", font));
table.addCell(cell);
cell.setPhrase(new Phrase("Total Consumption", font));
table.addCell(cell);
BigDecimal valuemin = new BigDecimal(200.0);
BigDecimal valuemax = new BigDecimal(-100.0);
BigDecimal valuesum = new BigDecimal(0.0);
// write table row data
for (WateringValueTime valueTime : wateringMeasure.getMeasuredata()) {
valuesum = valuesum.add(valueTime.getValue());
valuemax = valueTime.getValue().max(valuemax);
valuemin = valueTime.getValue().min(valuemin);
table.addCell(new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(valueTime.getPhenomenonDateTimeFrom()));
table.addCell(new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(valueTime.getPhenomenonDateTimeTo()));
table.addCell(valueTime.getDateTimeDiff());
table.addCell(String.format("%1$s %2$s", valueTime.getValue().toString(), wateringMeasure.getUnit()));
}
doc.add(table);
doc.add(new Paragraph(String.format("\n minimum %1$s: %3$s %2$s \n maximum %1$s: %4$s %2$s \n Total %1$s: %5$s %2$s", wateringMeasure.getObservableProperty(), wateringMeasure.getUnit(), valuemin.toString(), valuemax.toString(), valuesum.toString())));
return doc;
}
use of com.itextpdf.text.pdf.PdfPTable in project FarmCloud by vratsasg.
the class ExtractController method createPDF.
private com.itextpdf.text.Document createPDF(ObservableMeasure observableMeasure, String dtfrom, String dtto, com.itextpdf.text.Document doc) throws Exception {
String paragraph = String.format("Measures for %1$s(%2$s) from end device with identifier %3$s \n from %4$s until %5$s", observableMeasure.getObservableProperty(), observableMeasure.getUnit(), observableMeasure.getIdentifier(), dtfrom, dtto);
doc.add(new Paragraph(paragraph));
PdfPTable table = new PdfPTable(2);
table.setWidthPercentage(100.0f);
table.setWidths(new float[] { 4.0f, 2.0f });
table.setSpacingBefore(10);
// define font for table header row
Font font = FontFactory.getFont(FontFactory.HELVETICA);
font.setColor(BaseColor.DARK_GRAY);
// define table header cell
PdfPCell cell = new PdfPCell();
cell.setBackgroundColor(new BaseColor(197, 255, 165));
cell.setPadding(5);
// write table header
cell.setPhrase(new Phrase("Measure date & time", font));
table.addCell(cell);
cell.setPhrase(new Phrase("Measure value", font));
table.addCell(cell);
BigDecimal valuemin = new BigDecimal(200.0);
BigDecimal valuemax = new BigDecimal(-100.0);
BigDecimal valuesum = new BigDecimal(0.0);
// write table row data
for (ValueTime valueTime : observableMeasure.getMeasuredata()) {
valuesum = valuesum.add(valueTime.getValue());
valuemax = valueTime.getValue().max(valuemax);
valuemin = valueTime.getValue().min(valuemin);
table.addCell(new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(valueTime.getPhenomenonDateTime()));
table.addCell(String.format("%1$s %2$s", valueTime.getValue().toString(), observableMeasure.getUnit()));
}
BigDecimal avg = valuesum.divide(BigDecimal.valueOf(observableMeasure.getMeasuredata().size()), 2, BigDecimal.ROUND_CEILING);
doc.add(table);
doc.add(new Paragraph(String.format("\n minimum %1$s: %3$s %2$s \n maximum %1$s: %4$s %2$s \n average %1$s: %5$s %2$s", observableMeasure.getObservableProperty(), observableMeasure.getUnit(), valuemin.toString(), valuemax.toString(), avg.toString())));
return doc;
}
use of com.itextpdf.text.pdf.PdfPTable in project motech by motech.
the class PdfTableWriter method writeHeader.
@Override
public void writeHeader(String[] headers) throws IOException {
dataTable = new PdfPTable(headers.length + 1);
columnsWidths = new LinkedHashMap<>();
writeHeaderCell(ROW_NUMBER_HEADER);
for (String header : headers) {
writeHeaderCell(header);
}
}
use of com.itextpdf.text.pdf.PdfPTable in project specify by rhebecaabreu.
the class ModelPDFRodape method onEndPage.
public void onEndPage(PdfWriter writer, Document document) {
PdfPTable table = new PdfPTable(3);
try {
table.setWidths(new int[] { 24, 24, 2 });
table.setTotalWidth(527);
table.setLockedWidth(true);
table.getDefaultCell().setFixedHeight(20);
table.getDefaultCell().setBorder(Rectangle.TOP);
table.addCell(topo);
table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_RIGHT);
table.addCell(String.format("Pagina %d de", writer.getPageNumber()));
PdfPCell cell = new PdfPCell(Image.getInstance(total));
cell.setBorder(Rectangle.TOP);
table.addCell(cell);
table.writeSelectedRows(0, -1, 34, document.bottomMargin(), writer.getDirectContent());
} catch (DocumentException de) {
throw new ExceptionConverter(de);
}
}
use of com.itextpdf.text.pdf.PdfPTable in project trainning by fernandotomasio.
the class TCAIcaerPageFooter method onEndPage.
@Override
public void onEndPage(PdfWriter writer, Document document) {
PdfPTable table = new PdfPTable(3);
try {
table.setWidths(new int[] { 20, 80, 20 });
table.setTotalWidth(527);
table.setLockedWidth(true);
table.getDefaultCell().setFixedHeight(20);
table.getDefaultCell().setBorder(Rectangle.NO_BORDER);
String anexo = "";
if (writer.getPageNumber() > 1) {
// }
if (writer.getPageNumber() % 2 != 0) {
table.addCell(new Phrase(header, new Font(Font.FontFamily.TIMES_ROMAN, 12)));
table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_RIGHT);
PdfPCell anexoCell = new PdfPCell(new Phrase(String.format(anexo, writer.getPageNumber()), new Font(Font.FontFamily.TIMES_ROMAN, 12)));
anexoCell.setHorizontalAlignment(Element.ALIGN_CENTER);
anexoCell.setBorder(Rectangle.NO_BORDER);
table.addCell(anexoCell);
table.addCell(new Phrase(String.format("%d", writer.getPageNumber()), new Font(Font.FontFamily.TIMES_ROMAN, 12)));
} else {
table.addCell(new Phrase(String.format("%d", writer.getPageNumber()), new Font(Font.FontFamily.TIMES_ROMAN, 12)));
table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_RIGHT);
PdfPCell anexoCell = new PdfPCell(new Phrase(String.format(anexo, writer.getPageNumber()), new Font(Font.FontFamily.TIMES_ROMAN, 12)));
anexoCell.setHorizontalAlignment(Element.ALIGN_CENTER);
anexoCell.setBorder(Rectangle.NO_BORDER);
table.addCell(anexoCell);
table.addCell(new Phrase(header, new Font(Font.FontFamily.TIMES_ROMAN, 12)));
// table.getDefaultCell().setHorizontalAlignment(
// Element.ALIGN_RIGHT);
}
}
PdfPCell cell = new PdfPCell(Image.getInstance(total));
cell.setBorder(Rectangle.NO_BORDER);
// table.addCell(cell);
table.writeSelectedRows(0, -1, 34, 803, writer.getDirectContent());
} catch (DocumentException de) {
throw new ExceptionConverter(de);
}
}
Aggregations