Example usage for com.lowagie.text.pdf BaseFont createFont

List of usage examples for com.lowagie.text.pdf BaseFont createFont

Introduction

In this page you can find the example usage for com.lowagie.text.pdf BaseFont createFont.

Prototype

public static BaseFont createFont(String name, String encoding, boolean embedded)
        throws DocumentException, IOException 

Source Link

Document

Creates a new font.

Usage

From source file:cn.js.nt.yao.sudokupdf.PDFFontMapper.java

License:Apache License

@Override
public BaseFont awtToPdf(Font font) {
    try {//from   www . ja  va2  s  .com
        return BaseFont.createFont("/URWGothicL-Demi.afm", BaseFont.WINANSI, BaseFont.EMBEDDED);
    } catch (DocumentException ex) {
        Logger.getLogger(PDFFontMapper.class.getName()).log(Level.SEVERE, null, ex);
        throw new RuntimeException(ex);
    } catch (IOException ex) {
        Logger.getLogger(PDFFontMapper.class.getName()).log(Level.SEVERE, null, ex);
        throw new RuntimeException(ex);
    }
}

From source file:com.actelion.research.spiritapp.print.CagePrinterPDF.java

License:Open Source License

public static void printCages(List<Container> cages, boolean printGroupsTreatments, boolean printTreatmentDesc,
        boolean whiteBackground) throws Exception {
    final int margin = 15;
    File f = File.createTempFile("cages__", ".pdf");
    Document doc = new Document(PageSize.A4.rotate());
    Image maleImg, femaleImg, nosexImg;
    try {/* w  w w  .  ja  v a 2s  . c  o  m*/
        maleImg = Image.getInstance(CagePrinterPDF.class.getResource("male.png"));
        femaleImg = Image.getInstance(CagePrinterPDF.class.getResource("female.png"));
        nosexImg = Image.getInstance(CagePrinterPDF.class.getResource("nosex.png"));
    } catch (Exception e) {
        throw new Exception("Could not find images in the classpath: " + e);
    }

    FileOutputStream os = new FileOutputStream(f);
    PdfWriter writer = PdfWriter.getInstance(doc, os);
    doc.open();

    PdfContentByte canvas = writer.getDirectContentUnder();

    float tileW = (doc.getPageSize().getWidth()) / 4;
    float tileH = (doc.getPageSize().getHeight()) / 2;
    for (int i = 0; i < cages.size(); i++) {
        Container cage = cages.get(i);

        Study study = cage.getStudy();
        Set<Group> groups = cage.getGroups();
        Group group = cage.getGroup();
        Set<Biosample> animals = new TreeSet<>(Biosample.COMPARATOR_NAME);
        animals.addAll(cage.getBiosamples());

        //Find the treatments applied to this group
        Set<NamedTreatment> allTreatments = new LinkedHashSet<>();
        for (Group gr : groups) {
            allTreatments.addAll(gr.getAllTreatments(-1));
        }

        //Draw
        if (i % 8 == 0) {
            if (i > 0)
                doc.newPage();
            drawCageSeparation(doc, canvas);
        }

        int col = (i % 8) % 4;
        int row = (i % 8) / 4;

        float x = margin + tileW * col;
        float x2 = x + tileW - margin;
        float baseY = tileH * row;
        float y;

        //Display Sex
        canvas.moveTo(tileW * col - 50, doc.getPageSize().getHeight() - (tileH * row + 50));
        Image img = null;
        String sex = getMetadata(animals, "Sex");
        if (study.isBlindAll()) {
            img = nosexImg;
        } else if (sex.equals("M")) {
            img = maleImg;
        } else if (sex.equals("F")) {
            img = femaleImg;
        } else if (sex.length() > 0) {
            img = nosexImg;
        }
        if (img != null) {
            img.scaleToFit(20, 20);
            img.setAbsolutePosition(tileW * (col + 1) - 33,
                    doc.getPageSize().getHeight() - (tileH * row + 12 + margin));
            doc.add(img);
        }
        if (group != null && group.getColor() != null && (study != null && !study.isBlind())
                && !whiteBackground) {
            Color c = group.getColor();
            canvas.saveState();
            canvas.setRGBColorFill(c.getRed() / 3 + 170, c.getGreen() / 3 + 170, c.getBlue() / 3 + 170);
            canvas.rectangle(x - margin + 1, doc.getPageSize().getHeight() - baseY - tileH + 1, tileW - 2,
                    tileH - 2);
            canvas.fill();
            canvas.restoreState();
        }
        Color treatmentColor = Color.BLACK;
        if (allTreatments.size() > 0 && !study.isBlind() && printGroupsTreatments) {
            int offset = 0;
            for (NamedTreatment t : allTreatments) {
                if (t.getColor() != null) {
                    if (allTreatments.size() == 1)
                        treatmentColor = new Color(t.getColor().getRed() / 2, t.getColor().getGreen() / 2,
                                t.getColor().getBlue() / 2);
                    canvas.saveState();
                    canvas.setColorStroke(Color.BLACK);
                    canvas.setRGBColorFill(t.getColor().getRed(), t.getColor().getGreen(),
                            t.getColor().getBlue());
                    y = baseY + 42 + 15 + 86 + 13 + 22 + 14 + 23 + 28;
                    canvas.rectangle(x + 20 + offset * 5, doc.getPageSize().getHeight() - y - (offset % 2) * 4,
                            22, 22);
                    canvas.fillStroke();
                    canvas.restoreState();
                    offset++;
                }
            }
        }

        canvas.beginText();
        canvas.setFontAndSize(BaseFont.createFont(BaseFont.HELVETICA_BOLD, "Cp1252", false), 16f);
        canvas.showTextAligned(Element.ALIGN_LEFT, cage.getContainerId(), x,
                doc.getPageSize().getHeight() - (baseY + 23), 0);

        canvas.setFontAndSize(BaseFont.createFont(BaseFont.HELVETICA_OBLIQUE, "Cp1252", false), 11f);
        y = 42 + baseY;
        canvas.showTextAligned(Element.ALIGN_LEFT, "Type: ", x, doc.getPageSize().getHeight() - y, 0);
        y += 15;
        canvas.showTextAligned(Element.ALIGN_LEFT, "Animals_ID: ", x, doc.getPageSize().getHeight() - y, 0);
        y += 86;
        canvas.showTextAligned(Element.ALIGN_LEFT, "Delivery date: ", x, doc.getPageSize().getHeight() - y, 0);
        y += 13;
        canvas.showTextAligned(Element.ALIGN_LEFT, "PO Number: ", x, doc.getPageSize().getHeight() - y, 0);
        y += 22;
        canvas.showTextAligned(Element.ALIGN_LEFT, "Study: ", x, doc.getPageSize().getHeight() - y, 0);
        y += 14;
        if (study != null && !study.isBlind() && printGroupsTreatments)
            canvas.showTextAligned(Element.ALIGN_LEFT, "Group: ", x, doc.getPageSize().getHeight() - y, 0);
        y += 23;
        if (study != null && !study.isBlind() && printGroupsTreatments)
            canvas.showTextAligned(Element.ALIGN_LEFT, "Treatment: ", x, doc.getPageSize().getHeight() - y, 0);
        y += 50;
        canvas.showTextAligned(Element.ALIGN_LEFT, "License: ", x, doc.getPageSize().getHeight() - y, 0);
        y += 13;
        canvas.showTextAligned(Element.ALIGN_LEFT, "Experimenter: ", x, doc.getPageSize().getHeight() - y, 0);
        canvas.endText();

        y = 42 + baseY;
        print(canvas, study.isBlindAll() ? "Blinded" : getMetadata(animals, "Type"), x + 65,
                doc.getPageSize().getHeight() - y, x2, 11, 11, FontFactory.HELVETICA, Color.BLACK, 11f);
        y += 15;

        if (animals.size() <= 6) {
            int n = 0;
            for (Biosample animal : animals) {
                print(canvas, animal.getSampleId(), x + 75, doc.getPageSize().getHeight() - y - 12 * n, x2 - 50,
                        12, 12, FontFactory.HELVETICA, Color.BLACK, 11f);
                if (animal.getSampleName() != null && animal.getSampleName().length() > 0) {
                    print(canvas, "[ " + animal.getSampleName() + " ]", x2 - 60,
                            doc.getPageSize().getHeight() - y - 12 * n, x2, 12, 12, FontFactory.HELVETICA_BOLD,
                            Color.BLACK, 11f);
                }
                n++;
            }
        } else {
            int nPerRow = animals.size() / 2;
            int n = 0;
            for (Biosample animal : animals) {
                int nx = n / nPerRow;
                int ny = n % nPerRow;
                print(canvas, animal.getSampleId(), x + nx * (x2 - x) / 2,
                        doc.getPageSize().getHeight() - y - 12 * ny - 12, x + (1 + nx) * (x2 - x) / 2, 12, 12,
                        FontFactory.HELVETICA, Color.BLACK, 10f);
                if (animal.getSampleName() != null && animal.getSampleName().length() > 0) {
                    print(canvas, "[ " + animal.getSampleName() + " ]", x + (1 + nx) * (x2 - x) / 2 - 35,
                            doc.getPageSize().getHeight() - y - 12 * ny - 12, x + (1 + nx) * (x2 - x) / 2, 12,
                            12, FontFactory.HELVETICA_BOLD, Color.BLACK, 10f);
                }
                n++;
            }
        }

        y += 86;
        print(canvas, getMetadata(animals, "Delivery Date"), x + 75, doc.getPageSize().getHeight() - y, x2, 0,
                10, FontFactory.HELVETICA, Color.BLACK, 10f);
        y += 13;
        print(canvas, getMetadata(animals, "PO Number"), x + 75, doc.getPageSize().getHeight() - y, x2, 0, 10,
                FontFactory.HELVETICA, Color.BLACK, 10f);
        y += 22;
        print(canvas, study.getStudyIdAndInternalId(), x + 40, doc.getPageSize().getHeight() - y, x2, 0, 11,
                BaseFont.HELVETICA_BOLD, Color.BLACK, 11f);
        y += 14;
        if (!study.isBlind() && printGroupsTreatments)
            print(canvas, getGroups(animals), x + 40, doc.getPageSize().getHeight() - y, x2, 22, 11,
                    BaseFont.HELVETICA_BOLD, Color.BLACK, 11f);
        y += 23;
        if (!study.isBlind() && printGroupsTreatments)
            print(canvas, getTreatments(animals, printTreatmentDesc), x + 62, doc.getPageSize().getHeight() - y,
                    x2, 50, printTreatmentDesc ? 9 : 12, FontFactory.HELVETICA, treatmentColor,
                    printTreatmentDesc ? 9f : 10f);
        y += 50;
        print(canvas, study.getMetadataMap().get("LICENSENO"), x + 74, doc.getPageSize().getHeight() - y, x2,
                15, 10, FontFactory.HELVETICA, Color.BLACK, 10f);
        y += 13;
        print(canvas, study.getMetadataMap().get("EXPERIMENTER"), x + 74, doc.getPageSize().getHeight() - y, x2,
                20, 10, FontFactory.HELVETICA, Color.BLACK, 10f);
    }

    doc.close();
    os.close();
    Desktop.getDesktop().open(f);
    try {
        Thread.sleep(500);
    } catch (Exception e) {
    }

}

From source file:com.actelion.research.spiritapp.print.CagePrinterPDF.java

License:Open Source License

private static void print(PdfContentByte canvas, String txt, float x, float y, float maxX, int maxHeight,
        int lineHeight, String fontName, Color color, float fontSize) throws Exception {
    float width = maxX - x - 5;
    float minY = Math.min(y, y - maxHeight + lineHeight - 3);
    if (txt == null)
        return;//from  ww  w .  j  av a  2s  .com

    canvas.setFontAndSize(BaseFont.createFont(fontName, "Cp1252", false), fontSize);
    while (txt.length() > 0 && y >= minY) {
        int index = 0;
        while (true) {
            int index2 = index + 1;
            if (index2 >= txt.length()) {
                index = index2;
                break;
            }
            float w = canvas.getEffectiveStringWidth(txt.substring(0, index2), true);
            System.out.println("CagePrinterPDF.print()   " + txt.substring(0, index2) + " " + w + "," + width);
            if (w > width)
                break;
            index = index2;
        }
        if (index < 0)
            index = txt.length();
        String t = txt.substring(0, index);
        System.out.println(
                "CagePrinterPDF.print() " + t + " at " + x + "x" + y + " (of " + txt + ") minY=" + minY);
        txt = txt.substring(index).trim();
        Phrase phrase = new Paragraph(t, FontFactory.getFont(fontName, fontSize, color));
        ColumnText.showTextAligned(canvas, Element.ALIGN_LEFT, phrase, x, y, 0);
        y -= lineHeight;
    }
}

From source file:com.actelion.research.spiritapp.ui.util.PDFUtils.java

License:Open Source License

public static void addHeader(PdfWriter writer, String header) {
    class MyFooter extends PdfPageEventHelper {
        com.lowagie.text.Font ffont;

        @Override/*from ww w  .j  a  v a 2s  .co m*/
        public void onEndPage(PdfWriter writer, Document document) {
            try {
                ffont = new com.lowagie.text.Font(
                        BaseFont.createFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.EMBEDDED), 6f,
                        com.lowagie.text.Font.ITALIC);
            } catch (Exception e) {
                e.printStackTrace();
                return;
            }

            String date = FormatterUtils.formatDateTime(new Date());
            PdfContentByte cb = writer.getDirectContent();
            ColumnText.showTextAligned(cb, Element.ALIGN_LEFT, new Phrase(header, ffont), document.left(),
                    document.top() + 5, 0);
            ColumnText.showTextAligned(cb, Element.ALIGN_CENTER,
                    new Phrase("Page " + writer.getCurrentPageNumber(), ffont),
                    (document.right() - document.left()) / 2 + document.leftMargin(), document.bottom() - 5, 0);
            ColumnText.showTextAligned(cb, Element.ALIGN_RIGHT, new Phrase(date, ffont), document.right(),
                    document.bottom() - 5, 0);
        }
    }
    writer.setPageEvent(new MyFooter());
}

From source file:com.afunms.report.abstraction.ExcelReport1.java

public void createWordReport_hardware(String filename) {
    try {/*from  w  ww.  j a  va2  s.  c  om*/
        String starttime = (String) reportHash.get("starttime");
        String totime = (String) reportHash.get("totime");
        Document document = new Document(PageSize.A4);
        RtfWriter2.getInstance(document, new FileOutputStream(filename));
        fileName = filename;
        document.open();
        BaseFont bfChinese = BaseFont.createFont("Times-Roman", "", BaseFont.NOT_EMBEDDED);
        Font titleFont = new Font(bfChinese, 12, Font.BOLD);
        Font contextFont = new Font(bfChinese, 10, Font.NORMAL);
        Paragraph title = new Paragraph("");
        title.setAlignment(Element.ALIGN_CENTER);
        document.add(title);

        String contextString = ":" + impReport.getTimeStamp() + " \n"// 
                + ":" + starttime + "  " + totime;
        Paragraph context = new Paragraph(contextString);
        // 
        context.setAlignment(Element.ALIGN_LEFT);
        // context.setFont(contextFont);
        // 
        context.setSpacingBefore(5);
        // 
        context.setFirstLineIndent(5);
        document.add(context);

        Table aTable = new Table(4);
        float[] widths = { 100f, 100f, 300f, 100f };
        aTable.setWidths(widths);
        aTable.setWidth(100); //  90%
        aTable.setAlignment(Element.ALIGN_CENTER);// 
        aTable.setAutoFillEmptyCells(true); // 
        aTable.setBorderWidth(1); // 
        aTable.setBorderColor(new Color(0, 125, 255)); // 
        aTable.setPadding(2);// 
        aTable.setSpacing(0);// 
        aTable.setBorder(2);// 
        aTable.endHeaders();
        aTable.addCell("");
        aTable.addCell("");
        aTable.addCell("");
        aTable.addCell("");
        Vector deviceV = (Vector) reportHash.get("deviceV");
        for (int m = 0; m < deviceV.size(); m++) {
            Devicecollectdata devicedata = (Devicecollectdata) deviceV.get(m);
            String name = devicedata.getName();
            String type = devicedata.getType();
            String status = devicedata.getStatus();
            aTable.addCell(m + 1 + "");
            aTable.addCell(type);
            aTable.addCell(name);
            aTable.addCell(status);
        }
        document.add(aTable);
        document.close();
        // System.out.println("abcdefg");
    } catch (Exception e) {
        SysLogger.error("", e);
    }
}

From source file:com.afunms.report.abstraction.ExcelReport1.java

/**
 * @author sunqichang///from   w ww  .  j  a  va  2  s .  co m
 * @param filename
 *            
 * @param type
 *            pdfdoc
 */
public void createReport_hardwareNew(String filename, String type) {
    try {
        int diskcount = Integer.parseInt(request.getParameter("diskcount"));
        String starttime = (String) reportHash.get("starttime");
        String totime = (String) reportHash.get("totime");
        List networkList = (List) reportHash.get("networkList");
        List serverList = (List) reportHash.get("serverList");
        List dbList = (List) reportHash.get("dbList");
        List midwareList = (List) reportHash.get("midwareList");
        Document document = new Document(PageSize.A4);
        if ("doc".equalsIgnoreCase(type)) {
            RtfWriter2.getInstance(document, new FileOutputStream(filename));
        } else {
            PdfWriter.getInstance(document, new FileOutputStream(filename));
        }
        BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
        Font fontChineseTitle = new Font(bfChinese, 14, Font.BOLD);
        Font fontChineseRow = new Font(bfChinese, 12, Font.NORMAL);
        fileName = filename;
        document.open();
        Paragraph title = new Paragraph("", fontChineseTitle);
        title.setAlignment(Element.ALIGN_CENTER);
        document.add(title);
        String contextString = ":" + impReport.getTimeStamp() + " \n"// 
                + ":" + starttime + "  " + totime;
        Paragraph context = new Paragraph(contextString, fontChineseTitle);
        context.setAlignment(Element.ALIGN_CENTER);
        // context.setFont(contextFont);
        // 
        context.setSpacingBefore(5);
        // 
        context.setFirstLineIndent(5);
        document.add(context);
        Iterator networkIt = null;
        if (networkList != null) {
            networkIt = networkList.iterator();
        }
        Iterator serverIt = null;
        if (serverList != null) {
            serverIt = serverList.iterator();
        }
        Iterator dbIt = null;
        if (dbList != null) {
            dbIt = dbList.iterator();
        }
        Iterator midwareIt = null;
        if (midwareList != null) {
            midwareIt = midwareList.iterator();
        }
        String[] networkTitle = { "", "", "", "", "IP", "" };
        String[] serverTitle = { "", "", "", "", "IP", "", "" };
        String[] dbTitle = { "", "", "", "IP" };
        String[] midwareTitle = { "", "", "", "IP" };
        Table table = new Table(9);
        table.setWidth(100);
        table.setAlignment(Element.ALIGN_CENTER);// 
        table.setAutoFillEmptyCells(true); // 
        table.setBorderWidth(1); // 
        table.setBorderColor(new Color(0, 125, 255)); // 
        table.setPadding(2);// 
        table.setSpacing(0);// 
        table.setBorder(2);// 
        for (int i = 0; i < networkTitle.length; i++) {
            Cell cell = new Cell();
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            cell.addElement(new Paragraph(networkTitle[i], fontChineseTitle));
            if (i == 0) {
                cell.setRowspan(networkList.size() + 1);
            }
            if (i == 1 || i == 4 || i == 3) {
                cell.setColspan(2);
            }
            cell.setBackgroundColor(Color.LIGHT_GRAY);
            table.addCell(cell);
        }
        if (networkIt != null) {
            while (networkIt.hasNext()) {
                Cell cell1 = new Cell();
                Cell cell2 = new Cell();
                Cell cell3 = new Cell();
                Cell cell4 = new Cell();
                Cell cell5 = new Cell();
                cell1.setVerticalAlignment(Element.ALIGN_MIDDLE);
                cell2.setVerticalAlignment(Element.ALIGN_MIDDLE);
                cell3.setVerticalAlignment(Element.ALIGN_MIDDLE);
                cell4.setVerticalAlignment(Element.ALIGN_MIDDLE);
                cell5.setVerticalAlignment(Element.ALIGN_MIDDLE);
                MonitorNodeDTO monitorNodeDTO = (MonitorNodeDTO) networkIt.next();
                cell1.addElement(new Paragraph(monitorNodeDTO.getAlias(), fontChineseRow));
                cell2.addElement(new Paragraph(monitorNodeDTO.getCategory(), fontChineseRow));
                cell3.addElement(new Paragraph(monitorNodeDTO.getType(), fontChineseRow));
                cell4.addElement(new Paragraph(monitorNodeDTO.getIpAddress(), fontChineseRow));
                cell5.addElement(
                        new Paragraph(String.valueOf(monitorNodeDTO.getEntityNumber()), fontChineseRow));
                cell1.setColspan(2);
                // cell2.setColspan(2);
                cell3.setColspan(2);
                cell4.setColspan(2);
                // cell5.setColspan(2);
                table.addCell(cell1);
                table.addCell(cell2);
                table.addCell(cell3);
                table.addCell(cell4);
                table.addCell(cell5);
            }
        }
        for (int i = 0; i < serverTitle.length; i++) {
            Cell cell = new Cell();
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            cell.addElement(new Paragraph(serverTitle[i], fontChineseTitle));
            if (i == 0) {
                cell.setRowspan(diskcount + 1 + serverList.size());
            }
            if (i == 5 || i == 6) {
                cell.setColspan(2);
            }
            cell.setBackgroundColor(Color.LIGHT_GRAY);
            table.addCell(cell);
        }
        if (serverIt != null) {
            while (serverIt.hasNext()) {
                Cell cell1 = new Cell();
                Cell cell2 = new Cell();
                Cell cell3 = new Cell();
                Cell cell44 = new Cell();
                cell1.setVerticalAlignment(Element.ALIGN_MIDDLE);
                cell2.setVerticalAlignment(Element.ALIGN_MIDDLE);
                cell3.setVerticalAlignment(Element.ALIGN_MIDDLE);
                cell44.setVerticalAlignment(Element.ALIGN_MIDDLE);
                MonitorNodeDTO monitorNodeDTO = (MonitorNodeDTO) serverIt.next();
                AssetHelper helper = new AssetHelper();
                List<StatisNumer> diskList = helper.getAssetList(monitorNodeDTO.getIpAddress(), "Disk");
                List<StatisNumer> memList = helper.getAssetList(monitorNodeDTO.getIpAddress(), "Memory");
                cell1.addElement(new Paragraph(monitorNodeDTO.getAlias(), fontChineseRow));
                cell2.addElement(new Paragraph(monitorNodeDTO.getCategory(), fontChineseRow));
                cell3.addElement(new Paragraph(monitorNodeDTO.getType(), fontChineseRow));
                cell44.addElement(new Paragraph(monitorNodeDTO.getIpAddress(), fontChineseRow));
                cell1.setRowspan(diskList.size() + 2);
                cell2.setRowspan(diskList.size() + 2);
                cell3.setRowspan(diskList.size() + 2);
                cell44.setRowspan(diskList.size() + 2);
                table.addCell(cell1);
                table.addCell(cell2);
                table.addCell(cell3);
                table.addCell(cell44);
                Iterator<StatisNumer> diskIt = diskList.iterator();
                int flag = 0;
                int rowspan = diskList.size() + 2;
                double sum = 0;
                while (diskIt.hasNext()) {
                    if (flag == 0 || flag == rowspan / 2) {
                        if (flag == 0) {
                            Cell cellt1 = new Cell();
                            Cell cellt2 = new Cell();
                            cell1.setVerticalAlignment(Element.ALIGN_MIDDLE);
                            cell2.setVerticalAlignment(Element.ALIGN_MIDDLE);
                            cellt1.add(new Paragraph("", fontChineseRow));
                            cellt2.add(new Paragraph("", fontChineseRow));
                            table.addCell(cellt1);
                            table.addCell(cellt2);
                        }
                        Iterator<StatisNumer> memIt = memList.iterator();
                        while (memIt.hasNext()) {
                            StatisNumer numer = memIt.next();
                            if (flag == rowspan / 2) {
                                flag++;
                                continue;
                            }
                            Cell cell6 = new Cell();
                            Cell cell7 = new Cell();
                            cell6.setVerticalAlignment(Element.ALIGN_MIDDLE);
                            cell7.setVerticalAlignment(Element.ALIGN_MIDDLE);
                            cell6.addElement(new Paragraph(numer.getName(), fontChineseRow));
                            cell7.addElement(new Paragraph(numer.getCurrent(), fontChineseRow));
                            if (flag == 0) {
                                cell6.setRowspan(rowspan / 2);
                                cell7.setRowspan(rowspan / 2);
                                table.addCell(cell6);
                                table.addCell(cell7);
                                break;
                            } else {
                                cell6.setRowspan(rowspan - rowspan / 2);
                                cell7.setRowspan(rowspan - rowspan / 2);
                                table.addCell(cell6);
                                table.addCell(cell7);
                            }
                        }
                    }
                    Cell cell4 = new Cell();
                    Cell cell5 = new Cell();
                    cell4.setVerticalAlignment(Element.ALIGN_MIDDLE);
                    cell5.setVerticalAlignment(Element.ALIGN_MIDDLE);
                    StatisNumer numer = diskIt.next();
                    cell4.addElement(new Paragraph(numer.getName(), fontChineseRow));
                    cell5.addElement(new Paragraph(numer.getCurrent(), fontChineseRow));
                    table.addCell(cell4);
                    table.addCell(cell5);
                    sum = Arith.add(sum, Double.parseDouble(numer.getCurrent().replaceAll("[a-zA-Z]", "")));
                    flag++;
                }
                Cell cell6 = new Cell();
                Cell cell7 = new Cell();
                cell6.setVerticalAlignment(Element.ALIGN_MIDDLE);
                cell7.setVerticalAlignment(Element.ALIGN_MIDDLE);
                cell6.addElement(new Paragraph("", fontChineseRow));
                cell7.addElement(new Paragraph(Arith.round(sum, 2) + "G", fontChineseRow));
                table.addCell(cell6);
                table.addCell(cell7);
            }
        }
        for (int i = 0; i < dbTitle.length; i++) {
            Cell cell = new Cell();
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            cell.addElement(new Paragraph(dbTitle[i], fontChineseTitle));
            if (i == 0) {
                cell.setRowspan(dbList.size() + 1);
            }
            if (i == 3) {
                cell.setColspan(4);
            } else if (i != 0) {
                cell.setColspan(2);
            }
            cell.setBackgroundColor(Color.LIGHT_GRAY);
            table.addCell(cell);
        }
        if (dbIt != null) {
            while (dbIt.hasNext()) {
                Cell cell2 = new Cell();
                Cell cell3 = new Cell();
                Cell cell4 = new Cell();
                cell2.setVerticalAlignment(Element.ALIGN_MIDDLE);
                cell3.setVerticalAlignment(Element.ALIGN_MIDDLE);
                cell4.setVerticalAlignment(Element.ALIGN_MIDDLE);
                MonitorDBDTO monitorNodeDTO = (MonitorDBDTO) dbIt.next();
                cell2.addElement(new Paragraph(monitorNodeDTO.getAlias(), fontChineseRow));
                cell3.addElement(new Paragraph(monitorNodeDTO.getDbtype(), fontChineseRow));
                cell4.addElement(new Paragraph(monitorNodeDTO.getIpAddress(), fontChineseRow));
                cell2.setColspan(2);
                cell3.setColspan(2);
                cell4.setColspan(4);
                table.addCell(cell2);
                table.addCell(cell3);
                table.addCell(cell4);
            }
        }
        for (int i = 0; i < midwareTitle.length; i++) {
            Cell cell = new Cell();
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            cell.addElement(new Paragraph(midwareTitle[i], fontChineseTitle));
            if (i == 0) {
                cell.setRowspan(midwareList.size() + 1);
            }
            if (i == 3) {
                cell.setColspan(4);
            } else if (i != 0) {
                cell.setColspan(2);
            }
            cell.setBackgroundColor(Color.LIGHT_GRAY);
            table.addCell(cell);
        }
        if (midwareIt != null) {
            while (midwareIt.hasNext()) {
                Cell cell2 = new Cell();
                Cell cell3 = new Cell();
                Cell cell4 = new Cell();
                cell2.setVerticalAlignment(Element.ALIGN_MIDDLE);
                cell3.setVerticalAlignment(Element.ALIGN_MIDDLE);
                cell4.setVerticalAlignment(Element.ALIGN_MIDDLE);
                MonitorMiddlewareDTO monitorNodeDTO = (MonitorMiddlewareDTO) midwareIt.next();
                cell2.addElement(new Paragraph(monitorNodeDTO.getAlias(), fontChineseRow));
                cell3.addElement(new Paragraph(monitorNodeDTO.getCategory(), fontChineseRow));
                cell4.addElement(new Paragraph(monitorNodeDTO.getIpAddress(), fontChineseRow));
                cell2.setColspan(2);
                cell3.setColspan(2);
                cell4.setColspan(4);
                table.addCell(cell2);
                table.addCell(cell3);
                table.addCell(cell4);
            }
        }
        document.add(table);
        document.close();
    } catch (Exception e) {
        SysLogger.error("", e);
    }
}

From source file:com.afunms.report.abstraction.ExcelReport1.java

public void createPdfReport_hardware(String filename) {
    try {//from   w w w.ja v a 2s .com
        String starttime = (String) reportHash.get("starttime");
        String totime = (String) reportHash.get("totime");
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        // 
        Document document = new Document(PageSize.A4);
        // (Writer)document(Writer)
        PdfWriter.getInstance(document, new FileOutputStream(filename));
        fileName = filename;
        document.open();
        // 
        BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
        // 
        Font titleFont = new Font(bfChinese, 12, Font.BOLD);
        // 
        Font contextFont = new Font(bfChinese, 10, Font.NORMAL);
        Paragraph title = new Paragraph("", titleFont);
        // 
        title.setAlignment(Element.ALIGN_CENTER);
        // title.setFont(titleFont);
        document.add(title);

        String contextString = ":" + impReport.getTimeStamp() + " \n"// 
                + ":" + starttime + "  " + totime;
        Paragraph context = new Paragraph(contextString, contextFont);
        // 
        context.setAlignment(Element.ALIGN_LEFT);
        // context.setFont(contextFont);
        // 
        context.setSpacingBefore(5);
        // 
        context.setFirstLineIndent(5);
        document.add(context);
        document.add(new Phrase("\n"));
        Font fontChinese = new Font(bfChinese, 12, Font.NORMAL, Color.black);
        PdfPTable aTable = new PdfPTable(4);
        float[] widths = { 100f, 100f, 300f, 100f };
        aTable.setWidths(widths);
        aTable.setWidthPercentage(100);
        aTable.addCell(new Phrase("", contextFont));
        aTable.addCell(new Phrase("", contextFont));
        aTable.addCell(new Phrase("", contextFont));
        aTable.addCell(new Phrase("", contextFont));
        Vector deviceV = (Vector) reportHash.get("deviceV");
        for (int m = 0; m < deviceV.size(); m++) {
            Devicecollectdata devicedata = (Devicecollectdata) deviceV.get(m);
            String name = devicedata.getName();
            String type = devicedata.getType();
            String status = devicedata.getStatus();
            aTable.addCell(new Phrase(m + 1 + "", contextFont));
            aTable.addCell(new Phrase(type, contextFont));
            aTable.addCell(new Phrase(name, contextFont));
            aTable.addCell(new Phrase(status, contextFont));
        }
        /*
         * Image img =
         * Image.getInstance(ResourceCenter.getInstance().getSysPath() +
         * "/resource/image/jfreechart/" + newip + "ConnectUtilization" +
         * ".png");
         * 
         * img.setAlignment(Image.LEFT);//  img.scalePercent(75);
         * document.add(aTable); document.add(img);
         */
        document.add(aTable);
        document.close();
    } catch (Exception e) {
        SysLogger.error("", e);
    }
}

From source file:com.afunms.report.abstraction.ExcelReport1.java

public void createReportusa_oraPDF(String filename) throws DocumentException, IOException {
    if (impReport.getTable() == null) {
        fileName = null;/*from  w w  w . j  a v  a  2 s  .  c om*/
        return;
    }
    try {
        // 
        Document document = new Document(PageSize.A4);
        // (Writer)document(Writer)
        PdfWriter.getInstance(document, new FileOutputStream(filename));
        document.open();
        // 
        BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
        // 
        Font titleFont = new Font(bfChinese, 12, Font.BOLD);
        // 
        Font contextFont = new Font(bfChinese, 12, Font.NORMAL);
        Font contextFont1 = new Font(bfChinese, 11, Font.NORMAL);
        String hostname = (String) reportHash.get("dbname");
        String ip = (String) reportHash.get("ip");
        String newip = doip(ip);
        Paragraph title = new Paragraph(hostname + "", titleFont);
        // 
        title.setAlignment(Element.ALIGN_CENTER);
        document.add(title);
        String Ping = (String) reportHash.get("Ping");
        String starttime = (String) reportHash.get("starttime");
        String totime = (String) reportHash.get("totime");
        Hashtable maxping = (Hashtable) reportHash.get("ping");
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String contextString = ":" + impReport.getTimeStamp() + " \n"// 
                + ":" + starttime + "  " + totime;
        Paragraph context = new Paragraph(contextString, contextFont1);
        // 
        context.setAlignment(Element.ALIGN_LEFT);
        // context.setFont(contextFont);
        // 
        context.setSpacingBefore(5);
        // 
        context.setFirstLineIndent(5);
        document.add(context);
        document.add(new Paragraph("\n"));
        PdfPTable aTable = new PdfPTable(4);
        float[] widths = { 220f, 220f, 220f, 220f };
        aTable.setWidths(widths);
        aTable.setWidthPercentage(100);
        PdfPCell cell = null;
        cell = new PdfPCell(new Phrase("", titleFont));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER); // 
        cell.setVerticalAlignment(Element.ALIGN_MIDDLE); // 
        aTable.addCell(cell);
        cell = new PdfPCell(new Phrase("", titleFont));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER); // 
        cell.setVerticalAlignment(Element.ALIGN_MIDDLE); // 
        aTable.addCell(cell);
        cell = new PdfPCell(new Phrase("", titleFont));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER); // 
        cell.setVerticalAlignment(Element.ALIGN_MIDDLE); // 
        aTable.addCell(cell);
        cell = new PdfPCell(new Phrase("", titleFont));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER); // 
        cell.setVerticalAlignment(Element.ALIGN_MIDDLE); // 
        aTable.addCell(cell);
        cell = new PdfPCell(new Phrase(""));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER); // 
        cell.setVerticalAlignment(Element.ALIGN_MIDDLE); // 
        aTable.addCell(cell);
        // cell = new PdfPCell(new Phrase((String) maxping.get("pingmax")));
        cell = new PdfPCell(new Phrase((String) maxping.get("pingnow")));// HONGLI
        // MODIFY
        cell.setHorizontalAlignment(Element.ALIGN_CENTER); // 
        cell.setVerticalAlignment(Element.ALIGN_MIDDLE); // 
        aTable.addCell(cell);
        // cell = new PdfPCell(new Phrase((String) maxping.get("ping")));
        cell = new PdfPCell(new Phrase((String) maxping.get("pingmin")));// HONGLI
        // MODIFY
        cell.setHorizontalAlignment(Element.ALIGN_CENTER); // 
        cell.setVerticalAlignment(Element.ALIGN_MIDDLE); // 
        aTable.addCell(cell);
        cell = new PdfPCell(new Phrase((String) maxping.get("avgpingcon")));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER); // 
        cell.setVerticalAlignment(Element.ALIGN_MIDDLE); // 
        aTable.addCell(cell);
        // 
        Image img = Image.getInstance(ResourceCenter.getInstance().getSysPath() + "/resource/image/jfreechart/"
                + newip + "ConnectUtilization" + ".png");
        img.setAlignment(Image.MIDDLE);// 
        img.scalePercent(76);
        document.add(aTable);
        document.add(img);
        document.add(new Paragraph("\n"));
        if (impReport.getChart() != null) {
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            try {
                ChartUtilities.writeChartAsPNG(baos, impReport.getChart().getChart(),
                        impReport.getChart().getWidth(), impReport.getChart().getHeight());
            } catch (IOException ioe) {
            }
            Image img1 = Image.getInstance(baos.toByteArray());
            img1.setAbsolutePosition(0, 0);
            img1.setAlignment(Image.MIDDLE);// 
            document.add(img1);
        }
        document.close();
    } catch (Exception e) {
        // SysLogger.error("Error in ExcelReport.createReport()",e);
        SysLogger.error("", e);
    }
}

From source file:com.afunms.report.abstraction.ExcelReport1.java

public void createReportusa_oraDoc(String filename) throws DocumentException, IOException {
    try {// w ww .j  ava 2s .  c o  m
        // 
        Document document = new Document(PageSize.A4);
        // (Writer)document(Writer)
        RtfWriter2.getInstance(document, new FileOutputStream(filename));
        document.open();
        // 
        BaseFont bfChinese = BaseFont.createFont("Times-Roman", "", BaseFont.NOT_EMBEDDED);
        // 
        Font titleFont = new Font(bfChinese, 12, Font.BOLD);
        // 
        Font contextFont = new Font(bfChinese, 12, Font.NORMAL);
        String hostname = (String) reportHash.get("dbname");
        String ip = (String) reportHash.get("ip");
        String newip = doip(ip);
        // System.out.println("newi ========================"+newip);
        Paragraph title = new Paragraph(hostname + "", titleFont);
        // 
        title.setAlignment(Element.ALIGN_CENTER);
        // title.setFont(titleFont);
        document.add(title);
        String Ping = (String) reportHash.get("Ping");
        String starttime = (String) reportHash.get("starttime");
        String totime = (String) reportHash.get("totime");
        Hashtable maxping = (Hashtable) reportHash.get("ping");
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String contextString = ":" + impReport.getTimeStamp() + " \n" + ":"
                + starttime + "  " + totime;
        Paragraph context = new Paragraph(contextString, contextFont);
        // 
        context.setAlignment(Element.ALIGN_LEFT);
        // 
        context.setSpacingBefore(5);
        // 
        context.setFirstLineIndent(5);
        document.add(context);
        Table aTable = new Table(4);
        float[] widths = { 220f, 220f, 220f, 220f };
        aTable.setWidths(widths);
        aTable.setWidth(100); //  90%
        aTable.setAlignment(Element.ALIGN_CENTER);// 
        aTable.setAutoFillEmptyCells(true); // 
        aTable.setBorderWidth(1); // 
        aTable.setBorderColor(new Color(0, 125, 255)); // 
        aTable.setPadding(2);// 
        aTable.setSpacing(0);// 
        aTable.setBorder(2);// 
        aTable.endHeaders();
        Cell cell = null;
        cell = new Cell(new Phrase("", titleFont));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER); // 
        cell.setVerticalAlignment(Element.ALIGN_MIDDLE); // 
        aTable.addCell(cell);
        cell = new Cell(new Phrase("", titleFont));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER); // 
        cell.setVerticalAlignment(Element.ALIGN_MIDDLE); // 
        aTable.addCell(cell);
        cell = new Cell(new Phrase("", titleFont));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER); // 
        cell.setVerticalAlignment(Element.ALIGN_MIDDLE); // 
        aTable.addCell(cell);
        cell = new Cell(new Phrase("", titleFont));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER); // 
        cell.setVerticalAlignment(Element.ALIGN_MIDDLE); // 
        aTable.addCell(cell);
        cell = new Cell("");
        cell.setHorizontalAlignment(Element.ALIGN_CENTER); // 
        cell.setVerticalAlignment(Element.ALIGN_MIDDLE); // 
        aTable.addCell(cell);
        // cell = new Cell(new Phrase((String)
        // maxping.get("pingmax"),contextFont));
        cell = new Cell(new Phrase((String) maxping.get("pingnow"), contextFont));// HONGLI
        // MODIFY
        cell.setHorizontalAlignment(Element.ALIGN_CENTER); // 
        cell.setVerticalAlignment(Element.ALIGN_MIDDLE); // 
        aTable.addCell(cell);
        // cell = new Cell(new Phrase((String)
        // maxping.get("ping"),contextFont));
        cell = new Cell(new Phrase((String) maxping.get("pingmin"), contextFont));// HONGLI
        // MODIFY
        cell.setHorizontalAlignment(Element.ALIGN_CENTER); // 
        cell.setVerticalAlignment(Element.ALIGN_MIDDLE); // 
        aTable.addCell(cell);
        cell = new Cell(new Phrase((String) maxping.get("avgpingcon"), contextFont));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER); // 
        cell.setVerticalAlignment(Element.ALIGN_MIDDLE); // 
        aTable.addCell(cell);
        // 
        Image img = Image.getInstance(ResourceCenter.getInstance().getSysPath() + "/resource/image/jfreechart/"
                + newip + "ConnectUtilization" + ".png");
        document.add(aTable);
        document.add(img);
        document.close();
    } catch (Exception e) {
        SysLogger.error("", e);
    }
}

From source file:com.afunms.report.abstraction.ExcelReport1.java

public void createReport_networkDoc(String file) throws DocumentException, IOException {
    String runmodel = PollingEngine.getCollectwebflag();
    Hashtable CPU = (Hashtable) reportHash.get("CPU");
    String Ping = (String) reportHash.get("Ping");
    String ip = (String) reportHash.get("ip");
    String newip = doip(ip);//from ww w .  j a  va2s  . c  o  m
    Calendar colTime = (Calendar) reportHash.get("time");
    Date cc = colTime.getTime();
    Vector netifVector = (Vector) reportHash.get("netifVector");
    Hashtable portconfigHash = (Hashtable) reportHash.get("portconfigHash");
    List reportports = (List) reportHash.get("reportports");
    Vector iprouterVector = (Vector) reportHash.get("iprouterVector");

    Hashtable Memory = (Hashtable) reportHash.get("Memory");
    Hashtable Disk = (Hashtable) reportHash.get("Disk");
    String hostname = (String) reportHash.get("equipname");
    Hashtable memMaxHash = (Hashtable) reportHash.get("memmaxhash");
    Hashtable maxping = (Hashtable) reportHash.get("ping");

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    String[] netIfItemch = { "", "", "", "(M)", "", "", "" };
    String[] ipRouterItemch = { "", "", "", "", "", "" };
    String[] memoryItem = { "Capability", "Utilization" };
    String[] diskItem = { "AllSize", "UsedSize", "Utilization", "INodeUsedSize", "INodeUtilization" };
    String[] diskItemch = { "", "", "", "i-node", "i-node" };
    String[] iproutertype = { "", "", "", "direct(3)", "indirect(4)" };
    String[] iprouterproto = { "", "other(1)", "local(2)", "netmgmt(3)", "icmp(4)", "egp(5)", "ggp(6)",
            "hello(7)", "rip(8)", "is-is(9)", "es-is(10)", "ciscoIgrp(11)", "bbnSpfIgp(12)", "ospf(13)",
            "bgp(14)" };
    // 
    Document document = new Document(PageSize.A4);
    // (Writer)document(Writer)
    RtfWriter2.getInstance(document, new FileOutputStream(file));
    document.open();
    // 
    BaseFont bfChinese = BaseFont.createFont("Times-Roman", "", BaseFont.NOT_EMBEDDED);
    // 
    Font titleFont = new Font(bfChinese, 12, Font.BOLD);
    // 
    Font contextFont = new Font(bfChinese, 10, Font.NORMAL);

    Paragraph title = new Paragraph(hostname + "", titleFont);
    // 
    title.setAlignment(Element.ALIGN_CENTER);
    // title.setFont(titleFont);
    document.add(title);
    String contextString = ":" + impReport.getTimeStamp() + " \n"// 
            + ":" + sdf.format(cc);

    Paragraph context = new Paragraph(contextString, titleFont);
    // 
    context.setAlignment(Element.ALIGN_LEFT);
    // context.setFont(contextFont);
    // 
    context.setSpacingBefore(5);
    // 
    context.setFirstLineIndent(5);
    document.add(context);
    //  Table 
    Font fontChinese = new Font(bfChinese, 12, Font.NORMAL, Color.black);
    Table aTable = new Table(4);
    float[] widths = { 220f, 300f, 220f, 220f };
    aTable.setWidths(widths);
    aTable.setWidth(100); //  90%
    aTable.setAlignment(Element.ALIGN_CENTER);// 
    aTable.setAutoFillEmptyCells(true); // 
    aTable.setBorderWidth(1); // 
    aTable.setBorderColor(new Color(0, 125, 255)); // 
    aTable.setPadding(2);// 
    aTable.setSpacing(0);// 
    aTable.setBorder(2);// 
    aTable.endHeaders();

    Cell cellt0 = new Cell("");
    cellt0.setBackgroundColor(Color.LIGHT_GRAY);
    cellt0.setHorizontalAlignment(Element.ALIGN_CENTER);
    cellt0.setVerticalAlignment(Element.ALIGN_MIDDLE);
    cellt0.setRowspan(2);
    Cell cellt1 = new Cell("");
    cellt1.setBackgroundColor(Color.LIGHT_GRAY);
    Cell cellt2 = new Cell("");
    cellt2.setBackgroundColor(Color.LIGHT_GRAY);
    Cell cellt3 = new Cell("");
    cellt3.setBackgroundColor(Color.LIGHT_GRAY);
    aTable.addCell(cellt0);
    aTable.addCell(cellt1);
    aTable.addCell(cellt2);
    aTable.addCell(cellt3);

    // aTable.addCell("3.2",Ping+"%");
    // Cell cellt4 = new Cell("");
    // cellt4.setBackgroundColor(Color.LIGHT_GRAY);
    // aTable.addCell(cellt4);
    aTable.addCell(Ping + "%");
    aTable.addCell((String) maxping.get("pingmax"));
    aTable.addCell((String) maxping.get("avgpingcon"));
    Image img = Image.getInstance(ResourceCenter.getInstance().getSysPath() + "/resource/image/jfreechart/"
            + newip + "ConnectUtilization" + ".png");
    img.setAbsolutePosition(0, 0);
    img.setAlignment(Image.LEFT);// 
    document.add(aTable);
    document.add(img);
    // document.add(new Paragraph("\n"));
    // document.close();
    Table aTable1 = new Table(4);
    float[] width = { 220f, 300f, 220f, 220f };
    aTable1.setWidths(width);
    aTable1.setWidth(100); //  90%
    aTable1.setAlignment(Element.ALIGN_CENTER);// 
    aTable1.setAutoFillEmptyCells(true); // 
    aTable1.setBorderWidth(1); // 
    aTable1.setBorderColor(new Color(0, 125, 255)); // 
    aTable1.setPadding(2);// 
    aTable1.setSpacing(0);// 
    aTable1.setBorder(2);// 
    aTable1.endHeaders();

    cellt0 = new Cell("CPU");
    cellt0.setBackgroundColor(Color.LIGHT_GRAY);
    cellt0.setHorizontalAlignment(Element.ALIGN_CENTER);
    cellt0.setVerticalAlignment(Element.ALIGN_MIDDLE);

    cellt1 = new Cell("");
    cellt1.setBackgroundColor(Color.LIGHT_GRAY);
    cellt2 = new Cell("");
    cellt2.setBackgroundColor(Color.LIGHT_GRAY);
    cellt3 = new Cell("");
    cellt3.setBackgroundColor(Color.LIGHT_GRAY);
    aTable1.addCell(cellt0);
    aTable1.addCell(cellt1);
    aTable1.addCell(cellt2);
    aTable1.addCell(cellt3);
    // aTable.addCell("3.2",Ping+"%");
    aTable1.addCell("");

    aTable1.addCell((String) CPU.get("cpu") + "%");
    aTable1.addCell((String) CPU.get("cpumax"));
    aTable1.addCell((String) CPU.get("avgcpu"));
    cellt0.setRowspan(2);
    Image img1 = Image.getInstance(
            ResourceCenter.getInstance().getSysPath() + "/resource/image/jfreechart/" + newip + "cpu" + ".png");
    img.setAbsolutePosition(0, 0);
    img.setAlignment(Image.MIDDLE);// 
    document.add(aTable1);
    document.add(img1);

    if (netifVector != null && netifVector.size() > 0) {
        Table aTable2 = new Table(8);
        float[] width2 = { 300f, 220f, 220f, 180f, 300f, 180f, 220f, 220f };
        aTable2.setWidths(width2);
        aTable2.setWidth(100); //  100%
        aTable2.setAlignment(Element.ALIGN_CENTER);// 
        aTable2.setAutoFillEmptyCells(true); // 
        aTable2.setBorderWidth(1); // 
        aTable2.setBorderColor(new Color(0, 125, 255)); // 
        aTable2.setPadding(2);// 
        aTable2.setSpacing(0);// 
        aTable2.setBorder(2);// 
        aTable2.endHeaders();
        Cell c = new Cell("");
        c.setBackgroundColor(Color.LIGHT_GRAY);
        c.setRowspan(netifVector.size() + 1);
        c.setHorizontalAlignment(Element.ALIGN_CENTER);
        c.setVerticalAlignment(Element.ALIGN_MIDDLE);
        aTable2.addCell(c);
        // 
        // allRow = allRow;
        for (int i = 0; i < netIfItemch.length; i++) {
            Cell cell = new Cell(netIfItemch[i]);
            cell.setBackgroundColor(Color.LIGHT_GRAY);
            aTable2.addCell(cell);
        }
        Color color = new Color(204, 204, 255);
        // 
        for (int i = 0; i < netifVector.size(); i++) {
            // aTable2.addCell("");
            String[] strs = (String[]) netifVector.get(i);
            String ifname = strs[1];
            String index = strs[0];
            for (int j = 0; j < strs.length; j++) {
                if (j == 1) {
                    String linkuse = "";
                    if (portconfigHash != null && portconfigHash.size() > 0) {
                        if (portconfigHash.get(ip + ":" + index) != null)
                            linkuse = (String) portconfigHash.get(ip + ":" + index);
                    }
                    Cell cell1 = new Cell(strs[j]);
                    Cell cell2 = new Cell(linkuse);
                    if (i % 2 != 0) {
                        cell1.setBackgroundColor(color);
                        cell2.setBackgroundColor(color);
                    }
                    aTable2.addCell(cell1);
                    aTable2.addCell(cell2);
                } else if (j > 1) {
                    Cell cell3 = new Cell(strs[j]);
                    if (i % 2 != 0) {
                        cell3.setBackgroundColor(color);
                    }
                    aTable2.addCell(cell3);
                } else {
                    Cell cell4 = new Cell(strs[j]);
                    if (i % 2 != 0) {
                        cell4.setBackgroundColor(color);
                    }
                    aTable2.addCell(cell4);
                }
            } // end 
        }
        document.add(aTable2);
    }
    if ("0".equals(runmodel)) {
        // 
        if (iprouterVector != null && iprouterVector.size() > 0) {
            Table aTable3 = new Table(7);
            float[] width2 = { 240f, 200f, 300f, 300f, 220f, 180f, 300f };
            aTable3.setWidths(width2);
            aTable3.setWidth(100); //  100%
            aTable3.setAlignment(Element.ALIGN_CENTER);// 
            aTable3.setAutoFillEmptyCells(true); // 
            aTable3.setBorderWidth(1); // 
            aTable3.setBorderColor(new Color(0, 125, 255)); // 
            aTable3.setPadding(2);// 
            aTable3.setSpacing(0);// 
            aTable3.setBorder(2);// 
            aTable3.endHeaders();
            aTable3.addCell("");
            // 
            // allRow = allRow+1;
            for (int i = 0; i < ipRouterItemch.length; i++) {
                Cell cell = new Cell(ipRouterItemch[i]);
                aTable3.addCell(cell);

            }

            // 

            for (int i = 0; i < iprouterVector.size(); i++) {
                aTable3.addCell("");
                /* allRow = allRow + 1; */

                IpRouter iprouter = (IpRouter) iprouterVector.get(i);
                Cell cell = new Cell(iprouter.getIfindex());
                aTable3.addCell(cell);
                Cell cell1 = new Cell(iprouter.getDest());
                aTable3.addCell(cell1);
                Cell cell2 = new Cell(iprouter.getNexthop());
                aTable3.addCell(cell2);
                Cell cell3 = new Cell(iproutertype[Integer.parseInt(iprouter.getType().longValue() + "")]);
                aTable3.addCell(cell3);
                Cell cell4 = new Cell(iprouterproto[Integer.parseInt(iprouter.getProto().longValue() + "")]);
                aTable3.addCell(cell4);
                Cell cell5 = new Cell(iprouter.getMask());
                aTable3.addCell(cell5);
            }
            document.add(aTable3);
        }
    } else {
        // 
        List routerList = (ArrayList) reportHash.get("routerList");
        Table aTable3 = new Table(7);
        float[] width2 = { 240f, 200f, 300f, 300f, 220f, 180f, 300f };
        aTable3.setWidths(width2);
        aTable3.setWidth(100); //  100%
        aTable3.setAlignment(Element.ALIGN_CENTER);// 
        aTable3.setAutoFillEmptyCells(true); // 
        aTable3.setBorderWidth(1); // 
        aTable3.setBorderColor(new Color(0, 125, 255)); // 
        aTable3.setPadding(2);// 
        aTable3.setSpacing(0);// 
        aTable3.setBorder(2);// 
        aTable3.endHeaders();
        aTable3.addCell("");
        // 
        // allRow = allRow+1;
        for (int i = 0; i < ipRouterItemch.length; i++) {
            Cell cell = new Cell(ipRouterItemch[i]);
            aTable3.addCell(cell);

        }
        if (routerList != null) {
            for (int i = 0; i < routerList.size(); i++) {
                aTable3.addCell("");
                RouterNodeTemp iprouter = (RouterNodeTemp) routerList.get(i);
                Cell cell = new Cell(iprouter.getIfindex());
                aTable3.addCell(cell);
                Cell cell1 = new Cell(iprouter.getDest());
                aTable3.addCell(cell1);
                Cell cell2 = new Cell(iprouter.getNexthop());
                aTable3.addCell(cell2);
                Cell cell3 = new Cell(iprouter.getType());
                aTable3.addCell(cell3);
                Cell cell4 = new Cell(iprouter.getProto());
                aTable3.addCell(cell4);
                Cell cell5 = new Cell(iprouter.getMask());
                aTable3.addCell(cell5);
            }
            document.add(aTable3);
        }
    }
    // doc

    if (reportports != null && reportports.size() > 0) {
        // 

        // aTable4.addCell("");
        for (int i = 0; i < reportports.size(); i++) {
            Table aTable4 = new Table(2);
            float[] width2 = { 300f, 300f };
            aTable4.setWidths(width2);
            aTable4.setWidth(100); //  100%
            aTable4.setAlignment(Element.ALIGN_CENTER);// 
            aTable4.setAutoFillEmptyCells(true); // 
            aTable4.setBorderWidth(1); // 
            aTable4.setBorderColor(new Color(0, 125, 255)); // 
            aTable4.setPadding(2);// 
            aTable4.setSpacing(0);// 
            aTable4.setBorder(2);// 
            aTable4.endHeaders();
            // SysLogger.info(reportports.get(i).getClass()+"=============================================");
            com.afunms.config.model.Portconfig portconfig = (com.afunms.config.model.Portconfig) reportports
                    .get(i);
            /*
             * tmpLabel = new Label(0, allRow, "" +
             * portconfig.getPortindex() + "(" + portconfig.getName() +
             * ")", b_labelFormat);
             * 
             * sheet.addCell(tmpLabel);
             */
            Cell cell = new Cell("" + portconfig.getPortindex() + "(" + portconfig.getName() + ")");
            aTable4.addCell(cell);
            if (portconfig.getLinkuse() == null)
                portconfig.setLinkuse("");
            Cell cell1 = new Cell(":" + portconfig.getLinkuse());
            aTable4.addCell(cell1);
            document.add(aTable4);
            // 
            Image img2 = Image.getInstance(ResourceCenter.getInstance().getSysPath()
                    + "/resource/image/jfreechart/" + newip + portconfig.getPortindex() + "ifspeed_day.png");
            img2.setAbsolutePosition(0, 0);
            img2.setAlignment(Image.LEFT);// 
            // sheet,0,0,5,1,,,
            img2.scalePercent(67);
            document.add(img2);
        }
    } // 
    if (impReport.getChart() != null) {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        try {
            ChartUtilities.writeChartAsPNG(baos, impReport.getChart().getChart(),
                    impReport.getChart().getWidth(), impReport.getChart().getHeight());
        } catch (IOException ioe) {
        }
        /*
         * WritableImage wi = new WritableImage(2, 10000 + 5, 8, 12, baos
         * .toByteArray());
         */
        Image img2 = Image.getInstance(baos.toByteArray());
        img.setAbsolutePosition(0, 0);
        img.setAlignment(Image.LEFT);// 
        img.scalePercent(67);
        document.add(img2);
    }

    document.close();
}