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);
}
}