Search in sources :

Example 6 with Image

use of com.lowagie.text.Image in project activityinfo by bedatadriven.

the class ItextImageRenderer method render.

@Override
public void render(DocWriter writer, Document doc, ImageReportElement element) throws DocumentException {
    if (element.getUrl() != null) {
        Image image = null;
        try {
            image = Image.getInstance(element.getUrl());
            doc.add(image);
        } catch (MalformedURLException e) {
            LOGGER.log(Level.WARNING, "Error rendering image", e);
        } catch (IOException e) {
            LOGGER.log(Level.WARNING, "Error rendering image", e);
        }
    }
}
Also used : MalformedURLException(java.net.MalformedURLException) IOException(java.io.IOException) Image(com.lowagie.text.Image)

Example 7 with Image

use of com.lowagie.text.Image in project janrufmonitor by tbrandt77.

the class PDFCallerListFilter method doExport.

public boolean doExport() {
    Document document = new Document(PageSize.A4.rotate());
    document.addCreationDate();
    document.addCreator("jAnrufmonitor");
    try {
        PdfWriter.getInstance(document, new FileOutputStream(this.m_filename));
        document.open();
        // get renderers
        List renderer = new ArrayList();
        String renderer_config = this.getRuntime().getConfigManagerFactory().getConfigManager().getProperty("ui.jface.application.editor.Editor", "renderer");
        if (renderer_config != null && renderer_config.length() > 0) {
            StringTokenizer s = new StringTokenizer(renderer_config, ",");
            while (s.hasMoreTokens()) {
                renderer.add(RendererRegistry.getInstance().getRenderer(s.nextToken()));
            }
        }
        // get column width
        float totalWidth = 0;
        String[] cWidth = new String[renderer.size()];
        for (int i = 0, j = renderer.size(); i < j; i++) {
            cWidth[i] = getRuntime().getConfigManagerFactory().getConfigManager().getProperty("ui.jface.application.editor.Editor", "col_size_" + ((ITableCellRenderer) renderer.get(i)).getID());
            if (cWidth[i] != null && cWidth[i].length() > 0) {
                totalWidth += Float.parseFloat(cWidth[i]);
            }
            if (cWidth[i] != null && cWidth[i].length() == 0) {
                cWidth[i] = "0";
            }
        }
        float[] widths = new float[renderer.size()];
        for (int i = 0, j = renderer.size(); i < j; i++) {
            widths[i] = Float.parseFloat(cWidth[i]) / totalWidth;
        }
        PdfPTable table = new PdfPTable(widths);
        table.setHeaderRows(1);
        table.setWidthPercentage(100f);
        ITableCellRenderer t = null;
        PdfPCell cell = null;
        for (int i = 0, j = renderer.size(); i < j; i++) {
            t = (ITableCellRenderer) renderer.get(i);
            if (t == null) {
                this.m_logger.severe("No renderer found for ID: " + (String) renderer.get(i));
                this.m_logger.severe("Export to PDF format canceled...");
                return false;
            }
            cell = new PdfPCell(new Paragraph(t.getHeader()));
            cell.setBackgroundColor(new Color(0xC0, 0xC0, 0xC0));
            table.addCell(cell);
        }
        ICaller c = null;
        String cellContent = null;
        Color iterateColor1 = new Color(0xDD, 0xDD, 0xDD);
        Color iterateColor2 = new Color(0xFF, 0xFF, 0xFF);
        cell = null;
        int type_col = -1, num_col = -1;
        for (int i = 0, j = this.m_callerList.size(); i < j; i++) {
            c = this.m_callerList.get(i);
            for (int k = 0, m = renderer.size(); k < m; k++) {
                t = (ITableCellRenderer) renderer.get(k);
                t.updateData(c);
                // find number and typ column for multiline callers
                if (t.getID().equalsIgnoreCase("NumberType"))
                    type_col = k;
                if (t.getID().equalsIgnoreCase("Number"))
                    num_col = k;
                cellContent = t.renderAsText();
                if (cellContent != null && cellContent.length() > 0) {
                    cell = new PdfPCell(new Phrase(cellContent));
                    cell.setBackgroundColor((i % 2 == 0 ? iterateColor1 : iterateColor2));
                    table.addCell(cell);
                } else {
                    cellContent = t.renderAsImageID();
                    if (cellContent != null && cellContent.length() > 0) {
                        if (cellContent.startsWith("db://")) {
                            InputStream in = ImageHandler.getInstance().getImageStream(c);
                            if (in != null) {
                                ByteArrayOutputStream out = new ByteArrayOutputStream();
                                Stream.copy(in, out, true);
                                in.close();
                                out.close();
                                Image pdfImage = Image.getInstance(out.toByteArray());
                                // pdfImage.scaleAbsolute(90.0f, 45.0f);
                                table.addCell(pdfImage);
                            } else {
                                table.addCell(" ");
                            }
                        } else if (new File(cellContent).exists()) {
                            Image pdfImage = Image.getInstance(cellContent);
                            table.addCell(pdfImage);
                        } else {
                            Image pdfImage = Image.getInstance(SWTImageManager.getInstance(PIMRuntime.getInstance()).getImagePath(cellContent));
                            table.addCell(pdfImage);
                        }
                    // ((Image pdfImage = Image.getInstance(cellContent);
                    // cell = new PdfPCell(pdfImage);
                    // cell.setBackgroundColor((i%2==0 ? iterateColor1 : iterateColor2));
                    // table.addCell(pdfImage);
                    } else {
                        cell = new PdfPCell(new Phrase(" "));
                        cell.setBackgroundColor((i % 2 == 0 ? iterateColor1 : iterateColor2));
                        table.addCell(cell);
                    }
                }
                // last column reached check for multiline caller
                if (k == m - 1 && (type_col > -1 || num_col > -1) && (c instanceof IMultiPhoneCaller) && (((IMultiPhoneCaller) c).getPhonenumbers().size() > 1)) {
                    List phones = ((IMultiPhoneCaller) c).getPhonenumbers();
                    IPhonenumber pn = null;
                    for (int y = 1, z = phones.size(); y < z; y++) {
                        pn = (IPhonenumber) phones.get(y);
                        for (int w = 0, x = renderer.size(); w < x; w++) {
                            t = (ITableCellRenderer) renderer.get(w);
                            if (t.getID().equalsIgnoreCase("NumberType") || t.getID().equalsIgnoreCase("Number")) {
                                if (t.getID().equalsIgnoreCase("NumberType")) {
                                    final IPhonenumber lpn = pn;
                                    final IAttributeMap lam = c.getAttributes();
                                    t.updateData(new ITreeItemCallerData() {

                                        public IAttributeMap getAttributes() {
                                            return lam;
                                        }

                                        public IPhonenumber getPhone() {
                                            return lpn;
                                        }
                                    });
                                } else
                                    t.updateData(pn);
                                cellContent = t.renderAsText();
                                if (cellContent != null && cellContent.length() > 0) {
                                    cell = new PdfPCell(new Phrase(cellContent));
                                    cell.setBackgroundColor((i % 2 == 0 ? iterateColor1 : iterateColor2));
                                    table.addCell(cell);
                                } else {
                                    cell = new PdfPCell(new Phrase(" "));
                                    cell.setBackgroundColor((i % 2 == 0 ? iterateColor1 : iterateColor2));
                                    table.addCell(cell);
                                }
                            } else {
                                cell = new PdfPCell(new Phrase(" "));
                                cell.setBackgroundColor((i % 2 == 0 ? iterateColor1 : iterateColor2));
                                table.addCell(cell);
                            }
                        }
                    }
                }
            }
        }
        document.add(table);
    } catch (DocumentException de) {
        this.m_logger.severe(de.getMessage());
        return false;
    } catch (IOException ioe) {
        this.m_logger.severe(ioe.getMessage());
        return false;
    } finally {
        document.close();
    }
    return true;
}
Also used : ArrayList(java.util.ArrayList) Document(com.lowagie.text.Document) Image(com.lowagie.text.Image) PdfPTable(com.lowagie.text.pdf.PdfPTable) DocumentException(com.lowagie.text.DocumentException) IAttributeMap(de.janrufmonitor.framework.IAttributeMap) ArrayList(java.util.ArrayList) ICallerList(de.janrufmonitor.framework.ICallerList) List(java.util.List) IMultiPhoneCaller(de.janrufmonitor.framework.IMultiPhoneCaller) ITableCellRenderer(de.janrufmonitor.ui.jface.application.rendering.ITableCellRenderer) PdfPCell(com.lowagie.text.pdf.PdfPCell) InputStream(java.io.InputStream) Color(java.awt.Color) Phrase(com.lowagie.text.Phrase) ByteArrayOutputStream(java.io.ByteArrayOutputStream) IOException(java.io.IOException) Paragraph(com.lowagie.text.Paragraph) ICaller(de.janrufmonitor.framework.ICaller) StringTokenizer(java.util.StringTokenizer) FileOutputStream(java.io.FileOutputStream) File(java.io.File) ITreeItemCallerData(de.janrufmonitor.ui.jface.application.ITreeItemCallerData) IPhonenumber(de.janrufmonitor.framework.IPhonenumber)

Example 8 with Image

use of com.lowagie.text.Image in project mdw-designer by CenturyLinkCloud.

the class ExportHelper method printImagePdf.

public void printImagePdf(String filename, DesignerCanvas canvas, Dimension graphsize) {
    try {
        DefaultFontMapper mapper = new DefaultFontMapper();
        FontFactory.registerDirectories();
        mapper.insertDirectory("c:\\winnt\\fonts");
        // we create a template and a Graphics2D object that corresponds
        // with it
        // 1 inch
        int margin = 72;
        float scale = 0.5f;
        Rectangle pageSize;
        pageSize = PageSize.LETTER.rotate();
        Document document = new Document(pageSize);
        DocWriter writer = PdfWriter.getInstance(document, new FileOutputStream(filename));
        document.open();
        document.setPageSize(pageSize);
        int imageW = (int) pageSize.getWidth() - margin;
        int imageH = (int) pageSize.getHeight() - margin;
        boolean edsave = canvas.editable;
        canvas.editable = false;
        Color bgsave = canvas.getBackground();
        canvas.setBackground(Color.white);
        int horizontalPages = (int) (graphsize.width * scale) / imageW + 1;
        int verticalPages = (int) (graphsize.height * scale) / imageH + 1;
        for (int i = 0; i < horizontalPages; i++) {
            for (int j = 0; j < verticalPages; j++) {
                Image img;
                PdfContentByte cb = ((PdfWriter) writer).getDirectContent();
                PdfTemplate tp = cb.createTemplate(imageW, imageH);
                Graphics2D g2 = tp.createGraphics(imageW, imageH, mapper);
                tp.setWidth(imageW);
                tp.setHeight(imageH);
                g2.scale(scale, scale);
                g2.translate(-i * imageW / scale, -j * imageH / scale);
                canvas.paintComponent(g2);
                g2.dispose();
                img = new ImgTemplate(tp);
                document.add(img);
            }
        }
        canvas.setBackground(bgsave);
        canvas.editable = edsave;
        document.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}
Also used : PdfWriter(com.lowagie.text.pdf.PdfWriter) ImgTemplate(com.lowagie.text.ImgTemplate) Color(java.awt.Color) Rectangle(com.lowagie.text.Rectangle) DefaultFontMapper(com.lowagie.text.pdf.DefaultFontMapper) HTMLDocument(javax.swing.text.html.HTMLDocument) Document(com.lowagie.text.Document) BufferedImage(java.awt.image.BufferedImage) Image(com.lowagie.text.Image) DocWriter(com.lowagie.text.DocWriter) PdfTemplate(com.lowagie.text.pdf.PdfTemplate) BadLocationException(javax.swing.text.BadLocationException) BadElementException(com.lowagie.text.BadElementException) IOException(java.io.IOException) Graphics2D(java.awt.Graphics2D) FileOutputStream(java.io.FileOutputStream) PdfContentByte(com.lowagie.text.pdf.PdfContentByte)

Example 9 with Image

use of com.lowagie.text.Image in project drools by kiegroup.

the class EndPage method onEndPage.

public void onEndPage(PdfWriter writer, Document document) {
    try {
        // TODO this image never existed
        Image image = Image.getInstance(DroolsDocsBuilder.class.getResource("guvnor-webapp.png"));
        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);
    }
}
Also used : ExceptionConverter(com.lowagie.text.ExceptionConverter) PdfPCell(com.lowagie.text.pdf.PdfPCell) PdfPTable(com.lowagie.text.pdf.PdfPTable) Rectangle(com.lowagie.text.Rectangle) Phrase(com.lowagie.text.Phrase) Image(com.lowagie.text.Image) BadElementException(com.lowagie.text.BadElementException) DocumentException(com.lowagie.text.DocumentException)

Aggregations

Image (com.lowagie.text.Image)9 Color (java.awt.Color)5 IOException (java.io.IOException)5 DocumentException (com.lowagie.text.DocumentException)4 BadElementException (com.lowagie.text.BadElementException)3 Document (com.lowagie.text.Document)3 Phrase (com.lowagie.text.Phrase)3 PdfContentByte (com.lowagie.text.pdf.PdfContentByte)3 PdfPCell (com.lowagie.text.pdf.PdfPCell)3 PdfPTable (com.lowagie.text.pdf.PdfPTable)3 FileOutputStream (java.io.FileOutputStream)3 ImgTemplate (com.lowagie.text.ImgTemplate)2 Paragraph (com.lowagie.text.Paragraph)2 Rectangle (com.lowagie.text.Rectangle)2 DefaultFontMapper (com.lowagie.text.pdf.DefaultFontMapper)2 PdfTemplate (com.lowagie.text.pdf.PdfTemplate)2 PdfWriter (com.lowagie.text.pdf.PdfWriter)2 ITableCellRenderer (de.janrufmonitor.ui.jface.application.rendering.ITableCellRenderer)2 Graphics2D (java.awt.Graphics2D)2 BufferedImage (java.awt.image.BufferedImage)2