package com.transformuk.bdt.view; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Component; import com.itextpdf.text.BaseColor; import com.itextpdf.text.Document; import com.itextpdf.text.Font; import com.itextpdf.text.FontFactory; import com.itextpdf.text.Paragraph; import com.itextpdf.text.Phrase; import com.itextpdf.text.pdf.PdfPCell; import com.itextpdf.text.pdf.PdfPTable; import com.itextpdf.text.pdf.PdfWriter; import com.transformuk.bdt.domain.Answer; @Component public class PdfView extends AbstractPdfView { @SuppressWarnings("unchecked") @Override protected void buildPdfDocument(Map<String, Object> model, Document doc, PdfWriter writer, HttpServletRequest request, HttpServletResponse response) throws Exception { // get data model which is passed by the Spring container List<Answer> listAnswers = (List<Answer>) model.get("listAnswers"); doc.add(new Paragraph("Here's your Answers")); PdfPTable table = new PdfPTable(4); table.setWidthPercentage(100.0f); table.setWidths(new float[] {3.0f, 2.0f, 2.0f, 2.0f}); table.setSpacingBefore(10); // define font for table header row Font font = FontFactory.getFont(FontFactory.HELVETICA); font.setColor(BaseColor.WHITE); // define table header cell PdfPCell cell = new PdfPCell(); cell.setBackgroundColor(BaseColor.BLUE); cell.setPadding(5); // write table header cell.setPhrase(new Phrase("Answer 1", font)); table.addCell(cell); cell.setPhrase(new Phrase("Answer 2", font)); table.addCell(cell); cell.setPhrase(new Phrase("Answer 3", font)); table.addCell(cell); cell.setPhrase(new Phrase("Published Date", font)); table.addCell(cell); // write table row data for (Answer answer : listAnswers) { table.addCell(answer.getAnswer1()); table.addCell(answer.getAnswer2()); table.addCell(answer.getAnswer3()); table.addCell(answer.getAnsweredDate()); //table.addCell(String.valueOf(answer.getPrice())); } doc.add(table); } }