List of usage examples for com.itextpdf.text.pdf PdfPCell addElement
public void addElement(Element element)
From source file:org.smap.sdal.managers.PDFSurveyManager.java
License:Open Source License
private PdfPTable addDisplayItem(Parser parser, DisplayItem di, String basePath, String serverRoot, boolean generateBlank, GlobalVariables gv, String remoteUser, int oId) throws BadElementException, MalformedURLException, IOException { PdfPCell labelCell = new PdfPCell(); PdfPCell valueCell = new PdfPCell(); labelCell.setBorderColor(BaseColor.LIGHT_GRAY); valueCell.setBorderColor(BaseColor.LIGHT_GRAY); PdfPTable tItem = null;/*from ww w . ja va 2 s . c o m*/ // Add label StringBuffer html = new StringBuffer(); html.append("<span class='label "); if (di.labelbold) { html.append(" lbold"); } // Get text value String textValue = ""; if (di.text != null && di.text.trim().length() > 0) { textValue = di.text; } else { textValue = di.name; } textValue = textValue.trim(); if (textValue.charAt(textValue.length() - 1) != ':') { textValue += ":"; } if (di.labelcaps) { textValue = textValue.toUpperCase(); } // Add language class html.append(GeneralUtilityMethods.getLanguage(textValue)); html.append("'>"); // Add text value html.append(GeneralUtilityMethods.unesc(textValue)); html.append("</span>"); // Only include hints if we are generating a blank template if (generateBlank) { html.append("<span class='hint "); if (di.hint != null) { html.append(GeneralUtilityMethods.getLanguage(di.hint)); html.append("'>"); html.append(GeneralUtilityMethods.unesc(di.hint)); } html.append("</span>"); } parser.elements.clear(); try { parser.xmlParser.parse(new StringReader(html.toString())); for (Element element : parser.elements) { if (textValue != null && textValue.length() > 0) { if (GeneralUtilityMethods.isRtlLanguage(textValue)) { labelCell.setRunDirection(PdfWriter.RUN_DIRECTION_RTL); } } else if (di.hint != null && di.hint.length() > 0) { if (GeneralUtilityMethods.isRtlLanguage(textValue)) { labelCell.setRunDirection(PdfWriter.RUN_DIRECTION_RTL); } } labelCell.addElement(element); } } catch (Exception e) { log.info("Error parsing: " + html.toString() + " : " + e.getMessage()); lm.writeLog(sd, survey.getId(), remoteUser, LogManager.ERROR, e.getMessage() + " for: " + html.toString()); labelCell.addElement(getPara(html.toString(), di, gv, null, null)); } // Set the content of the value cell try { updateValueCell(parser, remoteUser, valueCell, di, generateBlank, basePath, serverRoot, gv, oId); } catch (Exception e) { log.info("Error updating value cell, continuing: " + basePath + " : " + di.value); log.log(Level.SEVERE, "Exception", e); } int widthValue = 5; if (di.widthLabel == 10) { widthValue = 1; // Label and value in 1 column di.widthLabel = 1; tItem = new PdfPTable(1); } else { // Label and value in 2 columns widthValue = 10 - di.widthLabel; tItem = new PdfPTable(10); } // Format label cell labelCell.setColspan(di.widthLabel); if (di.labelbg != null) { labelCell.setBackgroundColor(di.labelbg); } // Format value cell valueCell.setColspan(widthValue); if (di.valueHeight > -1.0) { valueCell.setMinimumHeight((float) di.valueHeight); } if (di.valuebg != null) { valueCell.setBackgroundColor(di.valuebg); } tItem.addCell(labelCell); tItem.addCell(valueCell); return tItem; }
From source file:org.smap.sdal.managers.PDFSurveyManager.java
License:Open Source License
private void updateValueCell(Parser parser, String remoteUser, PdfPCell valueCell, DisplayItem di, boolean generateBlank, String basePath, String serverRoot, GlobalVariables gv, int oId) throws Exception { // Questions that append their values to this question ArrayList<String> deps = gv.addToList.get(di.fIdx + "_" + di.rec_number + "_" + di.name); if (di.type.startsWith("select")) { processSelect(parser, remoteUser, valueCell, di, generateBlank, gv, oId); } else if (di.type.equals("image")) { if (di.value != null && !di.value.trim().equals("") && !di.value.trim().equals("Unknown")) { if (di.isHyperlink) { Anchor anchor = new Anchor(serverRoot + di.value); anchor.setReference(serverRoot + di.value); valueCell.addElement(getPara("", di, gv, deps, anchor)); } else { try { Image img = Image.getInstance(basePath + "/" + di.value); valueCell.addElement(img); } catch (Exception e) { log.info("Error: image " + basePath + "/" + di.value + " not added: " + e.getMessage()); log.log(Level.SEVERE, "Adding image to pdf", e); }/*from w ww . j a va2 s . c om*/ } } else { // TODO add empty image } } else if (di.type.equals("video") || di.type.equals("audio")) { if (di.value != null && !di.value.trim().equals("") && !di.value.trim().equals("Unknown")) { Anchor anchor = new Anchor(serverRoot + di.value); anchor.setReference(serverRoot + di.value); valueCell.addElement(getPara("", di, gv, deps, anchor)); } else { // TODO add empty image } } else if (di.type.equals("geopoint") || di.type.equals("geoshape") || di.type.equals("geotrace") || di.type.startsWith("geopolygon_") || di.type.startsWith("geolinestring_")) { Image img = PdfUtilities.getMapImage(sd, di.map, di.value, di.location, di.zoom, gv.mapbox_key, survey.id, user, di.markerColor); if (img != null) { valueCell.addElement(img); } else { valueCell.addElement(getPara(" ", di, gv, deps, null)); } } else if (di.isBarcode) { BarcodeQRCode qrcode = new BarcodeQRCode(di.value.trim(), 1, 1, null); Image qrcodeImage = qrcode.getImage(); qrcodeImage.setAbsolutePosition(10, 500); qrcodeImage.scalePercent(200); valueCell.addElement((qrcodeImage)); } else { // Todo process other question types String value = null; if (di.value == null || di.value.trim().length() == 0) { value = " "; // Need a space to show a blank row } else { if (di.value != null && di.value.length() > 0) { if (GeneralUtilityMethods.isRtlLanguage(di.value)) { valueCell.setRunDirection(PdfWriter.RUN_DIRECTION_RTL); } } if (di.type.equals("dateTime") || di.type.equals("timestamp")) { // Set date time to local time DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); df.setTimeZone(TimeZone.getTimeZone("UTC")); Date date = df.parse(di.value); df.setTimeZone(TimeZone.getTimeZone(tz)); value = df.format(date); log.info("Convert date to local time: " + di.name + " : " + di.value + " : " + " : " + value + " : " + di.type + " : " + tz); } else { value = di.value; } } valueCell.addElement(getPara(value, di, gv, deps, null)); } }
From source file:org.smap.sdal.managers.PDFSurveyManager.java
License:Open Source License
private void processSelect(Parser parser, String remoteUser, PdfPCell cell, DisplayItem di, boolean generateBlank, GlobalVariables gv, int oId) throws Exception { Font f = null;/*from w ww . j a v a 2 s.c o m*/ boolean isRtl = false; // If generating blank template List list = new List(); list.setAutoindent(false); list.setSymbolIndent(24); String lang; boolean isSelectMultiple = di.type.equals("select") ? true : false; // Questions that append their values to this question ArrayList<String> deps = gv.addToList.get(di.fIdx + "_" + di.rec_number + "_" + di.name); /* * Add the value of this question unless * The form is not blank and the value is "other" and their are 1 or more dependent questions * In this case we assume that its only the values of the dependent questions that are needed */ if (generateBlank) { // TODO get real choices using choice manager Form form = survey.forms.get(di.fIdx); Question question = form.questions.get(di.qIdx); OptionList ol = survey.optionLists.get(question.list_name); for (Option o : ol.options) { String text = null; if (o.display_name != null && o.display_name.trim().length() > 0) { text = o.display_name; } else { text = o.labels.get(languageIdx).text; } lang = GeneralUtilityMethods.getLanguage(text); f = getFont(lang); isRtl = isRtl(lang); ListItem item = new ListItem(GeneralUtilityMethods.unesc(text), f); if (isSelectMultiple) { item.setListSymbol(new Chunk("\uf096", Symbols)); list.add(item); } else { item.setListSymbol(new Chunk("\uf10c", Symbols)); list.add(item); } } if (isRtl) { cell.setRunDirection(PdfWriter.RUN_DIRECTION_RTL); } cell.addElement(list); } else { if (deps == null || (di.value != null && !di.value.trim().toLowerCase().equals("other"))) { String value = di.value; if (di.type.equals("select1")) { Form form = survey.forms.get(di.fIdx); Question question = form.questions.get(di.qIdx); ArrayList<String> matches = new ArrayList<String>(); matches.add(di.value); value = choiceManager.getLabel(sd, cResults, user, oId, survey.id, question.id, question.l_id, question.external_choices, question.external_table, survey.languages.get(languageIdx).name, languageIdx, matches, survey.ident); } else if (di.type.equals("select")) { String nameValue = value; if (nameValue != null) { String vArray[] = nameValue.split(" "); ArrayList<String> matches = new ArrayList<String>(); if (vArray != null) { for (String v : vArray) { matches.add(v); } } Form form = survey.forms.get(di.fIdx); Question question = form.questions.get(di.qIdx); value = choiceManager.getLabel(sd, cResults, user, oId, survey.id, question.id, question.l_id, question.external_choices, question.external_table, survey.languages.get(languageIdx).name, languageIdx, matches, survey.ident); } } if (GeneralUtilityMethods.isRtlLanguage(di.value)) { cell.setRunDirection(PdfWriter.RUN_DIRECTION_RTL); } parser.elements.clear(); String html = getHtml(value, di, gv, deps); try { parser.xmlParser.parse(new StringReader(html)); } catch (Exception e) { log.info("Error parsing: " + html.toString() + " : " + e.getMessage()); lm.writeLog(sd, survey.getId(), remoteUser, LogManager.ERROR, e.getMessage() + " for: " + html.toString()); cell.addElement(getPara(html.toString(), di, gv, null, null)); } for (Element element : parser.elements) { cell.addElement(element); } //cell.addElement(getPara(value, di, gv, deps, null)); } } }
From source file:org.smap.sdal.managers.PDFTableManager.java
License:Open Source License
private PdfPCell addDisplayItem(Parser parser, KeyValue kv, String basePath, boolean barcode, String type) throws BadElementException, MalformedURLException, IOException { PdfPCell valueCell = new PdfPCell(); valueCell.setBorderColor(BaseColor.LIGHT_GRAY); // Set the content of the value cell try {//w w w . j a v a 2 s . com if (type != null && type.equals("image")) { Image img = Image.getInstance(kv.v); valueCell.addElement(img); } else if (barcode && kv.v.trim().length() > 0) { BarcodeQRCode qrcode = new BarcodeQRCode(kv.v.trim(), 1, 1, null); Image qrcodeImage = qrcode.getImage(); qrcodeImage.setAbsolutePosition(10, 500); qrcodeImage.scalePercent(200); valueCell.addElement((qrcodeImage)); } else { valueCell.addElement(getPara(kv.v)); } } catch (Exception e) { log.info("Error updating value cell, continuing: " + basePath + " : " + kv.v); log.log(Level.SEVERE, "Exception", e); } return valueCell; }
From source file:pipe.PdfMaker.java
/** * Builds and returns the main table.//from www . j a v a2 s .c o m * * @return */ Element mainElement(ArrayList values) throws BadElementException { PdfPTable table = new PdfPTable(2); table.setWidthPercentage(100f); table.getDefaultCell().setBorderWidth(0.5f); Element element; PdfPCell cell; element = this.firstElement((String) values.get(0)); cell = this.createCell(1, 1); cell.setBorder(15); cell.setPadding(2f); cell.addElement(element); table.addCell(cell); String dirString = "pictures" + File.separator + (String) values.get(0) + "_" + (String) values.get(1) + "_" + (String) values.get(2) + File.separator + "01.jpg"; element = this.fourthLogoElement(dirString); // You need to pass the image to the constructor. // If you add the image, it will be stretched to fill the cell. cell = new PdfPCell((Image) element); cell.setPadding(2); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_CENTER); cell.setBorderWidth(0.3f); cell.setRowspan(4); table.addCell(cell); element = this.thirdElement((String) values.get(1), (String) values.get(2)); cell = this.createCell(1, 1); cell.addElement(element); table.addCell(cell); element = this.fifthElement((String) values.get(3), (String) values.get(4), (String) values.get(5)); cell = this.createCell(1, 1); cell.addElement(element); table.addCell(cell); element = this.sixthElement((String) values.get(6), (String) values.get(7)); cell = this.createCell(1, 1); cell.addElement(element); cell.setBorderWidth(0.3f); table.addCell(cell); element = this.seventhElement((String) values.get(8), (String) values.get(9)); cell = this.createCell(1, 1); cell.addElement(element); table.addCell(cell); element = this.eightthElement((String) values.get(10), (String) values.get(11)); cell = this.createCell(2, 1); cell.setBorderWidth(0.3f); cell.addElement(element); table.addCell(cell); element = this.ninethElement((String) values.get(12), (String) values.get(13), (String) values.get(14)); cell = this.createCell(1, 1); cell.setBorderWidth(0.3f); cell.addElement(element); table.addCell(cell); element = this.tenthElement((String) values.get(15), (String) values.get(16), (String) values.get(17)); cell = this.createCell(1, 1); cell.setBorderWidth(0.3f); cell.addElement(element); table.addCell(cell); element = this.eleventhElement((String) values.get(18), (String) values.get(19), (String) values.get(20)); cell = this.createCell(1, 1); cell.setBorderWidth(0.3f); cell.addElement(element); table.addCell(cell); element = this.twelvethElement((String) values.get(21), (String) values.get(22), (String) values.get(23)); cell = this.createCell(1, 1); cell.setBorderWidth(0.3f); cell.addElement(element); table.addCell(cell); element = this.thirteenthElement((String) values.get(24), (String) values.get(25)); cell = this.createCell(1, 1); cell.setBorderWidth(0.3f); cell.addElement(element); table.addCell(cell); element = this.fourteenthElement((String) values.get(26), (String) values.get(27)); cell = this.createCell(1, 1); cell.setBorderWidth(0.3f); cell.addElement(element); table.addCell(cell); element = this.fifteenthElement((String) values.get(28)); cell = this.createCell(2, 1); cell.setBorderWidth(0.3f); cell.addElement(element); table.addCell(cell); return table; }
From source file:pipe.PdfMaker.java
private Element thirdElement(String hersteller, String modell) { float leading = 9f; PdfPTable table = new PdfPTable(2); table.setWidthPercentage(100f);/* w ww.j a v a 2 s . c om*/ PdfPCell cell; cell = new PdfPCell(new Paragraph("Hersteller", arialSmall)); cell.setPadding(2); cell.setGrayFill(0.85f); cell.setBorderWidth(0.3f); table.addCell(cell); cell = new PdfPCell(new Paragraph("Modell", arialSmall)); cell.setPadding(2); cell.setBorderWidth(0.3f); cell.setGrayFill(0.85f); table.addCell(cell); cell = new PdfPCell(); cell.setPadding(2); cell.setBorderWidth(0.3f); cell.setFixedHeight(30f); Paragraph herstellerInfo = new Paragraph(hersteller, courier); herstellerInfo.setLeading(leading); cell.addElement(herstellerInfo); table.addCell(cell); cell = new PdfPCell(); cell.setPadding(2); cell.setBorderWidth(0.3f); cell.setFixedHeight(30f); Paragraph modellInfo = new Paragraph(modell, courier); modellInfo.setLeading(leading); cell.addElement(modellInfo); table.addCell(cell); return table; }
From source file:pipe.PdfMaker.java
private Element fifthElement(String land, String edition, String jahr) { float leading = 9f; PdfPTable table = new PdfPTable(3); table.setWidthPercentage(100f);// w w w .ja v a 2 s .c o m PdfPCell cell; //Hier die Header zuerst cell = new PdfPCell(new Paragraph("Land", arialSmall)); cell.setPadding(2); cell.setGrayFill(0.85f); cell.setBorderWidth(0.3f); table.addCell(cell); cell = new PdfPCell(new Paragraph("Edition", arialSmall)); cell.setPadding(2); cell.setGrayFill(0.85f); cell.setBorderWidth(0.3f); table.addCell(cell); cell = new PdfPCell(new Paragraph("Jahr", arialSmall)); cell.setPadding(2); cell.setGrayFill(0.85f); cell.setBorderWidth(0.3f); table.addCell(cell); //Ab hier die Werte cell = new PdfPCell(); cell.setPadding(2); cell.setBorderWidth(0.3f); Paragraph herkunftInfo = new Paragraph(land, courier); herkunftInfo.setLeading(leading); cell.addElement(herkunftInfo); table.addCell(cell); cell = new PdfPCell(); cell.setPadding(2); cell.setBorderWidth(0.3f); Paragraph editionInfo = new Paragraph(edition, courier); editionInfo.setLeading(leading); cell.addElement(editionInfo); table.addCell(cell); cell = new PdfPCell(); cell.setBorderWidth(0.3f); cell.setFixedHeight(30f); Paragraph yearInfo = new Paragraph(jahr, courier); yearInfo.setLeading(leading); cell.addElement(yearInfo); table.addCell(cell); return table; }
From source file:pipe.PdfMaker.java
private Element sixthElement(String grundform, String mundstck) { float leading = 9f; PdfPTable table = new PdfPTable(2); table.setWidthPercentage(100f);//from w w w . j a v a2s . c o m PdfPCell cell; cell = new PdfPCell(new Paragraph("Grundform", arialSmall)); cell.setPadding(2); cell.setGrayFill(0.85f); cell.setBorderWidth(0.3f); table.addCell(cell); cell = new PdfPCell(new Paragraph("Mundstck", arialSmall)); cell.setPadding(2); cell.setBorderWidth(0.3f); cell.setGrayFill(0.85f); table.addCell(cell); cell = new PdfPCell(); cell.setPadding(2); cell.setBorderWidth(0.3f); cell.setFixedHeight(30f); Paragraph herstellerInfo = new Paragraph(grundform, courier); herstellerInfo.setLeading(leading); cell.addElement(herstellerInfo); table.addCell(cell); cell = new PdfPCell(); cell.setPadding(2); cell.setBorderWidth(0.3f); cell.setFixedHeight(30f); Paragraph modellInfo = new Paragraph(mundstck, courier); modellInfo.setLeading(leading); cell.addElement(modellInfo); table.addCell(cell); return table; }
From source file:pipe.PdfMaker.java
private Element seventhElement(String kopfmat, String mundmat) { float leading = 9f; PdfPTable table = new PdfPTable(2); table.setWidthPercentage(100f);/*from ww w. j ava 2s . c o m*/ PdfPCell cell; cell = new PdfPCell(new Paragraph("Kopfmaterial", arialSmall)); cell.setPadding(2); cell.setGrayFill(0.85f); cell.setBorderWidth(0.3f); table.addCell(cell); cell = new PdfPCell(new Paragraph("Material Mundstck", arialSmall)); cell.setPadding(2); cell.setBorderWidth(0.3f); cell.setGrayFill(0.85f); table.addCell(cell); cell = new PdfPCell(); cell.setPadding(2); cell.setBorderWidth(0.3f); cell.setFixedHeight(30f); Paragraph mundMatInfo = new Paragraph(kopfmat, courier); mundMatInfo.setLeading(leading); cell.addElement(mundMatInfo); table.addCell(cell); cell = new PdfPCell(); cell.setPadding(2); cell.setBorderWidth(0.3f); cell.setFixedHeight(30f); Paragraph modellInfo = new Paragraph(mundmat, courier); modellInfo.setLeading(leading); cell.addElement(modellInfo); table.addCell(cell); return table; }
From source file:pipe.PdfMaker.java
private Element eightthElement(String applikation, String tabak) { float leading = 9f; PdfPTable table = new PdfPTable(2); table.setWidthPercentage(100f);// w w w.j a va2 s . c o m PdfPCell cell; cell = new PdfPCell(new Paragraph("Applikation", arialSmall)); cell.setPadding(2); cell.setGrayFill(0.85f); cell.setBorderWidth(0.3f); table.addCell(cell); cell = new PdfPCell(new Paragraph("Eingerauchter Tabak", arialSmall)); cell.setPadding(2); cell.setBorderWidth(0.3f); cell.setGrayFill(0.85f); table.addCell(cell); cell = new PdfPCell(); cell.setPadding(2); cell.setBorderWidth(0.3f); cell.setFixedHeight(30f); Paragraph mundMatInfo = new Paragraph(applikation, courier); mundMatInfo.setLeading(leading); cell.addElement(mundMatInfo); table.addCell(cell); cell = new PdfPCell(); cell.setPadding(2); cell.setBorderWidth(0.3f); cell.setFixedHeight(30f); Paragraph modellInfo = new Paragraph(tabak, courier); modellInfo.setLeading(leading); cell.addElement(modellInfo); table.addCell(cell); return table; }