List of usage examples for com.lowagie.text.pdf PdfPCell setBorder
public void setBorder(int border)
From source file:org.areasy.common.doclet.document.Members.java
License:Open Source License
/** * Prints member information.//from ww w .j av a 2 s .c o m * * @param declaration The modifiers ("public static final.."). * @param returnType Phrase with the return type text (might be * a hyperlink) * @param parms Parameters of a method or constructor, null for a field. * @param thrownExceptions Exceptions of a method, null for a field or constructor. * @param isFirst True if it is the first field/method/constructor in the list. * @param isField True if it is a field. * @param isConstructor True if it is a constructor. * @throws Exception */ public static void printMember(String declaration, Phrase returnType, ProgramElementDoc commentDoc, Parameter[] parms, ClassDoc[] thrownExceptions, boolean isFirst, boolean isField, boolean isConstructor, boolean isDeprecated, Phrase deprecatedPhrase, Object constantValue) throws Exception { String name = commentDoc.name(); State.setCurrentMember(State.getCurrentClass() + "." + name); State.setCurrentDoc(commentDoc); // Returns the text, resolving any "inheritDoc" inline tags String commentText = DocletUtility.getComment(commentDoc); // TODO: The following line may set the wrong page number // in the index, when the member gets printed on a // new page completely (because it is in one table). // Solution unknown yet. Probably split up table. Doclet.getIndex().addToMemberList(State.getCurrentMember()); // Prepare list of exceptions (if it throws any) String throwsText = "throws"; int parmsColumn = declaration.length() + (name.length() - throwsText.length()); // First output text line (declaration of method and first parameter or "()" ). // This first line is a special case because the class name is bold, // while the rest is regular plain text, so it must be built using three Chunks. Paragraph declarationParagraph = new Paragraph((float) 10.0); // left part / declaration ("public static..") Chunk leftPart = new Chunk(declaration, Fonts.getFont(CODE_FONT, 10)); declarationParagraph.add(leftPart); if (returnType != null) { // left middle part / declaration ("public static..") declarationParagraph.add(returnType); declarationParagraph.add(new Chunk(" ", Fonts.getFont(CODE_FONT, 10))); parmsColumn = 2; } // right middle part / bold class name declarationParagraph.add(new Chunk(name, Fonts.getFont(CODE_FONT, BOLD, 10))); if (!isField) { // 1st parameter or empty brackets if ((parms != null) && (parms.length > 0)) { Phrase wholePhrase = new Phrase("(", Fonts.getFont(CODE_FONT, 10)); // create link for parameter type wholePhrase.add(PDFUtility.getParameterTypePhrase(parms[0], 10)); // then normal text for parameter name wholePhrase.add(" " + parms[0].name()); if (parms.length > 1) { wholePhrase.add(","); } else { wholePhrase.add(")"); } // In order to have the parameter types in the bookmark, // make the current state text more detailled String txt = State.getCurrentMethod() + "("; for (int i = 0; i < parms.length; i++) { if (i > 0) txt = txt + ","; txt = txt + DocletUtility.getParameterType(parms[i]); } txt = txt + ")"; State.setCurrentMethod(txt); // right part / parameter and brackets declarationParagraph.add(wholePhrase); } else { String lastPart = "()"; State.setCurrentMethod(State.getCurrentMethod() + lastPart); // right part / parameter and brackets declarationParagraph.add(new Chunk(lastPart, Fonts.getFont(CODE_FONT, 10))); } } float[] widths = { (float) 6.0, (float) 94.0 }; PdfPTable table = new PdfPTable(widths); table.setWidthPercentage((float) 100); // Before the first constructor or method, create a coloured title bar if (isFirst) { PdfPCell colorTitleCell = null; // Some empty space... Document.add(new Paragraph((float) 6.0, " ")); if (isConstructor) colorTitleCell = new CustomPdfPCell("Constructors"); else if (isField) colorTitleCell = new CustomPdfPCell("Fields"); else colorTitleCell = new CustomPdfPCell("Methods"); colorTitleCell.setColspan(2); table.addCell(colorTitleCell); } // Method name (large, first line of a method description block) Phrase linkPhrase = Destinations.createDestination(commentDoc.name(), commentDoc, Fonts.getFont(TEXT_FONT, BOLD, 14)); Paragraph nameTitle = new Paragraph(linkPhrase); PdfPCell nameCell = new CellNoBorderNoPadding(nameTitle); if (isFirst) nameCell.setPaddingTop(10); else nameCell.setPaddingTop(0); nameCell.setPaddingBottom(8); nameCell.setColspan(1); // Create nested table in order to try to prevent the stuff inside // this table from being ripped appart over a page break. The method // name and the declaration/parm/exception line(s) should always be // together, because everything else just looks bad PdfPTable linesTable = new PdfPTable(1); linesTable.addCell(nameCell); linesTable.addCell(new CellNoBorderNoPadding(declarationParagraph)); if (!isField) { // Set up following declaration lines Paragraph[] params = PDFUtility.createParameters(parmsColumn, parms); Paragraph[] exceps = PDFUtility.createExceptions(parmsColumn, thrownExceptions); for (int i = 0; i < params.length; i++) { linesTable.addCell(new CellNoBorderNoPadding(params[i])); } for (int i = 0; i < exceps.length; i++) { linesTable.addCell(new CellNoBorderNoPadding(exceps[i])); } } // Create cell for inserting the nested table into the outer table PdfPCell cell = new PdfPCell(linesTable); cell.setPadding(5); cell.setBorder(Rectangle.NO_BORDER); cell.setColspan(2); table.addCell(cell); // The empty, left cell (the invisible indentation column) State.setContinued(true); PdfPCell leftCell = PDFUtility.createElementCell(5, new Phrase("", Fonts.getFont(TEXT_FONT, BOLD, 6))); PdfPCell spacingCell = new PdfPCell(); spacingCell.setFixedHeight((float) 8.0); spacingCell.setBorder(Rectangle.NO_BORDER); table.addCell(spacingCell); table.addCell(spacingCell); // The descriptive method explanation text if (isDeprecated) { Phrase commentPhrase = new Phrase(); commentPhrase .add(new Phrase(AbstractConfiguration.LB_DEPRECATED_TAG, Fonts.getFont(TEXT_FONT, BOLD, 10))); commentPhrase.add(deprecatedPhrase); table.addCell(leftCell); table.addCell(PDFUtility.createElementCell(0, commentPhrase)); commentPhrase = new Phrase(); commentPhrase.add(Chunk.NEWLINE); table.addCell(leftCell); table.addCell(PDFUtility.createElementCell(0, commentPhrase)); } Element[] objs = HtmlParserWrapper.createPdfObjects(commentText); if (objs.length == 1) { table.addCell(leftCell); table.addCell(PDFUtility.createElementCell(0, objs[0])); } else { table.addCell(leftCell); table.addCell(PDFUtility.createElementCell(0, Element.ALIGN_LEFT, objs)); } // TODO: FORMAT THIS CONSTANT VALUE OUTPUT CORRECTLY if (isField) { if (constantValue != null) { // Add 2nd comment line (left cell empty, right cell text) Chunk valueTextChunk = new Chunk("Constant value: ", Fonts.getFont(TEXT_FONT, PLAIN, 10)); Chunk valueContentChunk = new Chunk(constantValue.toString(), Fonts.getFont(CODE_FONT, BOLD, 10)); Phrase constantValuePhrase = new Phrase(""); constantValuePhrase.add(valueTextChunk); constantValuePhrase.add(valueContentChunk); table.addCell(leftCell); table.addCell(PDFUtility.createElementCell(0, constantValuePhrase)); } } // Add whole method block to document Document.add(table); }
From source file:org.caisi.tickler.web.TicklerPrinter.java
License:Open Source License
private void addStandardTableEntry(PdfPTable table, String name, String value) { PdfPCell cell1 = new PdfPCell(getParagraph(name + ":")); cell1.setBorder(PdfPCell.BOTTOM); cell1.setHorizontalAlignment(Element.ALIGN_LEFT); PdfPCell cell2 = new PdfPCell(getParagraph(value)); cell2.setHorizontalAlignment(Element.ALIGN_CENTER); cell2.setBorder(PdfPCell.BOTTOM);//from w ww . j ava 2 s . co m table.addCell(cell1); table.addCell(cell2); }
From source file:org.caisi.tickler.web.TicklerPrinter.java
License:Open Source License
public void printTicklerInfo() throws DocumentException { PdfPTable table = new PdfPTable(2); table.setWidthPercentage(50f);//from www . j a v a2s . c o m table.getDefaultCell().setBorder(PdfPCell.NO_BORDER); addStandardTableEntry(table, "Created By", tickler.getProvider().getFormattedName()); addStandardTableEntry(table, "Last Updated", formatter.format(tickler.getUpdateDate())); addStandardTableEntry(table, "Service Date", formatter.format(tickler.getServiceDate())); addStandardTableEntry(table, "Assigned To", tickler.getAssignee().getFormattedName()); addStandardTableEntry(table, "Priority", tickler.getPriority().toString()); addStandardTableEntry(table, "Status", tickler.getStatusWeb()); addStandardTableEntry(table, "Program", (tickler.getProgram() != null) ? tickler.getProgram().getName() : "N/A"); getDocument().add(table); table = new PdfPTable(1); table.setWidthPercentage(70f); PdfPCell cell1 = new PdfPCell(getParagraph("Message")); cell1.setBorder(PdfPCell.NO_BORDER); cell1.setHorizontalAlignment(Element.ALIGN_LEFT); table.addCell(cell1); cell1 = new PdfPCell(getParagraph(tickler.getMessage())); cell1.setHorizontalAlignment(Element.ALIGN_LEFT); table.addCell(cell1); getDocument().add(table); }
From source file:org.drools.verifier.doc.DroolsDocsComponentFactory.java
License:Apache License
public void onEndPage(PdfWriter writer, Document document) { try {/* ww w .ja va 2 s. c o m*/ Image image = Image.getInstance(DroolsDocsBuilder.class.getResource("guvnor-webapp.png")); // TODO this image never existed image.setAlignment(Image.RIGHT); image.scaleAbsolute(100, 30); Rectangle page = document.getPageSize(); PdfPTable head = new PdfPTable(2); PdfPCell cell1 = new PdfPCell(image); cell1.setHorizontalAlignment(Element.ALIGN_LEFT); cell1.setBorder(0); head.addCell(cell1); PdfPCell cell2 = new PdfPCell(new Phrase(currentDate, DroolsDocsComponentFactory.HEADER_FOOTER_TEXT)); cell2.setHorizontalAlignment(Element.ALIGN_RIGHT); cell2.setBorder(0); head.addCell(cell2); head.setTotalWidth(page.getWidth() - document.leftMargin() - document.rightMargin()); head.writeSelectedRows(0, -1, document.leftMargin(), page.getHeight() - document.topMargin() + head.getTotalHeight(), writer.getDirectContent()); } catch (Exception e) { throw new ExceptionConverter(e); } }
From source file:org.emmanet.controllers.PdfView.java
License:Apache License
@Override protected void buildPdfDocument(Map map, Document doc, PdfWriter writer, HttpServletRequest request, HttpServletResponse response) throws Exception { if (map.get("WebRequestsDAO") != null && request.getParameter("type").equals("req")) { WebRequestsDAO wrd = new WebRequestsDAO(); WebRequests wr = new WebRequests(); wrd = (WebRequestsDAO) map.get("WebRequestsDAO"); if (wrd.getRegister_interest() != null) { if (wrd.getRegister_interest().equals("1")) { pdfTitle = "EMMA Strain Interest Registration Form"; pdfConditions = false;// ww w .j a va 2s .c o m } else if (wrd.getRegister_interest().equals("0")) { pdfTitle = "EMMA Mutant Request Form"; pdfConditions = true; } } Paragraph pHead = new Paragraph(pdfTitle + "\n\n", FontFactory.getFont(FontFactory.HELVETICA, 11)); pHead.setAlignment(Element.ALIGN_CENTER); doc.add(pHead); doc.add(new Paragraph(pdfTitle + "\nRequest ID:" + wrd.getId_req() + "\n\n", FontFactory.getFont(FontFactory.HELVETICA_BOLD, 20))); Paragraph pSubHead = new Paragraph( "Following data have been submitted to EMMA on " + wrd.getTimestamp(), FontFactory.getFont(FontFactory.HELVETICA, 11)); pSubHead.setAlignment(Element.ALIGN_CENTER); doc.add(pSubHead); doc.add(Chunk.NEWLINE); // Space padding underline Chunk underlined = new Chunk( " " + " "); underlined.setUnderline(new Color(0x00, 0x00, 0x00), 0.0f, 0.2f, 16.0f, 0.0f, PdfContentByte.LINE_CAP_BUTT);//Black line doc.add(underlined); Font font = FontFactory.getFont(FontFactory.HELVETICA_BOLD, 11); // Set table cell widths equiv. to 25% and 75% float[] widths = { 0.25f, 0.75f }; PdfPTable table = new PdfPTable(widths); table.setWidthPercentage(100); PdfPCell cell = new PdfPCell(new Paragraph("Scientist\n\n", font)); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); table.addCell("Title"); table.addCell("" + wrd.getSci_title()); table.addCell("Firstname"); table.addCell("" + wrd.getSci_firstname()); table.addCell("Surname"); table.addCell("" + wrd.getSci_surname()); table.addCell("E-mail"); table.addCell("" + wrd.getSci_e_mail()); table.addCell("Phone"); table.addCell("" + wrd.getSci_phone()); table.addCell("Fax"); table.addCell("" + wrd.getSci_fax()); PdfPCell cellShip = new PdfPCell(new Paragraph("\nShipping Contact\n\n", font)); cellShip.setColspan(2); cellShip.setBorder(0); table.addCell(cellShip); table.addCell("Title"); table.addCell("" + wrd.getCon_title()); table.addCell("Firstname"); table.addCell("" + wrd.getCon_firstname()); table.addCell("Surname"); table.addCell("" + wrd.getCon_surname()); table.addCell("E-mail"); table.addCell("" + wrd.getCon_e_mail()); table.addCell("Phone"); table.addCell("" + wrd.getCon_phone()); table.addCell("Fax"); table.addCell("" + wrd.getCon_fax()); table.addCell("Institution"); table.addCell("" + wrd.getCon_institution()); table.addCell("Department"); table.addCell("" + wrd.getCon_dept()); table.addCell("Address Line 1"); table.addCell("" + wrd.getCon_addr_1()); table.addCell("Address Line 2"); table.addCell("" + wrd.getCon_addr_2()); table.addCell("County/province"); table.addCell("" + wrd.getCon_province()); table.addCell("Town"); table.addCell("" + wrd.getCon_town()); table.addCell("Postcode"); table.addCell("" + wrd.getCon_postcode()); table.addCell("Country"); table.addCell("" + wrd.getCon_country()); if (!wrd.getRegister_interest().equals("1")) { //webrequest is not a roi so these were set above so send them to pdf PdfPCell cellBill = new PdfPCell(new Paragraph("\nBilling Details\n\n", font)); cellBill.setColspan(2); cellBill.setBorder(0); table.addCell(cellBill); table.addCell("VAT reference"); table.addCell("" + wrd.getBil_vat()); table.addCell("Purchase Order Number"); table.addCell("" + wrd.getPO_ref()); table.addCell("Title"); table.addCell("" + wrd.getBil_title()); table.addCell("Firstname"); table.addCell("" + wrd.getBil_firstname()); table.addCell("Surname"); table.addCell("" + wrd.getBil_surname()); table.addCell("E-mail"); table.addCell("" + wrd.getBil_e_mail()); table.addCell("Phone"); table.addCell("" + wrd.getBil_phone()); table.addCell("Fax"); table.addCell("" + wrd.getBil_fax()); table.addCell("Institution"); table.addCell("" + wrd.getBil_institution()); table.addCell("Department"); table.addCell("" + wrd.getBil_dept()); table.addCell("Address Line 1"); table.addCell("" + wrd.getBil_addr_1()); table.addCell("Address Line 2"); table.addCell("" + wrd.getBil_addr_2()); table.addCell("County/province"); table.addCell("" + wrd.getBil_province()); table.addCell("Town"); table.addCell("" + wrd.getBil_town()); table.addCell("Postcode"); table.addCell("" + wrd.getBil_postcode()); table.addCell("Country"); table.addCell("" + wrd.getBil_country()); // TODO add europhenome and wtsi_mouse_portal info } PdfPCell cellStrain = new PdfPCell(new Paragraph("\nStrain Details\n\n", font)); cellStrain.setColspan(2); cellStrain.setBorder(0); table.addCell(cellStrain); table.addCell("Strain ID"); table.addCell("" + wrd.getStrain_id()); table.addCell("Strain name"); //new String (wrd.getStrain_name().getBytes("UTF-8")); //table.addCell("" + wrd.getStrain_name()); table.addCell("" + new String(wrd.getStrain_name().getBytes("UTF-8"))); table.addCell("Common Name(s)"); table.addCell("" + wrd.getCommon_name_s()); if (wrd.getReq_material() != null) { PdfPCell cellMaterial = new PdfPCell(new Paragraph("\nRequested Material\n\n", font)); cellMaterial.setColspan(2); cellMaterial.setBorder(0); table.addCell(cellMaterial); table.addCell("Material"); table.addCell("" + wrd.getReq_material()); } if (wrd.getLive_animals() != null) { table.addCell("Live Animals"); table.addCell("Selected"); } if (wrd.getFrozen_emb() != null) { table.addCell("Frozen Embryos"); table.addCell("Selected"); } if (wrd.getFrozen_spe() != null) { table.addCell("Frozen Sperm"); table.addCell("Selected"); } if (pdfConditions) { String text = ""; String text1 = ""; String text2 = ""; String header = ""; String header1 = ""; String header2 = ""; if (wrd.getApplication_type().equals("request_only")) { text = new StringBuilder().append(text).append( "\nYou have indicated that you have read the conditions and agree to pay the transmittal fee " + "plus shipping costs.") .toString(); header = new StringBuilder().append(header).append("\nStandard request\n").toString(); } else if (!wrd.getApplication_type().equals("request_only")) { header1 = new StringBuilder().append(header1) .append("\nApplication for Transnational Access Activity").toString(); if (wrd.getApplication_type().equals("ta_only")) { text1 = new StringBuilder().append(text1).append( "\nYou have indicated that you have read the conditions and have applied for free of charge TA only. " + "In the case of the TA application being rejected the request process will be terminated.") .toString(); header1 = new StringBuilder().append(header1).append(" (TA Option B)\n").toString(); } else { text1 = new StringBuilder().append(text1).append( "\nYou have indicated that you have read the conditions and have applied for free of charge TA " + "and have agreed to pay the service charge plus shipping cost if the TA application is rejected.") .toString(); header1 = new StringBuilder().append(header1).append(" (TA Option A)\n").toString(); } header2 = new StringBuilder().append(header2).append( "\n\nDescription of project (1/2 page) involving requested EMMA mouse mutant resource. " + "The project description will be used by the Evaluation Committee for selection of applicants:") .toString(); } if (!wrd.getApplication_type().equals("request_only")) { // table.addCell("" + model.get("ta_proj_desc")); text2 = new StringBuilder().append(text2).append("\n\n ").append(wrd.getProject_description()) .toString(); } if (!wrd.getApplication_type().equals("request_only")) { //we have a ta header and text to add PdfPCell cellConditions1 = new PdfPCell(new Paragraph(header1, font)); cellConditions1.setColspan(2); cellConditions1.setBorder(0); table.addCell(cellConditions1); PdfPCell cellConditions2 = new PdfPCell(new Paragraph(text1)); cellConditions2.setColspan(2); cellConditions2.setBorder(0); table.addCell(cellConditions2); PdfPCell cellConditions3 = new PdfPCell(new Paragraph(header2, font)); cellConditions3.setColspan(2); cellConditions3.setBorder(0); table.addCell(cellConditions3); PdfPCell cellConditions4 = new PdfPCell(new Paragraph(text2)); cellConditions4.setColspan(2); cellConditions4.setBorder(0); table.addCell(cellConditions4); } else { PdfPCell cellConditions = new PdfPCell(new Paragraph(header, font)); cellConditions.setColspan(2); cellConditions.setBorder(0); table.addCell(cellConditions); PdfPCell cellConditionsTxt = new PdfPCell(new Paragraph(text)); cellConditionsTxt.setColspan(2); cellConditionsTxt.setBorder(0); table.addCell(cellConditionsTxt); } } doc.add(table); } if (map.get("StrainsDAO") != null && request.getParameter("type").equals("sub")) { StrainsDAO sd; StrainsManager sm = new StrainsManager(); PeopleDAO pd; PeopleDAO subPDAO = new PeopleDAO(); PeopleManager pm = new PeopleManager(); BibliosManager bm = new BibliosManager(); sd = (StrainsDAO) map.get("StrainsDAO"); pd = pm.getPerson(sd.getPer_id_per_contact());//For shipping details if (sd.getPer_id_per_sub() != null) { subPDAO = pm.getPerson(sd.getPer_id_per_sub()); } //RETRIEVE ASSOCIATED SUBMISSION FILES IF PRESENT final String submissionID = sd.getSub_id_sub(); System.out.println("SUBMISSION ID IS::" + submissionID); List assocFilesADDITIONAL = new ArrayList(); List assocFilesSANITARY = new ArrayList(); List assocFilesCHARACTERISATION = new ArrayList(); File dir = new File(SUBFORMUPLOAD); File[] files; files = dir.listFiles(new FilenameFilter() { @Override public boolean accept(File dir, String name) { //only add to list if submission id is conatined within file name (which includes path and file name) if (submissionID != null && name.startsWith(submissionID)) { return name.toLowerCase().endsWith(".pdf"); } return false; } }); System.out.println("Files size is::" + files.length); if (files != null && submissionID != null) { for (int i = 0; i < files.length; i++) { System.out.println("FILEname VALUE " + i + "==" + files[i].getName()); String file = files[i].getName(); if (file.startsWith(submissionID) && file.contains((CharSequence) "ADDITIONAL")) { assocFilesADDITIONAL.add(file); System.out.println("ADDITIONAL file " + file); } else if (file.startsWith(submissionID) && file.contains((CharSequence) "SANITARYSTATUS")) { assocFilesSANITARY.add(file); System.out.println("SANITARY file " + file); } else { assocFilesCHARACTERISATION.add(file); System.out.println("CHARACTERISATION file " + file); } } } ServletContext servletContext = request.getSession().getServletContext(); URL infrafrontierIconURL = servletContext.getResource("/images/infrafrontier/icon/footerlogo.jpg"); logger.debug("infrafrontierIconURL = " + infrafrontierIconURL); URL emmaIconURL = servletContext.getResource("/images/infrafrontier/icon/emma-logo-soft.png"); logger.debug("emmaIconURL = " + emmaIconURL); Image infrafrontierIcon = Image.getInstance(infrafrontierIconURL); Image emmaIcon = Image.getInstance(emmaIconURL); pdfTitle = "EMMA Mutant Submission Form"; doc.add(new Chunk(infrafrontierIcon, 0, 0)); doc.add(new Chunk(emmaIcon, 320, 0)); doc.add(Chunk.NEWLINE); doc.add(Chunk.NEWLINE); Paragraph paragraph = new Paragraph(pdfTitle, FontFactory.getFont(FontFactory.HELVETICA_BOLD, 20)); paragraph.setAlignment(Element.ALIGN_CENTER); doc.add(paragraph); float[] widths = { 0.25f, 0.75f }; PdfPTable table = new PdfPTable(widths); table.setWidthPercentage(100); PdfPCell cell; Paragraph pSubHead = new Paragraph( "\nThe Following data have been submitted to EMMA on " + sd.getArchiveDAO().getSubmitted(), FontFactory.getFont(FontFactory.HELVETICA, 11)); pSubHead.setAlignment(Element.ALIGN_CENTER); doc.add(pSubHead); doc.add(Chunk.NEWLINE); // Space padding underline Chunk underlined = new Chunk( " " + " "); underlined.setUnderline(new Color(0x00, 0x00, 0x00), 0.0f, 0.2f, 16.0f, 0.0f, PdfContentByte.LINE_CAP_BUTT);//Black line doc.add(underlined); Font font = FontFactory.getFont(FontFactory.HELVETICA_BOLD, 11); table = new PdfPTable(widths); table.setWidthPercentage(100); // Genotype preparation - strain name [actually, synonym] and description // Jira request EMMA-586 - use strain.name instead of synonym (requested by Sabine) String strainName = sd.getName(); pSubHead = new Paragraph(strainName + " / " + sd.getEmma_id() + "\n\n", FontFactory.getFont(FontFactory.HELVETICA_BOLD, 11)); pSubHead.setAlignment(Element.ALIGN_CENTER); doc.add(pSubHead); // Submitter cell = new PdfPCell(new Paragraph("\nSubmitter (Steps 1 and 2 of 11)\n\n", font)); cell.setColspan(2); cell.setBorder(0); if (sd.getPer_id_per_sub() != null) { table.addCell(cell); table.addCell("Title"); table.addCell("" + subPDAO.getTitle()); table.addCell("Firstname"); table.addCell("" + subPDAO.getFirstname()); table.addCell("Surname"); table.addCell("" + subPDAO.getSurname()); table.addCell("E-mail"); table.addCell("" + subPDAO.getEmail()); table.addCell("Phone"); table.addCell("" + subPDAO.getPhone()); table.addCell("Fax"); table.addCell("" + subPDAO.getFax()); } if (subPDAO.getLabsDAO() != null) { table.addCell("Institution"); table.addCell("" + subPDAO.getLabsDAO().getName()); table.addCell("Department"); table.addCell("" + subPDAO.getLabsDAO().getDept()); table.addCell("Address Line 1"); table.addCell("" + subPDAO.getLabsDAO().getAddr_line_1()); table.addCell("Address Line 2"); table.addCell("" + subPDAO.getLabsDAO().getAddr_line_2()); table.addCell("County/province"); table.addCell("" + subPDAO.getLabsDAO().getProvince()); table.addCell("Town"); table.addCell("" + subPDAO.getLabsDAO().getTown()); table.addCell("Postcode"); table.addCell("" + subPDAO.getLabsDAO().getPostcode()); table.addCell("Country"); table.addCell("" + subPDAO.getLabsDAO().getCountry()); } doc.add(table); doc.add(Chunk.NEWLINE); doc.add(Chunk.NEWLINE); doc.add(underlined); table = new PdfPTable(widths); table.setWidthPercentage(100); // Producer cell = new PdfPCell(new Paragraph("Producer (Step 3 of 11)\n\n", font)); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); table.addCell("Title"); table.addCell("" + sd.getPeopleDAO().getTitle()); table.addCell("Firstname"); table.addCell("" + sd.getPeopleDAO().getFirstname()); table.addCell("Surname"); table.addCell("" + sd.getPeopleDAO().getSurname()); table.addCell("E-mail"); table.addCell("" + sd.getPeopleDAO().getEmail()); table.addCell("Phone"); table.addCell("" + sd.getPeopleDAO().getPhone()); table.addCell("Fax"); table.addCell("" + sd.getPeopleDAO().getFax()); table.addCell("Institution"); table.addCell("" + sd.getPeopleDAO().getLabsDAO().getName()); table.addCell("Department"); table.addCell("" + sd.getPeopleDAO().getLabsDAO().getDept()); table.addCell("Address Line 1"); table.addCell("" + sd.getPeopleDAO().getLabsDAO().getAddr_line_1()); table.addCell("Address Line 2"); table.addCell("" + sd.getPeopleDAO().getLabsDAO().getAddr_line_2()); table.addCell("County/province"); table.addCell("" + sd.getPeopleDAO().getLabsDAO().getProvince()); table.addCell("Town"); table.addCell("" + sd.getPeopleDAO().getLabsDAO().getTown()); table.addCell("Postcode"); table.addCell("" + sd.getPeopleDAO().getLabsDAO().getPostcode()); table.addCell("Country"); table.addCell("" + sd.getPeopleDAO().getLabsDAO().getCountry()); Integer id_ilar = Utils.tryParseInt(sd.getPeopleDAO().getId_ilar()); if ((id_ilar != null) && (id_ilar.intValue() > 0)) { // If there is a valid ILAR, display it. table.addCell("ILAR"); table.addCell(sd.getPeopleDAO().getIlarDAO().getLabcode()); } doc.add(table); doc.add(Chunk.NEWLINE); doc.add(Chunk.NEWLINE); doc.add(underlined); table = new PdfPTable(widths); table.setWidthPercentage(100); // Shipper cell = new PdfPCell(new Paragraph("\nShipper (Step 4 of 11)\n\n", font)); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); table.addCell("Title"); table.addCell("" + pd.getTitle()); table.addCell("Firstname"); table.addCell("" + pd.getFirstname()); table.addCell("Surname"); table.addCell("" + pd.getSurname()); table.addCell("E-mail"); table.addCell("" + pd.getEmail()); table.addCell("Phone"); table.addCell("" + pd.getPhone()); table.addCell("Fax"); table.addCell("" + pd.getFax()); table.addCell("Institution"); table.addCell("" + pd.getLabsDAO().getName()); table.addCell("Department"); table.addCell("" + pd.getLabsDAO().getDept()); table.addCell("Address Line 1"); table.addCell("" + pd.getLabsDAO().getAddr_line_1()); table.addCell("Address Line 2"); table.addCell("" + pd.getLabsDAO().getAddr_line_2()); table.addCell("County/province"); table.addCell("" + pd.getLabsDAO().getProvince()); table.addCell("Town"); table.addCell("" + pd.getLabsDAO().getTown()); table.addCell("Postcode"); table.addCell("" + pd.getLabsDAO().getPostcode()); table.addCell("Country"); table.addCell("" + pd.getLabsDAO().getCountry()); doc.add(table); doc.add(Chunk.NEWLINE); doc.add(Chunk.NEWLINE); doc.add(underlined); table = new PdfPTable(widths); table.setWidthPercentage(100); String origBgName = sd.getBackgroundDAO().getName(); // Genotype cell = new PdfPCell(new Paragraph("\nGenotype (Step 5 of 11)\n\n", font)); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); table.addCell("Strain Name"); table.addCell("" + strainName); table.addCell("Genetic description"); table.addCell("" + cleanNULLS(sd.getCharact_gen(), false)); table.addCell("Current genetic background"); table.addCell("" + cleanNULLS(origBgName, false)); table.addCell("Number of generations backcrossed"); table.addCell("" + cleanNULLS(sd.getGeneration(), false)); table.addCell("Number of generations sib-mated"); table.addCell("" + cleanNULLS(sd.getSibmatings(), false)); table.addCell("Breeding history"); table.addCell("" + sd.getMaintenance()); doc.add(table); doc.add(Chunk.NEWLINE); table = new PdfPTable(widths); table.setWidthPercentage(100); // Genotype - Mutations cell = new PdfPCell(new Paragraph("Mutation(s)\n\n", font)); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); Set sMutations = sd.getMutationsStrainsDAO(); StringBuffer sDom = new StringBuffer(); for (Iterator it = sMutations.iterator(); it.hasNext();) { MutationsStrainsDAO mutDAO = (MutationsStrainsDAO) it.next(); if (mutDAO.getMutationsDAO().getDominance() != null) { sDom = new StringBuffer(sDom).append(mutDAO.getMutationsDAO().getDominance().toString()); } cell = new PdfPCell( new Paragraph("Type: " + cleanNULLS(mutDAO.getMutationsDAO().getMain_type(), false), FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell( new Paragraph("Subtype: " + cleanNULLS(mutDAO.getMutationsDAO().getSub_type(), false), FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell(new Paragraph( "Affected gene: " + cleanNULLS( mutDAO.getMutationsDAO().getAllelesDAO().getGenesDAO().getName(), false), FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell(new Paragraph( "MGI of affected gene: " + cleanNULLS( mutDAO.getMutationsDAO().getAllelesDAO().getGenesDAO().getMgi_ref(), false), FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell(new Paragraph( "Affected allele: " + cleanNULLS(mutDAO.getMutationsDAO().getAllelesDAO().getName(), false), FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell(new Paragraph( "MGI of affected allele: " + cleanNULLS(mutDAO.getMutationsDAO().getAllelesDAO().getMgi_ref(), false), FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell(new Paragraph( "Affected chromosome: " + cleanNULLS( mutDAO.getMutationsDAO().getAllelesDAO().getGenesDAO().getChromosome(), false), FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell(new Paragraph( "Dominance pattern: " + cleanNULLS(mutDAO.getMutationsDAO().getDominance(), false), FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); if (mutDAO.getMutationsDAO().getBackgroundDAO() != null) { cell = new PdfPCell(new Paragraph( "Original genetic background: " + cleanNULLS(mutDAO.getMutationsDAO().getBackgroundDAO().getName(), false), FontFactory.getFont(FontFactory.HELVETICA, 11))); } else { cell = new PdfPCell(new Paragraph("\n")); } cell.setColspan(2); cell.setBorder(0); table.addCell(cell); if (mutDAO.getMutationsDAO().getCh_ano_name() != null) { cell = new PdfPCell(new Paragraph( "Chromosomal anomaly name: " + cleanNULLS(mutDAO.getMutationsDAO().getCh_ano_name(), false), FontFactory.getFont(FontFactory.HELVETICA, 11))); } else { cell = new PdfPCell(new Paragraph("\n")); } cell.setColspan(2); cell.setBorder(0); table.addCell(cell); if (mutDAO.getMutationsDAO().getCh_ano_desc() != null) { cell = new PdfPCell(new Paragraph( "Chromosomal anomaly description: " + cleanNULLS(mutDAO.getMutationsDAO().getCh_ano_desc(), false), FontFactory.getFont(FontFactory.HELVETICA, 11))); } else { cell = new PdfPCell(new Paragraph("\n")); } cell.setColspan(2); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell(new Paragraph( "ES cell line used: " + cleanNULLS(mutDAO.getMutationsDAO().getTm_esline(), false) + "\n\n", FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); } /* END MUTATIONS*/ doc.add(table); doc.add(Chunk.NEWLINE); doc.add(Chunk.NEWLINE); doc.add(underlined); table = new PdfPTable(widths); table.setWidthPercentage(100); cell = new PdfPCell(new Paragraph("\nONE mutant strain is defined by its specific set of mutation(s) " + "and its specific genetic background. Therefore strains with the same set of mutation(s) but different " + "backgrounds do require DISTINCT submission forms (i.e) ONE form for each background\n\n", font)); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); doc.add(table); doc.add(Chunk.NEWLINE); doc.add(Chunk.NEWLINE); doc.add(underlined); table = new PdfPTable(widths); table.setWidthPercentage(100); // Phenotype cell = new PdfPCell(new Paragraph("\nPhenotype (Step 6 of 11)\n\n", font)); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell(new Paragraph("Phenotypic description of homozygous mice\n\n", font)); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell(new Paragraph("" + cleanNULLS(sd.getPheno_text(), true))); cell.setColspan(2); table.addCell(cell); cell = new PdfPCell(new Paragraph("\nPhenotypic description of heterozygous mice\n\n", font)); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell(new Paragraph("" + cleanNULLS(sd.getPheno_text_hetero(), true))); cell.setColspan(2); table.addCell(cell); doc.add(table); doc.add(Chunk.NEWLINE); doc.add(Chunk.NEWLINE); doc.add(underlined); table = new PdfPTable(widths); table.setWidthPercentage(100); // References List bibliosStrains = bm.bibliosStrains(sd.getId_str()); String acceptedString = ((!bibliosStrains.isEmpty()) && (bibliosStrains.size() > 0) ? "Yes/Accepted" : "No/Not known"); cell = new PdfPCell(new Paragraph("\nReferences (Step 7 of 11)\n\n", font)); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell( new Paragraph("Has this mouse mutant strain been published or accepted for publication? " + acceptedString + "\n\n", FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); for (Iterator it = bibliosStrains.iterator(); it.hasNext();) { BibliosStrainsDAO bsdao = (BibliosStrainsDAO) it.next(); cell = new PdfPCell( new Paragraph("Short description\n\n", FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); if (bsdao.getBibliosDAO().getNotes() != null) { cell = new PdfPCell(new Paragraph("" + cleanNULLS(bsdao.getBibliosDAO().getNotes(), true))); } else { cell = new PdfPCell(new Paragraph("\n")); } cell.setColspan(2); table.addCell(cell); String pubmedId = (bsdao.getBibliosDAO().getPubmed_id() == null ? "" : bsdao.getBibliosDAO().getPubmed_id()); cell = new PdfPCell( new Paragraph("\nPubMed ID: " + pubmedId, FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell(new Paragraph("Title: " + bsdao.getBibliosDAO().getTitle(), FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); String authors = "Authors: " + bsdao.getBibliosDAO().getAuthor1(); if (bsdao.getBibliosDAO().getAuthor2() != null) authors = authors + ", " + bsdao.getBibliosDAO().getAuthor2(); cell = new PdfPCell(new Paragraph(authors, FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell(new Paragraph("Journal/Book: " + bsdao.getBibliosDAO().getJournal(), FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell(new Paragraph("Year: " + cleanNULLS(bsdao.getBibliosDAO().getYear(), false), FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell(new Paragraph("Volume: " + bsdao.getBibliosDAO().getVolume(), FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell(new Paragraph("Pages: " + bsdao.getBibliosDAO().getPages() + "\n\n", FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); } doc.add(table); doc.add(Chunk.NEWLINE); doc.add(Chunk.NEWLINE); doc.add(underlined); table = new PdfPTable(widths); table.setWidthPercentage(100); // Characterization cell = new PdfPCell(new Paragraph("\nCharacterization (Step 8 of 11)\n\n", font)); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell(new Paragraph( "By genotyping \n" + "(e.g. sequence of PCR primers and PCR settings,Southern probes and " + "hybridization protocol)\n\n", FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); if (sd.getResiduesDAO() != null) { cell = new PdfPCell(new Paragraph("" + cleanNULLS(sd.getResiduesDAO().getChar_genotyping(), true))); } else { cell = new PdfPCell(new Paragraph("\n")); } cell.setColspan(2); table.addCell(cell); cell = new PdfPCell(new Paragraph("\nBy phenotyping (e.g. coat colour)\n\n", FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); if (sd.getResiduesDAO() != null) { cell = new PdfPCell( new Paragraph("" + cleanNULLS(sd.getResiduesDAO().getChar_phenotyping(), true))); } else { cell = new PdfPCell(new Paragraph("\n")); } cell.setColspan(2); table.addCell(cell); cell = new PdfPCell(new Paragraph("\nBy any other means that are not genotyping or phenotyping\n\n", FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); if (sd.getResiduesDAO() != null) { cell = new PdfPCell(new Paragraph("" + cleanNULLS(sd.getResiduesDAO().getChar_other(), true))); } else { cell = new PdfPCell(new Paragraph("")); } cell.setColspan(2); table.addCell(cell); //assocFilesCHARACTERISATION StringBuffer additionalCharacFiles = new StringBuffer(""); for (Iterator it = assocFilesCHARACTERISATION.iterator(); it.hasNext();) { String fileName = it.next().toString(); additionalCharacFiles = new StringBuffer(additionalCharacFiles).append("\n ") .append(fileName); } cell = new PdfPCell( new Paragraph("\nAdditional files uploaded:", FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell( new Paragraph("" + additionalCharacFiles, FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); doc.add(table); doc.add(Chunk.NEWLINE); doc.add(Chunk.NEWLINE); doc.add(Chunk.NEWLINE); doc.add(underlined); table = new PdfPTable(widths); table.setWidthPercentage(100); // Breeding cell = new PdfPCell(new Paragraph("\nBreeding (Step 9 of 11)\n\n", font)); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell( new Paragraph("Are homozygous mice viable? " + cleanNULLS(sd.getMutant_viable(), false), FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell( new Paragraph("Are homozygous mice fertile? " + cleanNULLS(sd.getMutant_fertile(), false), FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell(new Paragraph( "Are heterozygous/hemizygous mice fertile? " + cleanNULLS(sd.getHethemi_fertile(), false), FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell(new Paragraph( "Are homozygous matings required? " + cleanNULLS(sd.getRequire_homozygous() + "\n\n", false), FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); if (sd.getResiduesDAO() != null) { cell = new PdfPCell(new Paragraph( "" + cleanNULLS(sd.getResiduesDAO().getHomozygous_matings_required_text(), true))); } else { cell = new PdfPCell(new Paragraph("")); } cell.setColspan(2); table.addCell(cell); cell = new PdfPCell(new Paragraph( "\nAverage age of reproductive maturity (weeks): " + cleanNULLS(sd.getResiduesDAO().getReproductive_maturity_age(), false), FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell(new Paragraph( "Average age of reproductive decline (months): " + cleanNULLS(sd.getResiduesDAO().getReproductive_decline_age(), false), FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell(new Paragraph( "Average length of gestation (days): " + cleanNULLS(sd.getResiduesDAO().getGestation_length(), false), FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell(new Paragraph( "Average number of pups at birth: " + cleanNULLS(sd.getResiduesDAO().getPups_at_birth(), false), FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell(new Paragraph( "Average number of pups surviving to weaning: " + cleanNULLS(sd.getResiduesDAO().getPups_at_weaning(), false), FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell(new Paragraph( "Recommended weaning age (days): " + cleanNULLS(sd.getResiduesDAO().getWeaning_age(), false), FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell(new Paragraph( "Average number of litters in lifetime: " + cleanNULLS(sd.getResiduesDAO().getLitters_in_lifetime(), false), FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell(new Paragraph( "Breeding performance: " + cleanNULLS(sd.getResiduesDAO().getBreeding_performance(), false), FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell( new Paragraph("Husbandry requirements:\n\n", FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); if (sd.getResiduesDAO() != null) { cell = new PdfPCell( new Paragraph("" + cleanNULLS(sd.getResiduesDAO().getAnimal_husbandry() + "\n", true))); } else { cell = new PdfPCell(new Paragraph("")); } cell.setColspan(2); table.addCell(cell); cell = new PdfPCell( new Paragraph("\nAre mice immunicompromised? " + cleanNULLS(sd.getImmunocompromised(), false), FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell( new Paragraph("\nSanitary status:\n\n", FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); if (sd.getResiduesDAO() != null) { cell = new PdfPCell( new Paragraph("" + cleanNULLS(sd.getResiduesDAO().getCurrent_sanitary_status(), true))); } else { cell = new PdfPCell(new Paragraph("\n")); } cell.setColspan(2); table.addCell(cell); cell = new PdfPCell( new Paragraph("\nAnimal welfare:\n\n", FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell(new Paragraph("" + cleanNULLS(sd.getResiduesDAO().getWelfare(), true))); cell.setColspan(2); table.addCell(cell); cell = new PdfPCell( new Paragraph("\nRemedial actions:\n\n", FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell(new Paragraph("" + cleanNULLS(sd.getResiduesDAO().getRemedial_actions(), true))); cell.setColspan(2); table.addCell(cell); cell = new PdfPCell(new Paragraph("\nPlease note that under certain circumstances " + "(e.g.: long-term cryopreservation by sperm freezing) the strain's original genotype will not " + "always be available for future reconstitution of live colonies. Therefore, the original genetic " + "background cannot be guaranteed.\n\n", font)); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); //assocFilesSANITARY StringBuffer additionalSanitaryFiles = new StringBuffer(""); for (Iterator it = assocFilesSANITARY.iterator(); it.hasNext();) { String fileName = it.next().toString(); additionalSanitaryFiles = new StringBuffer(additionalSanitaryFiles).append("\n ") .append(fileName); } cell = new PdfPCell( new Paragraph("\nAdditional files uploaded:", FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell( new Paragraph("" + additionalSanitaryFiles, FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); doc.add(table); doc.add(Chunk.NEWLINE); doc.add(Chunk.NEWLINE); doc.add(underlined); table = new PdfPTable(widths); table.setWidthPercentage(100); doc.add(table); // Research value cell = new PdfPCell(new Paragraph("\n\n\nResearch value (Step 10 of 11)\n\n", font)); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell(new Paragraph( "Does this strain model a human condition or disease? " + cleanNULLS(sd.getHuman_model(), false), FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); Strains_OmimManager strainsOmimManager = new Strains_OmimManager(); List<Strains_OmimDAO> strains_omimDAOList = strainsOmimManager.findById_Strains(sd.getId_str()); if (!strains_omimDAOList.isEmpty()) { cell = new PdfPCell( new Paragraph("\nOMIM IDs:\n\n", FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); for (Strains_OmimDAO strainsOmimDAO : strains_omimDAOList) { cell = new PdfPCell( new Paragraph("" + cleanNULLS(strainsOmimDAO.getOmimDAO().getOmim(), true))); cell.setColspan(2); table.addCell(cell); } } cell = new PdfPCell(new Paragraph( "\n\nIf OMIM IDs are not available, please describe the human condition or disease:\n\n", FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell(new Paragraph("" + cleanNULLS(sd.getHuman_model_desc(), true))); cell.setColspan(2); table.addCell(cell); // Prep for Research areas Set cs = sd.getCategoriesStrainsDAO(); String otherCategory = ""; StringBuffer categories = new StringBuffer(); for (Iterator it = cs.iterator(); it.hasNext();) { CategoriesStrainsDAO cd = (CategoriesStrainsDAO) it.next(); if (cd.getCategoriesDAO().getCurated().compareTo("Y") == 0) categories.append("\n ").append(cd.getCategoriesDAO().getMain_cat()); else otherCategory = cd.getCategoriesDAO().getMain_cat(); } cell = new PdfPCell(new Paragraph("\n\nResearch areas:\n " + categories + "\n", FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); Set sRTools = sd.getRtoolsDAO(); StringBuffer rtools = new StringBuffer(""); System.out.println("size of rtoolsdao set is :- " + sRTools.size()); for (Iterator it = sRTools.iterator(); it.hasNext();) { RToolsDAO rtd = (RToolsDAO) it.next(); rtools = new StringBuffer(rtools).append("\n ") .append(rtd.getCvrtoolsDAO().getDescription()); //System.out.println("Rtools set iterator value is: " + rtools); } if ((otherCategory != null) && (otherCategory.trim().length() > 0)) { cell = new PdfPCell(new Paragraph("\n\nOther Research areas:\n\n " + otherCategory + "\n", FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); } cell = new PdfPCell(new Paragraph("\n\nResearch tools:\n" + rtools, FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); /* END OF Research value */ doc.add(table); doc.add(Chunk.NEWLINE); doc.add(Chunk.NEWLINE); doc.add(underlined); table = new PdfPTable(widths); table.setWidthPercentage(100); /* Additional information */ cell = new PdfPCell(new Paragraph("\n\nAdditional information (Step 11 of 11)\n\n", font)); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); if (sd.getResiduesDAO() != null) { cell = new PdfPCell(new Paragraph( "How many requests for this strain have you received in the last 6 months? " + cleanNULLS(sd.getResiduesDAO().getNumber_of_requests(), false), FontFactory.getFont(FontFactory.HELVETICA, 11))); } else { cell = new PdfPCell( new Paragraph("How many requests for this strain have you received in the last 6 months? ", FontFactory.getFont(FontFactory.HELVETICA, 11))); } cell.setColspan(2); cell.setBorder(0); table.addCell(cell); if (sd.getResiduesDAO() != null) { cell = new PdfPCell(new Paragraph( "Is this strain being deposited with any other institution or biotechnology company? " + cleanNULLS(sd.getResiduesDAO().getDeposited_elsewhere() + "\n\n", false), FontFactory.getFont(FontFactory.HELVETICA, 11))); } else { cell = new PdfPCell(new Paragraph( "Is this strain being deposited with any other institution or biotechnology company? ", FontFactory.getFont(FontFactory.HELVETICA, 11))); } cell.setColspan(2); cell.setBorder(0); table.addCell(cell); if (sd.getResiduesDAO() != null) { if (sd.getResiduesDAO().getIpr_description() != null) { cell = new PdfPCell( new Paragraph(cleanNULLS(sd.getResiduesDAO().getDeposited_elsewhere_text(), true))); cell.setColspan(2); table.addCell(cell); } } if (sd.getResiduesDAO() != null) { cell = new PdfPCell(new Paragraph( "\n\nAre other laboratories producing similar strains? " + cleanNULLS(sd.getResiduesDAO().getOther_labos(), false), FontFactory.getFont(FontFactory.HELVETICA, 11))); } else { cell = new PdfPCell(new Paragraph("\n\nAre other laboratories producing similar strains? ", FontFactory.getFont(FontFactory.HELVETICA, 11))); } cell.setColspan(2); cell.setBorder(0); table.addCell(cell); String IPRights = ""; if (sd.getResiduesDAO() != null) { IPRights = sd.getResiduesDAO().getIp_rights(); } else { //do nothing } cell = new PdfPCell(new Paragraph( "Are there any intellectual property rights or patented technologies linked to this strain? " + IPRights + "\n\n", FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); if (sd.getResiduesDAO() != null) { if (sd.getResiduesDAO().getIpr_description() != null) { cell = new PdfPCell( new Paragraph("" + cleanNULLS(sd.getResiduesDAO().getIpr_description(), true))); cell.setColspan(2); table.addCell(cell); } } cell = new PdfPCell(new Paragraph( "\nIs the producer the exclusive owner of this strain? " + cleanNULLS(sd.getExclusive_owner(), false) + "\n\n", FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell(new Paragraph("" + cleanNULLS(sd.getEx_owner_description(), true))); cell.setColspan(2); table.addCell(cell); cell = new PdfPCell(new Paragraph( "\nDo you have permission from all owners to deposit this strain in the EMMA repository? " + cleanNULLS(sd.getResiduesDAO().getOwner_permission(), false) + "\n\n", FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell( new Paragraph("" + cleanNULLS(sd.getResiduesDAO().getOwner_permission_text(), true))); cell.setColspan(2); table.addCell(cell); String delayedRelease = ""; if (sd.getResiduesDAO() != null) { delayedRelease = cleanNULLS(sd.getResiduesDAO().getDelayed_wanted(), false); } if (delayedRelease != null && delayedRelease.startsWith("yes")) { delayedRelease = new StringBuffer(delayedRelease).append(" (briefly explain below)\n\n").toString(); } cell = new PdfPCell(new Paragraph("\nDo you require delayed release for your strain? " + delayedRelease, FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); if (delayedRelease != null && delayedRelease.startsWith("yes")) { cell = new PdfPCell(new Paragraph("" + sd.getResiduesDAO().getDelayed_description())); cell.setColspan(2); table.addCell(cell); } if (sd.getResiduesDAO() != null) { cell = new PdfPCell(new Paragraph("\nHow many mice of breeding age could you provide and when?" + "\n\nEstimated date of shipping:\n\nMonth: " + cleanNULLS(sd.getResiduesDAO().getWhen_how_many_month(), false) + "\n\nYear: " + cleanNULLS(sd.getResiduesDAO().getWhen_how_many_year(), false) + "\n\nNumber of males: " + cleanNULLS(sd.getResiduesDAO().getWhen_how_many_males(), false) + "\n\nNumber of females: " + cleanNULLS(sd.getResiduesDAO().getWhen_how_many_females(), false), FontFactory.getFont(FontFactory.HELVETICA, 11))); } else { cell = new PdfPCell(new Paragraph( "\n\nHow many mice of breeding age could you provide and when?" + "\n\nEstimated date of shipping:\n\nMonth: " + "\n\nYear: " + "\n\nNumber of males: " + "\n\nNumber of females: ", FontFactory.getFont(FontFactory.HELVETICA, 11))); } cell.setColspan(2); cell.setBorder(0); table.addCell(cell); //assocFilesADDITIONAL StringBuffer additionalFiles = new StringBuffer(""); for (Iterator it = assocFilesADDITIONAL.iterator(); it.hasNext();) { String fileName = it.next().toString(); additionalFiles = new StringBuffer(additionalFiles).append("\n ").append(fileName); } cell = new PdfPCell( new Paragraph("\nAdditional files uploaded:", FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell( new Paragraph("" + additionalFiles, FontFactory.getFont(FontFactory.HELVETICA, 11))); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); // cell = new PdfPCell(new Paragraph("\n\nWere any of the following techniques used in the construction of this mutant?\n\n", FontFactory.getFont(FontFactory.HELVETICA, 11))); // cell.setColspan(2); // cell.setBorder(0); // table.addCell(cell); // // if (sd.getResiduesDAO() != null) { // cell = new PdfPCell(new Paragraph("Cre recombinase-loxP technology? " + cleanNULLS(sd.getResiduesDAO().getCrelox(), false), FontFactory.getFont(FontFactory.HELVETICA, 11))); // } else { // cell = new PdfPCell(new Paragraph("Cre recombinase-loxP technology? ", FontFactory.getFont(FontFactory.HELVETICA, 11))); // } // cell.setColspan(2); // cell.setBorder(0); // table.addCell(cell); // // if (sd.getResiduesDAO() != null) { // cell = new PdfPCell(new Paragraph("FLP recombinase technology? " + cleanNULLS(sd.getResiduesDAO().getFlp(), false), FontFactory.getFont(FontFactory.HELVETICA, 11))); // } else { // cell = new PdfPCell(new Paragraph("FLP recombinase technology? ", FontFactory.getFont(FontFactory.HELVETICA, 11))); // } // cell.setColspan(2); // cell.setBorder(0); // table.addCell(cell); // // if (sd.getResiduesDAO() != null) { // cell = new PdfPCell(new Paragraph("TET-system technology? " + cleanNULLS(sd.getResiduesDAO().getTet(), false), FontFactory.getFont(FontFactory.HELVETICA, 11))); // } else { // cell = new PdfPCell(new Paragraph("TET-system technology? ", FontFactory.getFont(FontFactory.HELVETICA, 11))); // } // cell.setColspan(2); // cell.setBorder(0); // table.addCell(cell); // // // if (sd.getResiduesDAO() != null) { // cell = new PdfPCell(new Paragraph("\n\nIf the submission request is accepted when could you provide " // + "10 females and 6 males (5-12 weeks old)?" // + "\nEstimated date of shipping\nMonth: " + cleanNULLS(sd.getResiduesDAO().getWhen_mice_month(), false) + "\nYear: " + cleanNULLS(sd.getResiduesDAO().getWhen_mice_year(), false), FontFactory.getFont(FontFactory.HELVETICA, 11))); // } else { // cell = new PdfPCell(new Paragraph("\n\nIf the submission request is accepted when could you provide " // + "10 females and 6 males (5-12 weeks old)?" // + "\nEstimated date of shipping\nMonth: \nYear:", FontFactory.getFont(FontFactory.HELVETICA, 11))); // } // // cell.setColspan(2); // cell.setBorder(0); // table.addCell(cell); // if (sd.getResiduesDAO() != null) { // cell = new PdfPCell(new Paragraph("\n\nIf unable to provide this number of mice how many could you provide and when?" // + "\nEstimated date of shipping\nMonth: " + cleanNULLS(sd.getResiduesDAO().getWhen_how_many_month(), false) // + "\nYear: " + cleanNULLS(sd.getResiduesDAO().getWhen_how_many_year(), false) // + "\nNumber of males: " + cleanNULLS(sd.getResiduesDAO().getWhen_how_many_males(), false) // + "\nNumber of females: " + cleanNULLS(sd.getResiduesDAO().getWhen_how_many_females(), false), // FontFactory.getFont(FontFactory.HELVETICA, 11))); // } else { // cell = new PdfPCell(new Paragraph("\n\nIf unable to provide this number of mice how many could you provide and when?" // + "\nEstimated date of shipping\nMonth: " // + "\nYear: " // + "\nNumber of males: " // + "\nNumber of females: ", // FontFactory.getFont(FontFactory.HELVETICA, 11))); // } // cell.setColspan(2); // cell.setBorder(0); // table.addCell(cell); /* END OF ADDITIONAL INFORMATION */ doc.add(table); doc.add(Chunk.NEWLINE); // Space padding underline underlined = new Chunk( " " + " "); underlined.setUnderline(new Color(0x00, 0x00, 0x00), 0.0f, 0.2f, 16.0f, 0.0f, PdfContentByte.LINE_CAP_BUTT);//Black line doc.add(underlined); pSubHead = new Paragraph("The terms and conditions have been accepted.\n\n", FontFactory.getFont(FontFactory.HELVETICA, 11)); pSubHead.setAlignment(Element.ALIGN_CENTER); doc.add(pSubHead); } }
From source file:org.emmanet.controllers.RequestFormController.java
License:Apache License
public String createPDF(Map model, String filePath) { /* I really don't like this iText library. * Takes so much effort to figure it all out * to get an acceptable pdf rendition. */ Document doc = new Document(); try {// ww w.j a va 2s . c o m System.out.println(model.get("timestamp")); PdfWriter writer = PdfWriter.getInstance(doc, new FileOutputStream(filePath)); doc.open(); Paragraph pHead = new Paragraph(pdfTitle + "\n\n", FontFactory.getFont(FontFactory.HELVETICA, 11)); pHead.setAlignment(Element.ALIGN_CENTER); doc.add(pHead); doc.add(new Paragraph(pdfTitle + "\nRequest ID:" + model.get("requestID") + "\n\n", FontFactory.getFont(FontFactory.HELVETICA_BOLD, 20))); Paragraph pSubHead = new Paragraph( "Following data have been submitted to EMMA on " + model.get("ftimestamp"), FontFactory.getFont(FontFactory.HELVETICA, 11)); pSubHead.setAlignment(Element.ALIGN_CENTER); doc.add(pSubHead); doc.add(Chunk.NEWLINE); // Space padding underline Chunk underlined = new Chunk( " " + " "); underlined.setUnderline(new Color(0x00, 0x00, 0x00), 0.0f, 0.2f, 16.0f, 0.0f, PdfContentByte.LINE_CAP_BUTT);//Black line doc.add(underlined); Font font = FontFactory.getFont(FontFactory.HELVETICA_BOLD, 11); // Set table cell widths equiv. to 25% and 75% float[] widths = { 0.25f, 0.75f }; PdfPTable table = new PdfPTable(widths); table.setWidthPercentage(100); PdfPCell cell = new PdfPCell(new Paragraph("Scientist\n\n", font)); cell.setColspan(2); cell.setBorder(0); table.addCell(cell); table.addCell("Title"); table.addCell("" + model.get("sci_title")); table.addCell("Firstname"); table.addCell("" + model.get("sci_firstname")); table.addCell("Surname"); table.addCell("" + model.get("sci_surname")); table.addCell("E-mail"); table.addCell("" + model.get("sci_e_mail")); table.addCell("Phone"); table.addCell("" + model.get("sci_phone")); table.addCell("Fax"); table.addCell("" + model.get("sci_fax")); PdfPCell cellShip = new PdfPCell(new Paragraph("\nShipping Contact\n\n", font)); cellShip.setColspan(2); cellShip.setBorder(0); table.addCell(cellShip); table.addCell("Title"); table.addCell("" + model.get("con_title")); table.addCell("Firstname"); table.addCell("" + model.get("con_firstname")); table.addCell("Surname"); table.addCell("" + model.get("con_surname")); table.addCell("E-mail"); table.addCell("" + model.get("con_e_mail")); table.addCell("Phone"); table.addCell("" + model.get("con_phone")); table.addCell("Fax"); table.addCell("" + model.get("con_fax")); table.addCell("Institution"); table.addCell("" + model.get("con_institution")); table.addCell("Department"); table.addCell("" + model.get("con_dept")); table.addCell("Address Line 1"); table.addCell("" + model.get("con_addr_1")); table.addCell("Address Line 2"); table.addCell("" + model.get("con_addr_2")); table.addCell("County/province"); table.addCell("" + model.get("con_province")); table.addCell("Town"); table.addCell("" + model.get("con_town")); table.addCell("Postcode"); table.addCell("" + model.get("con_postcode")); table.addCell("Country"); table.addCell("" + model.get("con_country")); if (!model.get("ROI").equals("1")) { //webrequest is not a roi so these were set above so send them to pdf PdfPCell cellBill = new PdfPCell(new Paragraph("\nBilling Details\n\n", font)); cellBill.setColspan(2); cellBill.setBorder(0); table.addCell(cellBill); table.addCell("VAT reference"); table.addCell("" + model.get("bil_vat")); table.addCell("Purchase Order Number"); table.addCell("" + model.get("PO_ref")); table.addCell("Title"); table.addCell("" + model.get("bil_title")); table.addCell("Firstname"); table.addCell("" + model.get("bil_firstname")); table.addCell("Surname"); table.addCell("" + model.get("bil_surname")); table.addCell("E-mail"); table.addCell("" + model.get("bil_e_mail")); table.addCell("Phone"); table.addCell("" + model.get("bil_phone")); table.addCell("Fax"); table.addCell("" + model.get("bil_fax")); table.addCell("Institution"); table.addCell("" + model.get("bil_institution")); table.addCell("Department"); table.addCell("" + model.get("bil_dept")); table.addCell("Address Line 1"); table.addCell("" + model.get("bil_addr_1")); table.addCell("Address Line 2"); table.addCell("" + model.get("bil_addr_2")); table.addCell("County/province"); table.addCell("" + model.get("bil_province")); table.addCell("Town"); table.addCell("" + model.get("bil_town")); table.addCell("Postcode"); table.addCell("" + model.get("bil_postcode")); table.addCell("Country"); table.addCell("" + model.get("bil_country")); } PdfPCell cellStrain = new PdfPCell(new Paragraph("\nStrain Details\n\n", font)); cellStrain.setColspan(2); cellStrain.setBorder(0); table.addCell(cellStrain); table.addCell("Strain ID"); table.addCell("" + model.get("strain_id")); table.addCell("Strain name"); table.addCell("" + model.get("strain_name")); table.addCell("Common Name(s)"); table.addCell("" + model.get("common_name_s")); if (model.get("req_material") != null) { PdfPCell cellMaterial = new PdfPCell(new Paragraph("\nRequested Material\n\n", font)); cellMaterial.setColspan(2); cellMaterial.setBorder(0); table.addCell(cellMaterial); table.addCell("Material"); table.addCell("" + model.get("req_material")); } if (model.get("live_animals") != null) { table.addCell("Live Animals"); table.addCell("Selected"); } if (model.get("frozen_emb") != null) { table.addCell("Frozen Embryos"); table.addCell("Selected"); } if (model.get("frozen_spe") != null) { table.addCell("Frozen Sperm"); table.addCell("Selected"); } if (pdfConditions) { String text = ""; String text1 = ""; String text2 = ""; String header = ""; String header1 = ""; String header2 = ""; if (model.get("application_type").equals("request_only")) { text = new StringBuilder().append(text).append( "\nYou have indicated that you have read the conditions and agree to pay the transmittal fee " + "plus shipping costs.") .toString(); header = new StringBuilder().append(header).append("\nStandard request\n").toString(); } else if (!model.get("application_type").equals("request_only")) { header1 = new StringBuilder().append(header1) .append("\nApplication for Transnational Access Activity").toString(); if (model.get("application_type").equals("ta_only")) { text1 = new StringBuilder().append(text1).append( "\nYou have indicated that you have read the conditions and have applied for free of charge TA only. " + "In the case of the TA application being rejected the request process will be terminated.") .toString(); header1 = new StringBuilder().append(header1).append(" (TA Option B)\n").toString(); } else { text1 = new StringBuilder().append(text1).append( "\nYou have indicated that you have read the conditions and have applied for free of charge TA " + "and have agreed to pay the service charge plus shipping cost if the TA application is rejected.") .toString(); header1 = new StringBuilder().append(header1).append(" (TA Option A)\n").toString(); } header2 = new StringBuilder().append(header2).append( "\n\nDescription of project (1/2 page) involving requested EMMA mouse mutant resource. " + "The project description will be used by the Evaluation Committee for selection of applicants:") .toString(); } if (!model.get("application_type").equals("request_only")) { // table.addCell("" + model.get("ta_proj_desc")); text2 = new StringBuilder().append(text2).append("\n\n " + model.get("ta_proj_desc")) .toString(); } if (!model.get("application_type").equals("request_only")) { //we have a ta header and text to add PdfPCell cellConditions1 = new PdfPCell(new Paragraph(header1, font)); cellConditions1.setColspan(2); cellConditions1.setBorder(0); table.addCell(cellConditions1); PdfPCell cellConditions2 = new PdfPCell(new Paragraph(text1)); cellConditions2.setColspan(2); cellConditions2.setBorder(0); table.addCell(cellConditions2); PdfPCell cellConditions3 = new PdfPCell(new Paragraph(header2, font)); cellConditions3.setColspan(2); cellConditions3.setBorder(0); table.addCell(cellConditions3); PdfPCell cellConditions4 = new PdfPCell(new Paragraph(text2)); cellConditions4.setColspan(2); cellConditions4.setBorder(0); table.addCell(cellConditions4); } else { PdfPCell cellConditions = new PdfPCell(new Paragraph(header, font)); cellConditions.setColspan(2); cellConditions.setBorder(0); table.addCell(cellConditions); PdfPCell cellConditionsTxt = new PdfPCell(new Paragraph(text)); cellConditionsTxt.setColspan(2); cellConditionsTxt.setBorder(0); table.addCell(cellConditionsTxt); } } doc.add(table); } catch (DocumentException de) { System.err.println(de.getMessage()); } catch (IOException e) { System.err.println(e.getMessage()); } doc.close(); return filePath; }
From source file:org.gtdfree.addons.PDFExportAddOn.java
License:Open Source License
@Override public void export(GTDModel model, ActionsCollection collection, OutputStream out, ExportAddOn.ExportOrder order, FileFilter ff, boolean compact) throws Exception { fontSelector = new FontSelector(); fontSelectorB = new FontSelector(); fontSelectorB2 = new FontSelector(); fontSelectorB4 = new FontSelector(); baseFont = fontModel.getBaseFont();/* ww w . j a va2s . c om*/ for (BaseFont bf : fontModel.getFonts()) { fontSelector.addFont(new Font(bf, baseFontSize)); fontSelectorB.addFont(new Font(bf, baseFontSize, Font.BOLD)); fontSelectorB2.addFont(new Font(bf, baseFontSize + 2, Font.BOLD)); fontSelectorB4.addFont(new Font(bf, baseFontSize + 4, Font.BOLD)); } boolean emptyH2 = false; boolean emptyH3 = false; PdfPTable actionTable = null; Document doc = new Document(); if (sizeSet) { doc.setPageSize(pageSize); } if (marginSet) { doc.setMargins(marginLeft, marginRight, marginTop, marginBottom); } //System.out.println("PDF size "+doc.getPageSize().toString()); //System.out.println("PDF m "+marginLeft+" "+marginRight+" "+marginTop+" "+marginBottom); @SuppressWarnings("unused") PdfWriter pw = PdfWriter.getInstance(doc, out); doc.addCreationDate(); doc.addTitle("GTD-Free PDF"); doc.addSubject("GTD-Free data exported as PDF"); HeaderFooter footer = new HeaderFooter(newParagraph(), true); footer.setAlignment(HeaderFooter.ALIGN_CENTER); footer.setBorder(HeaderFooter.TOP); doc.setFooter(footer); doc.open(); Phrase ch = newTitle("GTD-Free Data"); Paragraph p = new Paragraph(ch); p.setAlignment(Paragraph.ALIGN_CENTER); PdfPTable t = new PdfPTable(1); t.setWidthPercentage(100f); PdfPCell c = newCell(p); c.setBorder(Table.BOTTOM); c.setBorderWidth(2.5f); c.setHorizontalAlignment(PdfPCell.ALIGN_CENTER); c.setPadding(5f); t.addCell(c); doc.add(t); Iterator<Object> it = collection.iterator(order); while (it.hasNext()) { Object o = it.next(); if (o == ActionsCollection.ACTIONS_WITHOUT_PROJECT) { if (order == ExportAddOn.ExportOrder.FoldersProjectsActions) { doc.add(newSubSection(ActionsCollection.ACTIONS_WITHOUT_PROJECT)); emptyH2 = false; emptyH3 = true; } else { doc.add(newSection(ActionsCollection.ACTIONS_WITHOUT_PROJECT)); emptyH2 = true; emptyH3 = false; } continue; } if (o instanceof Folder) { Folder f = (Folder) o; if (actionTable != null) { doc.add(actionTable); actionTable = null; } if (f.isProject()) { if (order == ExportAddOn.ExportOrder.ProjectsActions || order == ExportAddOn.ExportOrder.ProjectsFoldersActions) { if (emptyH2 || emptyH3) { p = newParagraph(NONE_DOT); doc.add(p); } doc.add(newSection(f.getName())); if (compact) { if (f.getDescription() != null && f.getDescription().length() > 0) { p = newParagraph(f.getDescription()); p.setIndentationLeft(10f); p.setIndentationRight(10f); doc.add(p); } } else { t = new PdfPTable(2); t.setKeepTogether(true); t.setSpacingBefore(5f); t.setWidthPercentage(66f); t.setWidths(new float[] { 0.33f, 0.66f }); c = newCell("ID"); t.addCell(c); c = newCell(newStrongParagraph(String.valueOf(f.getId()))); t.addCell(c); c = newCell("Type"); t.addCell(c); c = newCell(newStrongParagraph("Project")); t.addCell(c); c = newCell("Open"); t.addCell(c); c = newCell(newStrongParagraph(String.valueOf(f.getOpenCount()))); t.addCell(c); c = newCell("All"); t.addCell(c); c = newCell(newStrongParagraph(String.valueOf(f.size()))); t.addCell(c); c = newCell("Description"); t.addCell(c); c = newDescriptionCell(f.getDescription()); t.addCell(c); doc.add(t); } emptyH2 = true; emptyH3 = false; } else { if (emptyH3) { p = newParagraph(NONE_DOT); doc.add(p); } doc.add(newSubSection("Project:" + " " + f.getName())); emptyH2 = false; emptyH3 = true; } continue; } if (order == ExportAddOn.ExportOrder.FoldersActions || order == ExportAddOn.ExportOrder.FoldersProjectsActions) { if (emptyH2 || emptyH3) { p = newParagraph(NONE_DOT); doc.add(p); } doc.add(newSection(f.getName())); if (compact) { if (f.getDescription() != null && f.getDescription().length() > 0) { p = newParagraph(f.getDescription()); p.setIndentationLeft(10f); p.setIndentationRight(10f); doc.add(p); } } else { t = new PdfPTable(2); t.setKeepTogether(true); t.setSpacingBefore(5f); t.setWidthPercentage(66f); t.setWidths(new float[] { 0.33f, 0.66f }); c = newCell("ID"); t.addCell(c); c = newCell(newStrongParagraph(String.valueOf(f.getId()))); t.addCell(c); String type = ""; if (f.isAction()) { type = "Action list"; } else if (f.isInBucket()) { type = "In-Bucket"; } else if (f.isQueue()) { type = "Next action queue"; } else if (f.isReference()) { type = "Reference list"; } else if (f.isSomeday()) { type = "Someday/Maybe list"; } else if (f.isBuildIn()) { type = "Default list"; } c = newCell("Type"); t.addCell(c); c = newCell(newStrongParagraph(type)); t.addCell(c); c = newCell("Open"); t.addCell(c); c = newCell(newStrongParagraph(String.valueOf(f.getOpenCount()))); t.addCell(c); c = newCell("All"); t.addCell(c); c = newCell(newStrongParagraph(String.valueOf(f.size()))); t.addCell(c); c = newCell("Description"); t.addCell(c); c = newDescriptionCell(f.getDescription()); t.addCell(c); doc.add(t); } emptyH2 = true; emptyH3 = false; } else { if (emptyH3) { p = newParagraph(NONE_DOT); doc.add(p); } doc.add(newSubSection("List:" + " " + f.getName())); emptyH2 = false; emptyH3 = true; } continue; } if (o instanceof Action) { emptyH2 = false; emptyH3 = false; Action a = (Action) o; if (compact) { if (actionTable == null) { actionTable = new PdfPTable(5); actionTable.setWidthPercentage(100f); actionTable.setHeaderRows(1); actionTable.setSpacingBefore(5f); c = newHeaderCell("ID"); actionTable.addCell(c); c = newHeaderCell("Pri."); actionTable.addCell(c); c = newHeaderCell("Description"); actionTable.addCell(c); c = newHeaderCell("Reminder"); actionTable.addCell(c); c = newHeaderCell(CHECK_RESOLVED); actionTable.addCell(c); float width = doc.getPageSize().getWidth() - doc.getPageSize().getBorderWidthLeft() - doc.getPageSize().getBorderWidthRight(); int i = model.getLastActionID(); float step = baseFontSize - 1; int steps = (int) Math.floor(Math.log10(i)) + 1; // ID column float col1 = 8 + steps * step; // Priority column float col2 = 4 + 3 * (baseFontSize + 4); // Reminder column float col4 = 10 + step * 11; // Resolved column float col5 = 8 + baseFontSize; // Description column float col3 = width - col1 - col2 - col4 - col5; actionTable.setWidths(new float[] { col1, col2, col3, col4, col5 }); } addSingleActionRow(a, actionTable); } else { addSingleActionTable(model, doc, a); } } } if (actionTable != null) { doc.add(actionTable); actionTable = null; } if (emptyH2 || emptyH3) { p = newParagraph(NONE_DOT); doc.add(p); } //w.writeCharacters("Exported: "+ApplicationHelper.toISODateTimeString(new Date())); doc.close(); }
From source file:org.gtdfree.addons.PDFExportAddOn.java
License:Open Source License
private PdfPCell newCell(Paragraph p) throws BadElementException { PdfPCell c = new PdfPCell(p); c.setBorder(PdfPCell.BOX); c.setBorderWidth(0.1f);//from w ww . j a v a 2s. c o m c.setVerticalAlignment(PdfPCell.ALIGN_MIDDLE); c.setPaddingBottom(3f); c.setPaddingLeft(3f); c.setPaddingRight(3f); c.setPaddingTop(0f); c.setUseBorderPadding(true); return c; }
From source file:org.gtdfree.addons.PDFExportAddOn.java
License:Open Source License
private Element newSection(String s) throws DocumentException, IOException { Phrase c = fontSelectorB2.process(s); Paragraph p = new Paragraph(c); PdfPTable t = new PdfPTable(1); t.setSpacingBefore(15f);//from w w w. j ava2s.c o m t.setSpacingAfter(7f); t.setWidthPercentage(100f); PdfPCell ce = newCell(p); ce.setBorder(PdfPCell.BOTTOM); ce.setBorderWidth(1f); ce.setPaddingLeft(0); ce.setPaddingRight(0); t.addCell(ce); return t; }
From source file:org.gtdfree.addons.PDFExportAddOn.java
License:Open Source License
private Element newSubSection(String s) throws DocumentException, IOException { Phrase c = fontSelectorB.process(s); Paragraph p = new Paragraph(c); PdfPTable t = new PdfPTable(1); t.setSpacingBefore(7f);//from w w w . ja v a2 s. co m t.setSpacingAfter(5f); t.setWidthPercentage(100f); PdfPCell ce = newCell(p); ce.setBorder(PdfPCell.BOTTOM); ce.setBorderWidth(0.75f); ce.setPaddingLeft(0); ce.setPaddingRight(0); t.addCell(ce); return t; }