List of usage examples for com.lowagie.text Image setAlignment
public void setAlignment(int alignment)
From source file:org.drools.verifier.doc.DroolsDocsComponentFactory.java
License:Apache License
public void onEndPage(PdfWriter writer, Document document) { try {//from ww w.ja v a2 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.inbio.modeling.core.manager.impl.ExportManagerImpl.java
License:Open Source License
private void addImageSection(Document d, String mapName, Long currentSessionId) throws BadElementException, MalformedURLException, IOException, DocumentException { Image mapImage = Image.getInstance(mapsHome + mapName + "_T_" + currentSessionId + ".png"); mapImage.scaleToFit(550, 413);//from w w w. jav a 2 s . com mapImage.setAlignment(Image.ALIGN_LEFT); // scale Image scaleImage = Image.getInstance(mapsHome + "scale.jpg"); scaleImage.scaleToFit(30, 150); scaleImage.setAlignment(Image.ALIGN_RIGHT); Paragraph images = new Paragraph(); images.setAlignment(Paragraph.ALIGN_RIGHT); //upper scale leyend images.add(new Chunk(this.getI18nString("pdfReport.scaleUpper") + "\n\n\n\n\n\n\n", new Font(Font.COURIER, 8, Font.BOLDITALIC))); // Map images.add(new Chunk(mapImage, 1F, 1F)); // Scale images.add(new Chunk(scaleImage, 1F, 1F)); // lower scale leyend images.add(new Chunk("\n" + this.getI18nString("pdfReport.scaleLower") + "\n", new Font(Font.COURIER, 8, Font.BOLDITALIC))); d.add(images); }
From source file:org.nuxeo.dam.pdf.export.PDFCreator.java
License:Open Source License
public boolean createPDF(String title, OutputStream out) throws ClientException { try {//from w w w. j a v a 2 s. c om Document document = new Document(); PdfWriter.getInstance(document, out); document.addTitle(title); document.addAuthor(Functions.principalFullName(currentUser)); document.addCreator(Functions.principalFullName(currentUser)); document.open(); document.add(new Paragraph("\n\n\n\n\n\n\n\n\n\n")); Font titleFont = new Font(Font.HELVETICA, 36, Font.BOLD); Paragraph titleParagraph = new Paragraph(title, titleFont); titleParagraph.setAlignment(Element.ALIGN_CENTER); document.add(titleParagraph); Font authorFont = new Font(Font.HELVETICA, 20); Paragraph authorParagraph = new Paragraph("By " + Functions.principalFullName(currentUser), authorFont); authorParagraph.setAlignment(Element.ALIGN_CENTER); document.add(authorParagraph); document.newPage(); boolean foundOnePicture = false; for (DocumentModel doc : docs) { if (!doc.hasSchema(PICTURE_SCHEMA)) { continue; } foundOnePicture = true; PictureResourceAdapter picture = doc.getAdapter(PictureResourceAdapter.class); Blob blob = picture.getPictureFromTitle(ORIGINAL_JPEG_VIEW); Rectangle pageSize = document.getPageSize(); if (blob != null) { Paragraph imageTitle = new Paragraph(doc.getTitle(), font); imageTitle.setAlignment(Paragraph.ALIGN_CENTER); document.add(imageTitle); Image image = Image.getInstance(blob.getByteArray()); image.scaleToFit(pageSize.getWidth() - 20, pageSize.getHeight() - 100); image.setAlignment(Image.MIDDLE); Paragraph imageParagraph = new Paragraph(); imageParagraph.add(image); imageParagraph.setAlignment(Paragraph.ALIGN_MIDDLE); document.add(imageParagraph); document.newPage(); } } if (foundOnePicture) { document.close(); return true; } } catch (Exception e) { throw ClientException.wrap(e); } return false; }
From source file:org.posterita.core.CrossTabReportGenerator.java
License:Open Source License
protected void writeDocument(Document document) throws OperationException { try {// w w w.j a va2 s. co m int noOfRows = dataSource.size(); String longestText = ""; int columnCount = 0; Object[] obj = null; Object[] header = (Object[]) dataSource.get(0); columnCount = header.length; PdfPTable table = new PdfPTable(columnCount); table.setWidthPercentage(100); table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER); table.getDefaultCell().setVerticalAlignment(Element.ALIGN_MIDDLE); table.getDefaultCell().setPaddingBottom(5); table.getDefaultCell().setPaddingTop(5); //adding the headers for (int i = 0; i < columnCount; i++) { if (i == 0) { longestText = header[i].toString(); table.addCell(new Paragraph(header[i].toString())); } else { Image img = getTextAsImage(header[i].toString()); img.setRotationDegrees(90); img.setAlignment(Image.ALIGN_BOTTOM); PdfPCell cell = new PdfPCell(img); cell.setPadding(4); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_BOTTOM); //cell.setBackgroundColor(new Color(0, 0, 255)); table.addCell(cell); } } //adding the data for (int j = 1; j < noOfRows; j++) { obj = (Object[]) dataSource.get(j); for (int k = 0; k < columnCount; k++) { if (k == 0) { String text = obj[0].toString(); if (new Chunk(text, HEADER_FONT).getWidthPoint() > new Chunk(longestText, HEADER_FONT) .getWidthPoint()) { longestText = text; } Chunk txtck = new Chunk(obj[0].toString(), HEADER_FONT); PdfPCell cell = new PdfPCell(new Paragraph(txtck)); if (j == noOfRows - 1) { cell.setBackgroundColor(new Color(170, 170, 170)); } cell.setHorizontalAlignment(Element.ALIGN_LEFT); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); cell.setPaddingBottom(5); cell.setPaddingTop(5); cell.setPaddingLeft(5); table.addCell(cell); } else { Chunk txtck = new Chunk(obj[k].toString(), DATA_FONT); if (k == columnCount - 1) { PdfPCell cell = new PdfPCell(new Paragraph(txtck)); cell.setBackgroundColor(new Color(170, 170, 170)); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); cell.setPaddingBottom(5); cell.setPaddingTop(5); table.addCell(cell); } else { PdfPCell cell = new PdfPCell(new Paragraph(txtck)); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); cell.setPaddingBottom(5); cell.setPaddingTop(5); if (j == noOfRows - 1) { cell.setBackgroundColor(new Color(170, 170, 170)); } table.addCell(cell); } } } } //setting table width Chunk dataChk = new Chunk("9999", DATA_FONT); Chunk headerChk = new Chunk(longestText, HEADER_FONT); float dataChkLength = dataChk.getWidthPoint() + 2 * CELLPADDING; float headerChkLength = headerChk.getWidthPoint() + 2 * CELLPADDING; float tableWidth = headerChkLength + dataChkLength * columnCount; float actualTableWidth = document.getPageSize().getWidth() - 2 * MARGIN; float columnWidth = dataChkLength; if (tableWidth < actualTableWidth) { columnWidth = (actualTableWidth - headerChkLength) / (columnCount - 1); } float[] widths = new float[columnCount]; widths[0] = headerChkLength + 2 * CELLPADDING; for (int i = 1; i < columnCount; i++) { widths[i] = columnWidth; } table.setWidths(widths); //writing the table document.add(table); } catch (DocumentException e) { throw new OperationException(e); } }
From source file:org.posterita.core.PDFReportGenerator.java
License:Open Source License
protected Image getTextAsImage(String text) throws OperationException { try {//from w ww . j a v a2s . c o m PdfTemplate template = writer.getDirectContent().createTemplate(20, 20); //BaseFont bf = BaseFont.createFont("Helvetica", "winansi", false); BaseFont bf = HEADER_FONT.getBaseFont(); float size = 10; float width = bf.getWidthPoint(text, size); template.beginText(); //template.setRGBColorFillF(1, 1, 1); template.setFontAndSize(bf, size); template.setTextMatrix(0, 2); template.showText(text); template.endText(); template.setWidth(width); template.setHeight(size + 2); // make an Image object from the template Image img = Image.getInstance(template); img.setAlignment(Image.RIGHT | Image.TEXTWRAP); return img; } catch (Exception e) { throw new OperationException(e); } }
From source file:org.sakaiproject.tool.assessment.pdf.itext.HTMLWorker.java
License:Mozilla Public License
public void startElement(String tag, HashMap h) { if (!tagsSupported.containsKey(tag)) return;//www . j av a 2s . co m try { style.applyStyle(tag, h); String follow = (String) FactoryProperties.followTags.get(tag); if (follow != null) { HashMap prop = new HashMap(); prop.put(follow, null); cprops.addToChain(follow, prop); return; } FactoryProperties.insertStyle(h); if (tag.equals("a")) { cprops.addToChain(tag, h); if (currentParagraph == null) currentParagraph = new Paragraph(); stack.push(currentParagraph); currentParagraph = new Paragraph(); return; } if (tag.equals("br")) { if (currentParagraph == null) currentParagraph = new Paragraph(); currentParagraph.add(factoryProperties.createChunk("\n", cprops)); return; } if (tag.equals("hr")) { PdfPTable hr = new PdfPTable(1); hr.setHorizontalAlignment(Element.ALIGN_CENTER); hr.setWidthPercentage(100f); hr.setSpacingAfter(0f); hr.setSpacingBefore(0f); PdfPCell cell = new PdfPCell(); cell.setUseVariableBorders(true); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setBorder(PdfPCell.BOTTOM); cell.setBorderWidth(1f); cell.setPadding(0); cell.addElement(factoryProperties.createChunk("\n", cprops)); hr.addCell(cell); // paragraphs can't have tables? really? without it hr's may be rendered a bit early.. //if (currentParagraph != null) // currentParagraph.add(hr); //else document.add(hr); return; } if (tag.equals("font") || tag.equals("span")) { cprops.addToChain(tag, h); return; } if (tag.equals("img")) { String src = (String) h.get("src"); if (src == null) return; cprops.addToChain(tag, h); Image img = null; if (interfaceProps != null) { HashMap images = (HashMap) interfaceProps.get("img_static"); if (images != null) { Image tim = (Image) images.get(src); if (tim != null) img = Image.getInstance(tim); } else { if (!src.startsWith("http")) { // relative src references only String baseurl = (String) interfaceProps.get("img_baseurl"); if (baseurl != null) { src = baseurl + src; img = Image.getInstance(src); } } } } if (img == null) { if (!src.startsWith("http")) { String path = cprops.getProperty("image_path"); if (path == null) path = ""; src = new File(path, src).getPath(); img = Image.getInstance(src); } else { byte[] buffer; String srcResource = src.substring(src.indexOf("/content", 0)).replaceAll("/content", ""); buffer = getImageStream(URLDecoder.decode(srcResource)); img = Image.getInstance(buffer); } } String align = (String) h.get("align"); String width = (String) h.get("width"); String height = (String) h.get("height"); String border = (String) h.get("border"); String hspace = (String) h.get("hspace"); String vspace = (String) h.get("vspace"); String before = cprops.getProperty("before"); String after = cprops.getProperty("after"); float wp = 0.0f; float lp = 0.0f; if (maxWidth > 0 && ((width != null && Integer.parseInt(width) > maxWidth) || (width == null && (int) img.getWidth() > maxWidth))) { wp = lengthParse(String.valueOf(maxWidth), (int) img.getWidth()); lp = wp; } else { wp = lengthParse(width, (int) img.getWidth()); lp = lengthParse(height, (int) img.getHeight()); } if (wp > 0 && lp > 0) img.scalePercent(wp, lp); else if (wp > 0) img.scalePercent(wp); else if (lp > 0) img.scalePercent(lp); img.setWidthPercentage(0); // border if (border != null && !"".equals(border)) { try { img.setBorderWidth(Integer.parseInt(border)); img.setBorder(Image.BOX); } catch (Exception e) { e.printStackTrace(); } } // horizonatal space if (hspace != null && !"".equals(hspace)) { try { img.setSpacingAfter(Float.parseFloat(hspace)); img.setSpacingBefore(Float.parseFloat(hspace)); } catch (Exception e) { e.printStackTrace(); } } // horizontal alignment if (align != null && (align.equalsIgnoreCase("left") || align.equalsIgnoreCase("right"))) { endElement("p"); int ralign = Image.LEFT; if (align.equalsIgnoreCase("right")) ralign = Image.RIGHT; img.setAlignment(ralign | Image.TEXTWRAP); Img i = null; boolean skip = false; if (interfaceProps != null) { i = (Img) interfaceProps.get("img_interface"); if (i != null) skip = i.process(img, h, cprops, document); } if (!skip) document.add(img); cprops.removeChain(tag); } // vertical alignment (or none) else { img.setAlignment(Image.TEXTWRAP); float bottom = 0.0f; float top = img.getTop(); float prevHeight = 0.0f; float prevRise = 0.0f; if (currentParagraph != null) { ArrayList chunks = currentParagraph.getChunks(); Chunk sibling = null; for (int k = chunks.size() - 1; k >= 0; k--) { if (chunks.get(k) != null) sibling = (Chunk) chunks.get(k); } if (sibling != null) { if (sibling.hasAttributes()) prevRise = sibling.getTextRise(); prevHeight = 0.0f; if (sibling.getFont() != null) { prevHeight = sibling.getFont().getCalculatedSize(); } } } if ("absMiddle".equalsIgnoreCase(align)) { if (prevHeight > 0) bottom += (img.getScaledHeight() / 2.0f) - (prevHeight / 2.0f); else if (img.getScaledHeight() > 0) bottom += img.getScaledHeight() / 2.0f; } else if ("middle".equalsIgnoreCase(align)) { if (img.getScaledHeight() > 0) bottom += (img.getScaledHeight() / 2.0f); } else if ("bottom".equalsIgnoreCase(align) || "baseline".equalsIgnoreCase(align) || "absbottom".equalsIgnoreCase(align)) { //baseline and absbottom should have some slight tweeking from bottom, but not sure what?? } else if ("top".equalsIgnoreCase(align)) { bottom += img.getScaledHeight() - prevHeight; } else if ("texttop".equalsIgnoreCase(align)) { bottom += img.getScaledHeight() - (prevHeight - prevRise); } cprops.removeChain(tag); if (currentParagraph == null) { currentParagraph = FactoryProperties.createParagraph(cprops); bottom = 0f; } else if (currentParagraph.isEmpty()) { bottom = 0f; } currentParagraph.setLeading(2f + bottom, 1.00f); currentParagraph.add(new Chunk(img, 0, 0 - bottom)); } return; } if (tag.equals("blockquote")) { cprops.addToChain(tag, h); inBLOCK = true; if (currentParagraph != null) endElement("p"); currentParagraph = FactoryProperties.createParagraph(cprops); currentParagraph.add(factoryProperties.createChunk("\n", cprops)); return; } endElement("p"); if (tag.equals("h1") || tag.equals("h2") || tag.equals("h3") || tag.equals("h4") || tag.equals("h5") || tag.equals("h6")) { if (!h.containsKey("size")) { int v = 8 - Integer.parseInt(tag.substring(1)); h.put("size", Integer.toString(v)); } cprops.addToChain(tag, h); return; } if (tag.equals("ul")) { if (pendingLI) endElement("li"); skipText = true; cprops.addToChain(tag, h); com.lowagie.text.List list = new com.lowagie.text.List(false, 10); list.setListSymbol("\u2022"); stack.push(list); return; } if (tag.equals("ol")) { if (pendingLI) endElement("li"); skipText = true; cprops.addToChain(tag, h); com.lowagie.text.List list = new com.lowagie.text.List(true, 10); stack.push(list); return; } if (tag.equals("li")) { if (pendingLI) endElement("li"); skipText = false; pendingLI = true; cprops.addToChain(tag, h); stack.push(FactoryProperties.createListItem(cprops)); return; } if (tag.equals("div") || tag.equals("body")) { cprops.addToChain(tag, h); return; } if (tag.equals("pre")) { if (!h.containsKey("face")) { h.put("face", "Courier"); } cprops.addToChain(tag, h); isPRE = true; return; } if (tag.equals("p")) { cprops.addToChain(tag, h); currentParagraph = FactoryProperties.createParagraph(cprops); if (inBLOCK) { currentParagraph.setIndentationLeft(currentParagraph.getIndentationLeft() + 40.0F); } return; } if (tag.equals("tr")) { if (pendingTR) endElement("tr"); skipText = true; pendingTR = true; cprops.addToChain("tr", h); return; } if (tag.equals("td") || tag.equals("th")) { if (pendingTD) endElement(tag); skipText = false; pendingTD = true; cprops.addToChain("td", h); stack.push(new IncCell(tag, cprops)); return; } if (tag.equals("table")) { cprops.addToChain("table", h); IncTable table = new IncTable(h); stack.push(table); tableState.push(new boolean[] { pendingTR, pendingTD }); pendingTR = pendingTD = false; skipText = true; return; } } catch (Exception e) { e.printStackTrace(); //throw new ExceptionConverter(e); } }
From source file:org.sonar.report.pdf.builder.ComplexityDistributionBuilder.java
License:Open Source License
public Image getGraphic(final ComplexityDistribution complexityDistribution) { Image image = null; try {// w w w . j av a 2s.co m if (complexityDistribution.getyValues().length != 0) { image = Image.getInstance(sonarBaseUrl + "/chart?cht=cvb&chdi=300x200&chca=" + complexityDistribution.formatXValues() + "&chov=y&chrav=y&chv=" + complexityDistribution.formatYValues() + "&chorgv=y&chcaaml=0.05&chseamu=0.2&chins=5&chcaamu=0.05&chcav=y&chc=777777,777777,777777,777777,777777,777777,777777"); image.setAlignment(Image.ALIGN_MIDDLE); } } catch (BadElementException e) { LOG.error("Can not generate complexity distribution image", e); } catch (MalformedURLException e) { LOG.error("Can not generate complexity distribution image", e); } catch (IOException e) { LOG.error("Can not generate complexity distribution image", e); } return image; }
From source file:org.sonar.report.pdf.builder.RadarGraphicBuilder.java
License:Open Source License
public Image getGraphic(final RadarGraphic radarGraphic) { Image image = null; try {/*from w ww . j ava 2s . c o m*/ String requestUrl = sonarBaseUrl + "/chart?ck=xradar&w=210&h=110&c=777777|F8A036&m=100&g=0.25&" + "l=Eff.(" + radarGraphic.getEfficiency() + "%25),Mai.(" + radarGraphic.getMaintainability() + "%25),Por.(" + radarGraphic.getPortability() + "%25),Rel.(" + radarGraphic.getReliavility() + "%25),Usa.(" + radarGraphic.getUsability() + "%25)&" + "v=" + radarGraphic.getEfficiency() + "," + radarGraphic.getMaintainability() + "," + radarGraphic.getPortability() + "," + radarGraphic.getReliavility() + "," + radarGraphic.getUsability(); LOG.debug("Getting radar graphic: " + requestUrl); image = Image.getInstance(requestUrl); image.setAlignment(Image.ALIGN_MIDDLE); } catch (BadElementException e) { LOG.error("Can not generate radar graphic", e); } catch (MalformedURLException e) { LOG.error("Can not generate radar graphic", e); } catch (IOException e) { LOG.error("Can not generate radar graphic", e); } return image; }
From source file:org.sonar.report.pdf.entity.ComplexityDistribution.java
License:Open Source License
public Image getGraphic() { Image image = null; try {// www . j av a2 s.com if (yValues.length != 0) { image = Image.getInstance(sonarBaseUrl + "/chart?cht=cvb&chdi=300x200&chca=" + formatXValues() + "&chov=y&chrav=y&chv=" + formatYValues() + "&chorgv=y&chcaaml=0.05&chseamu=0.2&chins=5&chcaamu=0.05&chcav=y&chc=777777,777777,777777,777777,777777,777777,777777"); image.setAlignment(Image.ALIGN_MIDDLE); } } catch (BadElementException e) { e.printStackTrace(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return image; }
From source file:org.sonar.report.pdf.entity.RadarGraphic.java
License:Open Source License
public Image getGraphic() { Image image = null; try {// w w w.j ava2s . c o m String requestUrl = sonarUrl + "/chart?ck=xradar&w=210&h=110&c=777777|F8A036&m=100&g=0.25&" + "l=Eff.(" + efficiency + "%25),Mai.(" + maintainability + "%25),Por.(" + portability + "%25),Rel.(" + reliavility + "%25),Usa.(" + usability + "%25)&" + "v=" + efficiency + "," + maintainability + "," + portability + "," + reliavility + "," + usability; Logger.debug("Getting radar graphic: " + requestUrl); image = Image.getInstance(requestUrl); image.setAlignment(Image.ALIGN_MIDDLE); } catch (BadElementException e) { e.printStackTrace(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return image; }