Search in sources :

Example 6 with PdfPTable

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;
}
Also used : PdfPCell(com.itextpdf.text.pdf.PdfPCell) WateringValueTime(com.webstart.DTO.WateringValueTime) PdfPTable(com.itextpdf.text.pdf.PdfPTable) SimpleDateFormat(java.text.SimpleDateFormat) Font(com.itextpdf.text.Font) BigDecimal(java.math.BigDecimal)

Example 7 with PdfPTable

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;
}
Also used : ValueTime(com.webstart.DTO.ValueTime) WateringValueTime(com.webstart.DTO.WateringValueTime) PdfPCell(com.itextpdf.text.pdf.PdfPCell) PdfPTable(com.itextpdf.text.pdf.PdfPTable) SimpleDateFormat(java.text.SimpleDateFormat) Font(com.itextpdf.text.Font) BigDecimal(java.math.BigDecimal)

Example 8 with PdfPTable

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);
    }
}
Also used : PdfPTable(com.itextpdf.text.pdf.PdfPTable)

Example 9 with PdfPTable

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);
    }
}
Also used : ExceptionConverter(com.itextpdf.text.ExceptionConverter) PdfPCell(com.itextpdf.text.pdf.PdfPCell) PdfPTable(com.itextpdf.text.pdf.PdfPTable) DocumentException(com.itextpdf.text.DocumentException)

Example 10 with PdfPTable

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);
    }
}
Also used : ExceptionConverter(com.itextpdf.text.ExceptionConverter) PdfPCell(com.itextpdf.text.pdf.PdfPCell) PdfPTable(com.itextpdf.text.pdf.PdfPTable) DocumentException(com.itextpdf.text.DocumentException) Phrase(com.itextpdf.text.Phrase) Font(com.itextpdf.text.Font)

Aggregations

PdfPTable (com.itextpdf.text.pdf.PdfPTable)44 PdfPCell (com.itextpdf.text.pdf.PdfPCell)24 Paragraph (com.itextpdf.text.Paragraph)18 Phrase (com.itextpdf.text.Phrase)17 DocumentException (com.itextpdf.text.DocumentException)12 Font (com.itextpdf.text.Font)8 IOException (java.io.IOException)8 ExceptionConverter (com.itextpdf.text.ExceptionConverter)6 Document (com.itextpdf.text.Document)5 BadElementException (com.itextpdf.text.BadElementException)4 BaseFont (com.itextpdf.text.pdf.BaseFont)4 PdfContentByte (com.itextpdf.text.pdf.PdfContentByte)4 PdfWriter (com.itextpdf.text.pdf.PdfWriter)4 FileOutputStream (java.io.FileOutputStream)4 BaseColor (com.itextpdf.text.BaseColor)3 Chapter (com.itextpdf.text.Chapter)3 Chunk (com.itextpdf.text.Chunk)3 Image (com.itextpdf.text.Image)3 ListItem (com.itextpdf.text.ListItem)3 PdfReader (com.itextpdf.text.pdf.PdfReader)3