Example usage for com.itextpdf.text Document close

List of usage examples for com.itextpdf.text Document close

Introduction

In this page you can find the example usage for com.itextpdf.text Document close.

Prototype

boolean close

To view the source code for com.itextpdf.text Document close.

Click Source Link

Document

Has the document already been closed?

Usage

From source file:com.jpsycn.print.util.PDFUtils.java

/**
 * ???/??//from  w ww  .  j ava  2  s  .c  o  m
 * 
 * @param mContext
 * @param file
 * @param map
 * @return
 */
public static boolean createReSamplePdf(Context mContext, File file, Map<String, String> map) {
    try {

        Font simfang12 = FontUtil.getFont(mContext, 12, "simfang.ttf");
        Font bf = FontUtil.getFont(mContext, 12, "simfang.ttf", Font.BOLD, null);

        Document document = setHeader(file, mContext, simfang12, bf, "???/??",
                map.get("sno") == null ? "   " : map.get("sno"));

        // 
        int cols = 100;
        int m = 5;
        int n = 12;
        int o1 = 11;
        int o2 = 11;
        int o3 = 11;
        int p = 5;
        int q = 5;
        int r = 20;
        int s = 20;

        int o = o1 + o2 + o3;

        PdfPTable table1 = new PdfPTable(cols);
        // ???80%100%
        table1.setWidthPercentage(100);
        table1.setSpacingBefore(3f);

        table1.addCell(ItextUtil.getCell(simfang12, "??", m + n));
        table1.addCell(ItextUtil.getCell(bf, map.get("source"), o));
        table1.addCell(ItextUtil.getCell(simfang12, "", p + q));
        table1.addCell(ItextUtil.getCell(bf, map.get("check_type"), r + s));

        table1.addCell(ItextUtil.getCell(simfang12, "???", m, 3, false, true));
        table1.addCell(ItextUtil.getCell(simfang12, " ???  ?", n, 3, false, true));

        table1.addCell(ItextUtil.getCell(bf, map.get("name"), o));
        table1.addCell(ItextUtil.getCell(simfang12, "", p + q));
        table1.addCell(ItextUtil.getCell(bf, map.get("legal_representative"), r + s));
        table1.addCell(ItextUtil.getCell(bf, map.get("address"), o));
        table1.addCell(ItextUtil.getCell(simfang12, "?    ??", p + q, 2, false, true));
        table1.addCell(ItextUtil.getCell(bf, map.get("contact_and_phone"), r + s, 2));
        table1.addCell(ItextUtil.getCell(simfang12, "", o));

        table1.addCell(ItextUtil.getCell(simfang12, "??", m, 10, false, true));
        table1.addCell(ItextUtil.getCell(simfang12, "????", n));
        table1.addCell(ItextUtil.getCell(bf, map.get("company_name"), o));

        table1.addCell(ItextUtil.getCell(simfang12, "?", p, 10, false, true));

        String companyType = map.get("company_type");

        table1.addCell(ItextUtil.getCell(simfang12, "", q, 4, false, true));
        table1.addCell(ItextUtil.getCell(simfang12, ItextUtil.checked("", companyType), r));
        table1.addCell(
                ItextUtil.getCell(simfang12, ItextUtil.checked("???", companyType), s));

        table1.addCell(ItextUtil.getCell(simfang12, "???", n));
        table1.addCell(ItextUtil.getCell(bf, map.get("company_address"), o));

        table1.addCell(ItextUtil.getCell(simfang12, ItextUtil.checked("", companyType), r));
        table1.addCell(ItextUtil.getCell(simfang12, ItextUtil.checked("??", companyType), s));

        table1.addCell(ItextUtil.getCell(simfang12, "?", n));
        table1.addCell(ItextUtil.getCell(bf, map.get("company_zip"), o));

        table1.addCell(ItextUtil.getCell(simfang12, ItextUtil.checked("??", companyType), r));
        table1.addCell(ItextUtil.getCell(simfang12, ItextUtil.checked("??", companyType), s));

        table1.addCell(ItextUtil.getCell(simfang12, "", n));
        table1.addCell(ItextUtil.getCell(bf, map.get("company_legal_representative"), o));

        table1.addCell(ItextUtil.getCell(simfang12, ItextUtil.checked("?", companyType), r));
        table1.addCell(ItextUtil.getCell(simfang12, ItextUtil.checked("?", companyType), s));

        table1.addCell(ItextUtil.getCell(simfang12, "?", n));
        table1.addCell(ItextUtil.getCell(bf, map.get("company_linkman"), o));

        table1.addCell(ItextUtil.getCell(simfang12, "?", q, 3, false, true));

        table1.addCell(ItextUtil.getCell(simfang12, ItextUtil.checked("???", companyType), r));
        table1.addCell(ItextUtil.getCell(simfang12, ItextUtil.checked("???", companyType), s));

        table1.addCell(ItextUtil.getCell(simfang12, "??", n));
        table1.addCell(ItextUtil.getCell(bf, map.get("company_phone"), o));

        table1.addCell(
                ItextUtil.getCell(simfang12, ItextUtil.checked("???", companyType), r, 2));
        table1.addCell(ItextUtil.getCell(simfang12,
                ItextUtil.checked("??", companyType), s, 2));

        table1.addCell(ItextUtil.getCell(simfang12, "?", n));
        table1.addCell(ItextUtil.getCell(bf, map.get("company_license"), o));
        table1.addCell(ItextUtil.getCell(simfang12, "?", n));
        table1.addCell(ItextUtil.getCell(bf, map.get("company_code"), o));

        table1.addCell(ItextUtil.getCell(simfang12, "", q, 3, false, true));
        table1.addCell(ItextUtil.getCell(simfang12, ItextUtil.checked("?", companyType), r));
        table1.addCell(ItextUtil.getCell(simfang12, ItextUtil.checked("?", companyType), s));

        table1.addCell(ItextUtil.getCell(simfang12, "?", n, 2));

        table1.addCell(ItextUtil.getCell(simfang12, "", o1, false));

        table1.addCell(ItextUtil.getCell(simfang12, "", o2));
        table1.addCell(ItextUtil.getCell(simfang12, "?", o3));

        table1.addCell(ItextUtil.getCell(simfang12, ItextUtil.checked("?", companyType), r, 2));
        table1.addCell(ItextUtil.getCell(simfang12,
                ItextUtil.checked("??", companyType), s, 2));

        table1.addCell(ItextUtil.getCell(bf, map.get("company_person_number"), o1));
        table1.addCell(ItextUtil.getCell(bf, map.get("company_output_value"), o2));
        table1.addCell(ItextUtil.getCell(bf, map.get("company_production"), o3));

        table1.addCell(ItextUtil.getCell(simfang12, "???", m, 8, false, true));

        table1.addCell(ItextUtil.getCell(simfang12,
                ItextUtil.checked(new String[] { "???", "QS", "CCC", "" },
                        map.get("product_certificate_type")),
                n + o1 + o2 + o3 + p + q));
        table1.addCell(ItextUtil.getCell(simfang12, "??", r));
        table1.addCell(ItextUtil.getCell(bf, map.get("product_certificate_sno"), s));

        table1.addCell(ItextUtil.getCell(simfang12, "???", n + o1));
        table1.addCell(ItextUtil.getCell(bf, map.get("product_name"), o2 + o3));

        table1.addCell(ItextUtil.getCell(simfang12, "?", p + q + r));
        table1.addCell(ItextUtil.getCell(bf, map.get("product_type"), s));

        table1.addCell(ItextUtil.getCell(simfang12, "/?", n + o1));
        table1.addCell(ItextUtil.getCell(bf, map.get("product_date"), o2 + o3));

        table1.addCell(ItextUtil.getCell(simfang12, "", p + q + r));
        table1.addCell(ItextUtil.getCell(bf, map.get("product_brand"), s));

        //
        gg(map, simfang12, bf, table1);

        //
        table1.addCell(ItextUtil.getCell(simfang12, "", n + o1));
        table1.addCell(ItextUtil.getCell(bf, map.get("samplint_date"), o2 + o3));

        table1.addCell(ItextUtil.getCell(simfang12, "??", p + q + r));
        table1.addCell(ItextUtil.getCell(bf, map.get("sampling_state"), s));

        table1.addCell(ItextUtil.getCell(simfang12, "???", n + o1));
        table1.addCell(ItextUtil.getCell(bf, map.get("samplint_volumn_and_storage_address"), o2 + o3));

        table1.addCell(ItextUtil.getCell(simfang12, "?", p + q + r));
        table1.addCell(ItextUtil.getCell(bf, map.get("sampling_send_address"), s));

        table1.addCell(ItextUtil.getCell(simfang12, "???", n + o1));
        table1.addCell(ItextUtil.getCell(simfang12,
                ItextUtil.checked(new String[] { "", "?" }, map.get("is_export_product")), o2 + o3));

        table1.addCell(ItextUtil.getCell(simfang12, "?", p + q + r));
        table1.addCell(ItextUtil.getCell(bf, map.get("sampling_send_expired"), s));

        table1.addCell(ItextUtil.getCell(simfang12, "??", m, 3, false, true));

        table1.addCell(ItextUtil.getCell(simfang12, "????", n));
        table1.addCell(ItextUtil.getCell(bf, map.get("sampling_name"), o1 + o2 + o3 + p + q));
        table1.addCell(ItextUtil.getCell(simfang12, "?", r));
        table1.addCell(ItextUtil.getCell(bf, map.get("sampling_people"), s));

        table1.addCell(ItextUtil.getCell(simfang12, "???", n));
        table1.addCell(ItextUtil.getCell(bf, map.get("sampling_address"), o1 + o2 + o3 + p + q));
        table1.addCell(ItextUtil.getCell(simfang12, "??", r));
        table1.addCell(ItextUtil.getCell(bf, map.get("sampling_phone"), s));

        table1.addCell(ItextUtil.getCell(simfang12, "?", n));
        table1.addCell(ItextUtil.getCell(bf, map.get("sampling_zip"), o1 + o2 + o3 + p + q));
        table1.addCell(ItextUtil.getCell(simfang12, "/Email", r));
        table1.addCell(ItextUtil.getCell(bf, map.get("sampling_email"), s));

        Font blackFont = FontUtil.getFont(mContext, 12, "simfang.ttf", Font.NORMAL, BaseColor.WHITE);

        String remark = map.get("remark") == null ? "" : map.get("remark");
        int nn = 30 + 43 * 3;
        if (remark != null && remark.length() < 25 + 43 * 4) {
            nn = nn - remark.length();
        }

        table1.addCell(ItextUtil.getRemarkCell(simfang12, blackFont, "?",
                bf, remark, cols, nn));

        table1.addCell(ItextUtil.getMultiCell3(simfang12, blackFont, "???",
                "?????", "    ", 32, 1, 2 + 13 * 2 + 6));
        table1.addCell(ItextUtil.getMultiCell3(simfang12, blackFont, "??",
                "????", "    ", 32, 1, 2 + 13 * 2 + 6));
        table1.addCell(ItextUtil.getMultiCell3(simfang12, blackFont, "??",
                "??", "    ", 36, 7 + 15 * 2 + 6, 9));

        document.add(table1);

        Font simfang8 = FontUtil.getFont(mContext, 8, "simfang.ttf");
        Paragraph r1 = new Paragraph(
                "1.??????",
                simfang8);
        document.add(r1);
        Paragraph r2 = new Paragraph(
                "2.???QS?CCC???3.???????",
                simfang8);
        document.add(r2);

        zxing(map.get("zxing"), mContext, document);
        stmp(mContext, document, 380, 40);
        Paragraph bbb = new Paragraph(ItextUtil.getBlackStr(44), blackFont);
        document.add(bbb);
        //  5:
        document.close();
        return true;
    } catch (Exception e) {
        Log.e(TAG, "", e);
        return false;
    }
}

From source file:com.jpsycn.print.util.PDFUtils.java

/**
 * ????/??// w ww.ja  va  2  s  . co  m
 * 
 * @param mContext
 * @param file
 * @param map
 * @return
 */
public static boolean createSpaqPdf(Context mContext, File file, Map<String, String> map) {
    try {

        /*
         * String[] ss = new String[] { "",".", "", "", "?", "?", "",
         * "", "", "",".", "", "", "?", "?", "", "", "", "",".",
         * "", "", "", "", "", "", "", "", "", "", ".","", "",
         * "", "?", "", "", "?", "", "?", "", "", "?", "", "", "",
         * "?", "", "", "", "", "" };
         */
        /*
         * PdfContentByte cb = writer.getDirectContent(); BaseFont simfang =
         * FontUtil.getBaseFont(mContext, "simfang.ttf"); cb.beginText();
         * cb.setFontAndSize(simfang, 12); float w = 595 - 30; for (int i =
         * 0; i < ss.length; i++) { String temp = ss[i]; if
         * (temp.equals("") || temp.equals("")) {
         * cb.showTextAligned(PdfContentByte.ALIGN_CENTER, temp, w+2,
         * (680f-i*10)+3, 270); } else { cb.setTextMatrix(w, 680f - i * 10);
         * cb.showText(temp); } } cb.endText();
         */

        Font simfang12 = FontUtil.getFont(mContext, 12, "simfang.ttf");

        Font bf = FontUtil.getFont(mContext, 12, "simfang.ttf", Font.BOLD, null);

        Document document = setHeader(file, mContext, simfang12, bf,
                "????/??",
                map.get("sno") == null ? "   " : map.get("sno"));

        // 
        int cols = 100;

        int m = 5;
        int n = 12;
        int o1 = 11;
        int o2 = 11;
        int o3 = 11;
        int p = 5;
        int q = 5;
        int r = 20;
        int s = 20;

        int o = o1 + o2 + o3;

        PdfPTable table1 = new PdfPTable(cols);
        // ???80%100%
        table1.setWidthPercentage(100);
        table1.setSpacingBefore(3f);

        table1.addCell(ItextUtil.getCell(20f, simfang12, "??", m + n));
        table1.addCell(ItextUtil.getCell(20f, bf, map.get("source"), o));
        table1.addCell(ItextUtil.getCell(20f, simfang12, "", p + q));
        table1.addCell(ItextUtil.getCell(20f, bf, map.get("check_type"), r + s));

        table1.addCell(ItextUtil.getCell(20f, simfang12, "???", m, 3, false, true));
        table1.addCell(ItextUtil.getCell(20f, simfang12, "????", n, 3));

        table1.addCell(ItextUtil.getCell(20f, bf, map.get("name"), o));
        table1.addCell(ItextUtil.getCell(20f, simfang12, "", p + q));
        table1.addCell(ItextUtil.getCell(20f, bf, map.get("legal_representative"), r + s));
        table1.addCell(ItextUtil.getCell(20f, bf, map.get("address"), o));
        table1.addCell(ItextUtil.getCell(20f, simfang12, "???", p + q, 2));
        table1.addCell(ItextUtil.getCell(20f, bf, map.get("contact_and_phone"), r + s, 2));
        table1.addCell(ItextUtil.getCell(20f, simfang12, "", o));

        table1.addCell(ItextUtil.getCell(20f, simfang12, "??", m, 10, false, true));
        table1.addCell(ItextUtil.getCell(20f, simfang12, "????", n));
        table1.addCell(ItextUtil.getCell(20f, bf, map.get("company_name"), o));

        table1.addCell(ItextUtil.getCell(20f, simfang12, "?", p, 10, false, true));

        String companyType = map.get("company_type");

        table1.addCell(ItextUtil.getCell(simfang12, "", q, 4, false, true));
        table1.addCell(ItextUtil.getCell(20f, simfang12, ItextUtil.checked("", companyType), r));
        table1.addCell(
                ItextUtil.getCell(20f, simfang12, ItextUtil.checked("???", companyType), s));

        table1.addCell(ItextUtil.getCell(20f, simfang12, "???", n));
        table1.addCell(ItextUtil.getCell(20f, bf, map.get("company_address"), o));

        table1.addCell(ItextUtil.getCell(20f, simfang12, ItextUtil.checked("", companyType), r));
        table1.addCell(ItextUtil.getCell(20f, simfang12, ItextUtil.checked("??", companyType), s));

        table1.addCell(ItextUtil.getCell(20f, simfang12, "?", n));
        table1.addCell(ItextUtil.getCell(20f, bf, map.get("company_zip"), o));

        table1.addCell(ItextUtil.getCell(20f, simfang12, ItextUtil.checked("??", companyType), r));
        table1.addCell(
                ItextUtil.getCell(20f, simfang12, ItextUtil.checked("??", companyType), s));

        table1.addCell(ItextUtil.getCell(20f, simfang12, "", n));
        table1.addCell(ItextUtil.getCell(20f, bf, map.get("company_legal_representative"), o));

        table1.addCell(ItextUtil.getCell(20f, simfang12, ItextUtil.checked("?", companyType), r));
        table1.addCell(ItextUtil.getCell(20f, simfang12, ItextUtil.checked("?", companyType), s));

        table1.addCell(ItextUtil.getCell(20f, simfang12, "?", n));
        table1.addCell(ItextUtil.getCell(20f, bf, map.get("company_linkman"), o));

        table1.addCell(ItextUtil.getCell(20f, simfang12, "?", q, 3, false, true));

        table1.addCell(ItextUtil.getCell(20f, simfang12, ItextUtil.checked("???", companyType), r));
        table1.addCell(ItextUtil.getCell(20f, simfang12, ItextUtil.checked("???", companyType), s));

        table1.addCell(ItextUtil.getCell(20f, simfang12, "??", n));
        table1.addCell(ItextUtil.getCell(20f, bf, map.get("company_phone"), o));

        table1.addCell(ItextUtil.getCell(20f, simfang12,
                ItextUtil.checked("???", companyType), r, 2));
        table1.addCell(ItextUtil.getCell(20f, simfang12,
                ItextUtil.checked("??", companyType), s, 2));

        table1.addCell(ItextUtil.getCell(20f, simfang12, "?", n));
        table1.addCell(ItextUtil.getCell(20f, bf, map.get("company_license"), o));
        table1.addCell(ItextUtil.getCell(20f, simfang12, "?", n));
        table1.addCell(ItextUtil.getCell(20f, bf, map.get("company_code"), o));

        table1.addCell(ItextUtil.getCell(20f, simfang12, "", q, 3));
        table1.addCell(ItextUtil.getCell(20f, simfang12, ItextUtil.checked("?", companyType), r));
        table1.addCell(ItextUtil.getCell(20f, simfang12, ItextUtil.checked("?", companyType), s));

        table1.addCell(ItextUtil.getCell(20f, simfang12, "?", n, 2));

        StringBuilder sb3 = new StringBuilder();
        sb3.append("");
        sb3.append(map.get("company_person_number") == null ? " " : map.get("company_person_number"));
        sb3.append(" ");
        sb3.append(map.get("company_output_value") == null ? " " : map.get("company_output_value"));
        sb3.append(" ?");
        sb3.append(map.get("company_production") == null ? " " : map.get("company_production"));
        // sb3.append("10000 5000 ?1000?");

        Font simfang10 = FontUtil.getFont(mContext, 9, "simfang.ttf");
        table1.addCell(ItextUtil.getCell(20f, simfang10, sb3.toString(), o1 + o2 + o3));

        table1.addCell(ItextUtil.getCell(20f, simfang12, ItextUtil.checked("?", companyType), r, 2));
        table1.addCell(ItextUtil.getCell(20f, simfang12,
                ItextUtil.checked("??", companyType), s, 2));

        table1.addCell(ItextUtil.getCell(20f, simfang12,
                ItextUtil.checked(new String[] { "", "", "?" }, map.get("company_scope")),
                o1 + o2 + o3));

        table1.addCell(ItextUtil.getCell(20f, simfang12, "???", m, 9, false, true));

        table1.addCell(ItextUtil.getCell(20f, simfang12,
                ItextUtil.checked(new String[] { "?", "??", "?", "??" },
                        map.get("food_type")),
                n + o1 + o2 + o3 + p + q));
        table1.addCell(ItextUtil.getCell(20f, simfang12, "??", r));
        table1.addCell(ItextUtil.getCell(20f, bf, map.get("product_certificate_sno"), s));

        table1.addCell(ItextUtil.getCell(20f, simfang12, "???", n + o1));
        table1.addCell(ItextUtil.getCell(20f, bf, map.get("product_name"), o2 + o3));

        table1.addCell(ItextUtil.getCell(20f, simfang12, "?", p + q + r));
        table1.addCell(ItextUtil.getCell(20f, bf, map.get("product_type"), s));

        table1.addCell(ItextUtil.getCell(20f, simfang12, "/?", n + o1));
        table1.addCell(ItextUtil.getCell(20f, bf, map.get("product_date"), o2 + o3));

        table1.addCell(ItextUtil.getCell(20f, simfang12, "", p + q + r));
        table1.addCell(ItextUtil.getCell(20f, bf, map.get("product_brand"), s));

        //
        gg(map, simfang12, bf, table1);
        //
        table1.addCell(ItextUtil.getCell(20f, simfang12, "", n + o1));
        table1.addCell(ItextUtil.getCell(20f, bf, map.get("samplint_date"), o2 + o3));

        table1.addCell(ItextUtil.getCell(20f, simfang12, "??", p + q + r));
        table1.addCell(ItextUtil.getCell(20f, bf, map.get("sampling_state"), s));

        table1.addCell(ItextUtil.getCell(20f, simfang12, "???", n + o1));
        table1.addCell(ItextUtil.getCell(20f, bf, map.get("samplint_volumn_and_storage_address"), o2 + o3));

        table1.addCell(ItextUtil.getCell(20f, simfang12, "?", p + q + r));
        table1.addCell(ItextUtil.getCell(20f, bf, map.get("sampling_send_address"), s));

        table1.addCell(ItextUtil.getCell(20f, simfang12, "?", n + o1));
        table1.addCell(ItextUtil.getCell(20f, bf, map.get("sampling_send_expired"), o2 + o3));

        table1.addCell(ItextUtil.getCell(20f, simfang12,
                ItextUtil.checked(new String[] { "??", "???" }, map.get("is_famous_brand")),
                p + q + r + s));

        table1.addCell(ItextUtil.getCell(20f, simfang12, "", n));
        table1.addCell(ItextUtil.getCell(20f, simfang12,
                ItextUtil.checked(new String[] { "???", "", "" },
                        map.get("sample_address_1")),
                o1 + o2 + o3 + p + q));
        table1.addCell(ItextUtil.getCell(simfang12, ItextUtil.checked(
                new String[] { "", "?", "?" }, map.get("sample_address_2")), r + s));

        table1.addCell(ItextUtil.getCell(20f, simfang12, "??", m, 3, false, true));

        table1.addCell(ItextUtil.getCell(20f, simfang12, "????", n));
        table1.addCell(ItextUtil.getCell(20f, bf, map.get("sampling_name"), o1 + o2 + o3 + p + q));
        table1.addCell(ItextUtil.getCell(20f, simfang12, "?", r));
        table1.addCell(ItextUtil.getCell(20f, bf, map.get("sampling_people"), s));

        table1.addCell(ItextUtil.getCell(20f, simfang12, "???", n));
        table1.addCell(ItextUtil.getCell(20f, bf, map.get("sampling_address"), o1 + o2 + o3 + p + q));
        table1.addCell(ItextUtil.getCell(simfang12, "??", r));
        table1.addCell(ItextUtil.getCell(bf, map.get("sampling_phone"), s));

        table1.addCell(ItextUtil.getCell(simfang12, "?", n));
        table1.addCell(ItextUtil.getCell(bf, map.get("sampling_zip"), o1 + o2 + o3 + p + q));
        table1.addCell(ItextUtil.getCell(simfang12, "/Email", r));
        table1.addCell(ItextUtil.getCell(bf, map.get("sampling_email"), s));

        table1.addCell(ItextUtil.getCell(simfang12, "", m + n, 2));

        StringBuilder sb = new StringBuilder();
        sb.append("?");
        sb.append(ItextUtil.checked(new String[] { "", "" }, map.get("sampling_result_1")));
        sb.append("?");
        sb.append(ItextUtil.checked(new String[] { "", "?" }, map.get("sampling_result_2")));
        sb.append("\n");
        sb.append("?");
        sb.append(ItextUtil.checked(new String[] { "", "", "" }, map.get("sampling_result_3")));
        sb.append("????");
        sb.append(ItextUtil.checked(new String[] { "", "?" }, map.get("sampling_result_4")));

        table1.addCell(ItextUtil.getCell(simfang12, sb.toString(), o1 + o2 + o3 + p + q + r + s, 2, false));

        Font blackFont = FontUtil.getFont(mContext, 12, "simfang.ttf", Font.NORMAL, BaseColor.WHITE);

        table1.addCell(ItextUtil.getCell(simfang12, "", m + n, 2));

        StringBuilder sb2 = new StringBuilder();
        sb2.append("??");
        sb2.append(ItextUtil.checked(new String[] { "", "" }, map.get("remark_1")));
        sb2.append("\n");
        sb2.append("");
        // sb2.append(map.get("remark_2") == null ? "" :
        // map.get("remark_2"));
        String ss = map.get("remark_2") == null ? "" : map.get("remark_2");
        table1.addCell(ItextUtil.getCell2(simfang12, sb2.toString(), bf, ss, o1 + o2 + o3 + p + q + r + s));

        table1.addCell(ItextUtil.getMultiCell3(simfang12, blackFont, "???",
                "?????", "      ", 32, 1, 2 + 13 * 2 + 6));
        table1.addCell(ItextUtil.getMultiCell3(simfang12, blackFont, "??",
                "????", "      ", 32, 1, 2 + 13 * 2 + 6));
        table1.addCell(ItextUtil.getMultiCell3(simfang12, blackFont, "??",
                "??", "      ", 36, 7 + 15 * 2 + 6, 9));

        document.add(table1);

        Font simfang8 = FontUtil.getFont(mContext, 8, "simfang.ttf");
        Paragraph r1 = new Paragraph(
                "1???4??????????????2??????????3????",
                simfang8);
        document.add(r1);

        zxing(map.get("zxing"), mContext, document);
        stmp(mContext, document, 380, 40);
        Paragraph bbb = new Paragraph(ItextUtil.getBlackStr(44), blackFont);
        document.add(bbb);

        //  5:
        document.close();
        return true;
    } catch (Exception e) {
        Log.e(TAG, "", e);
        return false;
    }
}

From source file:com.jslsolucoes.tagria.lib.grid.exporter.impl.PdfExporter.java

License:Apache License

public void doExport(OutputStream out) throws DocumentException {
    Document document = new Document();
    PdfWriter.getInstance(document, out);
    document.open();//from  ww w. j av  a  2 s.c  o m
    PdfPTable pdf = new PdfPTable(table.getHeaders().size());
    pdf.setWidthPercentage(100);
    title(pdf);
    header(pdf);
    body(pdf);
    document.add(pdf);
    document.close();
}

From source file:com.khepry.frackhem.fxml.FracKhemGUIController.java

License:Apache License

private void saveTextAsPDF(String content, File file)
        throws FileNotFoundException, DocumentException, IOException, InterruptedException {
    Document document = new Document(PageSize.A4.rotate());
    PdfWriter pdfWriter = PdfWriter.getInstance(document, new FileOutputStream(file));
    document.open();//w  w w .ja v  a 2 s.c  om
    document.addAuthor("Author of the Doc");
    document.addCreator("Creator of the Doc");
    document.addSubject("Subject of the Doc");
    document.addCreationDate();
    document.addTitle(file.getName());
    String html = htmlHeader.concat(markdown4jProcessor.process(content.trim()));
    //        XMLWorkerHelper.getInstance().parseXHtml(pdfWriter, document, new ByteArrayInputStream(html.getBytes("UTF-8")), this.getClass().getResourceAsStream(cssFileFullPath));
    XMLWorkerHelper.getInstance().parseXHtml(pdfWriter, document,
            new ByteArrayInputStream(html.getBytes("UTF-8")));
    document.close();
    pdfWriter.close();
    displayFile(file.getAbsolutePath(), sleepMillis);
}

From source file:com.kohmiho.mpsr.export.PDFGenerator.java

/**
 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
 *      response)/*from   w  w  w.j a  va 2s.  co  m*/
 */
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    String mpsrID = request.getParameter("MPSR_ID");
    if (null == mpsrID)
        return;

    MPSRProjectInfo basicInfo = MPSRProjectInfo.getInstance(mpsrID);
    MPSRExecutiveSummary exeSummary = MPSRExecutiveSummary.getInstance(mpsrID);
    MPSRStatusSummary statusSummary = MPSRStatusSummary.getInstance(mpsrID);
    MPSRFunctionPerformance funcPerform = MPSRFunctionPerformance.getInstance(mpsrID);
    MPSRCostPerformance costPerform = MPSRCostPerformance.getInstance(mpsrID);
    MPSRSchedulePerformance[] schedulePerform = MPSRSchedulePerformance.getInstance(mpsrID);
    MPSRSafety safety = MPSRSafety.getInstance(mpsrID);
    MPSRAuthorization auth = MPSRAuthorization.getInstance(mpsrID);
    MPSRBudget budget = MPSRBudget.getInstance(mpsrID);
    MPSRCostReport[] costRpt = MPSRCostReport.getInstance(mpsrID);
    MPSRSchedule schedule = MPSRSchedule.getInstance(mpsrID);
    MPSRMilestone[] milestones = MPSRMilestone.getInstance(mpsrID);
    MPSRLPE lpe = MPSRLPE.getInstance(mpsrID);
    MPSRInsidePlantDesign[] ipds = MPSRInsidePlantDesign.getInstance(mpsrID);
    MPSROutsidePlantDesign[] opds = MPSROutsidePlantDesign.getInstance(mpsrID);
    MPSRProcure procure = MPSRProcure.getInstance(mpsrID);
    MPSRApprovedChanges[] approvedChanges = MPSRApprovedChanges.getInstance(mpsrID);
    MPSRPendingChanges[] pendingChanges = MPSRPendingChanges.getInstance(mpsrID);
    MPSRInsidePlantConstruction[] ipcs = MPSRInsidePlantConstruction.getInstance(mpsrID);
    MPSROutsidePlantConstruction[] opcs = MPSROutsidePlantConstruction.getInstance(mpsrID);
    MPSRAppendix[] appendixs = MPSRAppendix.getInstance(mpsrID);
    MPSRAttachment[] attachments = MPSRAttachment.getInstance(mpsrID);

    // response.setContentType("application/pdf");
    // response.setHeader("Content-Disposition",
    // "attachment; filename=\"test.pdf\"");

    Font fontNormal = null;
    Font fontCoverTitle = new Font(FontFamily.HELVETICA, 20, Font.BOLD);
    Font fontCoverTableHeader = new Font(FontFamily.HELVETICA, 16, Font.BOLD);
    Font fontCoverTableContent = new Font(FontFamily.HELVETICA, 16);
    Font fontChapterHeader = new Font(FontFamily.HELVETICA, 18, Font.BOLD);
    Font fontSection1Header = new Font(FontFamily.HELVETICA, 16, Font.BOLD);
    Font fontSection2Header = new Font(FontFamily.HELVETICA, 14, Font.BOLD);
    Font fontWork = new Font(FontFamily.HELVETICA, 12, Font.UNDERLINE);

    Font fontTableCaption = new Font(FontFamily.TIMES_ROMAN, 12, Font.BOLD);
    Font fontTableColumnHeader = new Font(FontFamily.HELVETICA, 12, Font.BOLD);
    Font fontTableColumnHeaderYellow = new Font(FontFamily.HELVETICA, 12, Font.BOLD);
    fontTableColumnHeaderYellow.setColor(BaseColor.YELLOW);
    Font fontTableRowTitle = new Font(FontFamily.HELVETICA, 12, Font.ITALIC);
    Font fontTableCellBold = new Font(FontFamily.HELVETICA, 12, Font.BOLD);
    Font fontTableNote = new Font(FontFamily.HELVETICA, 10, Font.ITALIC);
    Font fontImageCaption = new Font(FontFamily.TIMES_ROMAN, 9, Font.BOLD);

    Font fontPOTableHeader = new Font(FontFamily.HELVETICA, 10, Font.BOLD);
    fontPOTableHeader.setColor(BaseColor.YELLOW);
    Font fontPOTable = new Font(FontFamily.HELVETICA, 9);
    Font fontPOTableSummary = new Font(FontFamily.HELVETICA, 9, Font.BOLD);

    Font fontPageHeader = new Font(FontFamily.HELVETICA, 8);
    Font fontPageFooter = new Font(FontFamily.HELVETICA, 10);

    Phrase[] headerTexts = new Phrase[] { new Phrase("ELECTRIC DELIVERY", fontPageHeader),
            new Phrase("DELIVERY PROJECTS & CONSTRUCTION (DP&C)", fontPageHeader),
            new Phrase("PROJECT MONTHLY REPORT", fontPageHeader) };

    Paragraph paragraph = null;
    PdfPTable table = null;
    PdfPCell cell = null;

    Document document = new Document(DEFAULT_PAGE_SIZE, 36, 36, 9 * 10, 36);
    ByteArrayOutputStream baosOrig = new ByteArrayOutputStream();
    XMLWorkerHelper xmlWorker = XMLWorkerHelper.getInstance();

    try {
        PdfWriter writer = PdfWriter.getInstance(document, baosOrig);
        writer.setStrictImageSequence(true);
        writer.setLinearPageMode();
        writer.setViewerPreferences(PdfWriter.PageModeUseOutlines | PdfWriter.FitWindow);

        Image icon = getEmbeddedImage(getServletContext(), "/resource/image/company_logo.png");

        document.open();

        PdfOutline root = writer.getRootOutline();

        // *******************************************************************************************//

        // addOutline(root, writer, MPSRUI.TREE_0);

        for (int i = 0; i < 2; i++) {
            document.add(new Paragraph(" "));
        }

        String[] titles = { " DELIVERY PROJECTS & CONSTRUCTION", "MONTHLY REPORT",
                basicInfo.getReportMonthYear(), basicInfo.getProjectTitle(),
                "PROJECT No. " + basicInfo.getProjectDefinition() };
        int[] spaceingAfters = { 48, 48, 48, 24, 48 };
        for (int i = 0; i < titles.length; i++) {
            paragraph = new Paragraph();
            paragraph.setSpacingAfter(spaceingAfters[i]);
            paragraph.setFont(fontCoverTitle);
            paragraph.setAlignment(Element.ALIGN_CENTER);
            paragraph.add(new Chunk(titles[i]));
            document.add(paragraph);
        }

        addCoverImage(document, MPSRUI.getFilePath(mpsrID, basicInfo.getFileName()));

        document.add(new Paragraph(" "));

        table = new PdfPTable(2);
        table.addCell(new Phrase("Client", fontCoverTableHeader));
        table.addCell(new Phrase(basicInfo.getProjectManager(), fontCoverTableContent));
        table.addCell(new Phrase("Location", fontCoverTableHeader));
        table.addCell(new Phrase(basicInfo.getProjectDirector(), fontCoverTableContent));
        document.add(table);

        // *******************************************************************************************//

        document.resetPageCount();
        document.add(Chunk.NEXTPAGE);
        writer.setPageEvent(new MPSRPageEventHelper(icon, headerTexts, fontPageFooter));

        // *******************************************************************************************//

        PdfOutline outline1 = addOutline(root, writer, MPSRUI.TREE_1);
        addSectionTitle(document, MPSRUI.TREE_1, fontChapterHeader, 0, 0, 12);

        PdfOutline outline2 = addOutline(outline1, writer, "1.1");

        addOutline(outline2, writer, MPSRUI.TREE_1_1_1);
        addSectionTitle(document, MPSRUI.TREE_1_1_1, fontSection2Header, 12, 12, 0);
        addParagraph(document, writer, xmlWorker, exeSummary.getDesc_1_1_1(), fontNormal, 12, 0, 12);

        addOutline(outline2, writer, MPSRUI.TREE_1_1_2);
        addSectionTitle(document, MPSRUI.TREE_1_1_2, fontSection2Header, 12, 12, 0);
        addParagraph(document, writer, xmlWorker, exeSummary.getDesc_1_1_2(), fontNormal, 12, 0, 12);

        addOutline(outline2, writer, MPSRUI.TREE_1_1_3);
        addSectionTitle(document, MPSRUI.TREE_1_1_3, fontSection2Header, 12, 12, 0);
        addParagraph(document, writer, xmlWorker, exeSummary.getDesc_1_1_3(), fontNormal, 12, 0, 12);

        addOutline(outline2, writer, MPSRUI.TREE_1_1_4);
        addSectionTitle(document, MPSRUI.TREE_1_1_4, fontSection2Header, 12, 12, 0);
        addParagraph(document, writer, xmlWorker, exeSummary.getDesc_1_1_4(), fontNormal, 12, 0, 12);

        // *******************************************************************************************//
        // 1.2 Status Summary
        // *******************************************************************************************//

        outline2 = addOutline(outline1, writer, MPSRUI.TREE_1_2);
        addSectionTitle(document, MPSRUI.TREE_1_2, fontSection1Header, 6, 12, 12);

        paragraph = new Paragraph();
        paragraph.add(basicInfo.getProjectTitle());
        paragraph.setSpacingAfter(4);
        document.add(paragraph);

        table = new PdfPTable(5);
        table.setTotalWidth(500);
        table.setLockedWidth(true);
        table.setWidths(new int[] { 3, 1, 1, 1, 1 });

        cell = new PdfPCell(
                new Phrase("Project #: " + basicInfo.getProjectDefinition(), fontTableColumnHeader));
        cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
        table.addCell(cell);
        String[] headers = { "Status", "Approved (Include RnC)", "To Date", "At Completion" };
        for (String header : headers) {
            cell = new PdfPCell(new Phrase(header, fontTableColumnHeader));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);
        }

        String[][] cellValues = {
                { "Budget ($M)", statusSummary.getBudgetStatus(),
                        !"".equals(statusSummary.getBudgetApproved()) ? CURRENCY_FORMATTER
                                .format(Double.parseDouble(statusSummary.getBudgetApproved())) : "",
                        !"".equals(statusSummary.getBudgetToDate())
                                ? CURRENCY_FORMATTER.format(Double.parseDouble(statusSummary.getBudgetToDate()))
                                : "",
                        !"".equals(statusSummary.getBudgetAtCompletion()) ? CURRENCY_FORMATTER
                                .format(Double.parseDouble(statusSummary.getBudgetAtCompletion())) : "" },
                { "Schedule - Duration (months)", statusSummary.getScheduleStatus(),
                        statusSummary.getScheduleApproved(), statusSummary.getScheduleToDate(),
                        statusSummary.getScheduleAtCompletion() },
                { "In-Service Date", statusSummary.getInServiceDateStatus(),
                        statusSummary.getInServiceDateApproved(), statusSummary.getInServiceDateToDate(),
                        statusSummary.getInServiceDateAtCompletion() } };
        for (int i = 0; i < cellValues.length; i++) {
            table.addCell(new Phrase(cellValues[i][0]));
            cell = new PdfPCell(new Phrase(cellValues[i][1]));
            cell.setBackgroundColor(getBackgroundColor(cellValues[i][1]));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            table.addCell(cell);
            for (int j = 2; j < 5; j++) {
                cell = new PdfPCell(new Phrase(cellValues[i][j]));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                table.addCell(cell);
            }
        }

        document.add(table);

        // -------------------------------------------------------------------//

        paragraph = new Paragraph("Legend:");
        paragraph.setSpacingAfter(4);
        paragraph.setIndentationLeft(25);
        document.add(paragraph);

        table = new PdfPTable(3);
        table.setTotalWidth(240);
        table.setLockedWidth(true);
        table.setHorizontalAlignment(Element.ALIGN_LEFT);
        String[] legends = { "On Target", "At Risk", "Off Target" };
        for (String legend : legends) {
            cell = new PdfPCell(new Phrase(legend));
            cell.setBackgroundColor(getBackgroundColor(legend));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            cell.setMinimumHeight(18);
            cell.setPadding(0);
            table.addCell(cell);
        }

        paragraph = new Paragraph();
        paragraph.add(table);
        paragraph.setIndentationLeft(25);
        document.add(paragraph);

        // *******************************************************************************************//
        // 1.2.1 Functional Area Performance Indicators
        // *******************************************************************************************//

        addOutline(outline2, writer, MPSRUI.TREE_1_2_1);
        addSectionTitle(document, MPSRUI.TREE_1_2_1, fontSection2Header, 12, 12, 12);

        table = new PdfPTable(4);
        table.setTotalWidth(550);
        table.setLockedWidth(true);
        table.setWidths(new int[] { 4, 1, 1, 4 });

        headers = new String[] { "Activities", "Current Status", "Trend",
                "Comments (main performance drives)" };
        for (String header : headers) {
            cell = new PdfPCell(new Phrase(header, fontTableColumnHeader));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);
        }

        Image imgArrowUp = getEmbeddedImage(getServletContext(), "/VAADIN/themes/MPSR/img/Arrow_Up.png");
        Image imgArrowDown = getEmbeddedImage(getServletContext(), "/VAADIN/themes/MPSR/img/Arrow_Down.png");
        Image imgArrowEven = getEmbeddedImage(getServletContext(), "/VAADIN/themes/MPSR/img/Arrow_Even.png");
        Image[] images = { imgArrowUp, imgArrowDown, imgArrowEven };
        for (Image image : images) {
            image.scaleToFit(12, 12);
        }

        cellValues = new String[][] {
                { "Project - " + basicInfo.getProjectTitle(), funcPerform.getProjectStatus(),
                        funcPerform.getProjectTrend(), funcPerform.getProjectComment() },
                { "  Target Budget", funcPerform.getTargetBudgetStatus(), funcPerform.getTargetBudgetTrend(),
                        funcPerform.getTargetBudgetComment() },
                { "  Safety", funcPerform.getSafetyStatus(), funcPerform.getSafetyTrend(),
                        funcPerform.getSafetyComment() },
                { "  Licensing & Permitting", funcPerform.getLicensingStatus(), funcPerform.getLicensingTrend(),
                        funcPerform.getLicensingComment() },
                { "  Corporate Properties", funcPerform.getCorporateStatus(), funcPerform.getCorporateTrend(),
                        funcPerform.getCorporateComment() },
                { "  Inside Plant Design & Engineering", funcPerform.getIPDEStatus(),
                        funcPerform.getIPDETrend(), funcPerform.getIPDEComment() },
                { "  Public Outreach", funcPerform.getOutreachStatus(), funcPerform.getOutreachTrend(),
                        funcPerform.getOutreachComment() },
                { "  Procurement", funcPerform.getProcureStatus(), funcPerform.getProcureTrend(),
                        funcPerform.getProcureComment() },
                { "  Construction", funcPerform.getConstructionStatus(), funcPerform.getConstructionTrend(),
                        funcPerform.getConstructionComment() },
                { "  Environmental - Resource Recovery", funcPerform.getEnviromentStatus(),
                        funcPerform.getEnviromentTrend(), funcPerform.getEnviromentComment() },
                { "  Salvage", funcPerform.getSalvageStatus(), funcPerform.getSalvageTrend(),
                        funcPerform.getSalvageComment() },
                { "  Withdrawal", funcPerform.getWithdrawalStatus(), funcPerform.getWithdrawalTrend(),
                        funcPerform.getWithdrawalComment() } };
        for (int i = 0; i < cellValues.length; i++) {
            cell = new PdfPCell(new Phrase(cellValues[i][0]));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            table.addCell(cell);

            cell = new PdfPCell(new Phrase(cellValues[i][1]));
            cell.setBackgroundColor(getBackgroundColor(cellValues[i][1]));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            table.addCell(cell);

            if ("Up".equals(cellValues[i][2])) {
                cell = new PdfPCell(imgArrowUp);
            } else if ("Down".equals(cellValues[i][2])) {
                cell = new PdfPCell(imgArrowDown);
            } else if ("Even".equals(cellValues[i][2])) {
                cell = new PdfPCell(imgArrowEven);
            } else {
                cell = new PdfPCell();
            }

            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);

            cell = new PdfPCell(new Phrase(cellValues[i][3]));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            table.addCell(cell);
        }

        document.add(table);

        // *******************************************************************************************//

        document.setPageSize(DEFAULT_PAGE_SIZE.rotate());
        document.add(Chunk.NEXTPAGE);

        addOutline(outline2, writer, MPSRUI.TREE_1_2_2);
        addSectionTitle(document, MPSRUI.TREE_1_2_2, fontSection2Header, 12, 12, 12);
        addImage(document, MPSRUI.getFilePath(mpsrID, costPerform.getFileName()));

        // *******************************************************************************************//
        // 1.2.3 Schedule Performance
        // *******************************************************************************************//

        document.add(Chunk.NEXTPAGE);

        addOutline(outline2, writer, MPSRUI.TREE_1_2_3);
        addSectionTitle(document, MPSRUI.TREE_1_2_3, fontSection2Header, 12, 12, 12);

        table = new PdfPTable(9);
        table.setTotalWidth(750);
        table.setLockedWidth(true);
        table.setWidths(new int[] { 3, 1, 1, 1, 1, 1, 1, 1, 1 });
        table.setHorizontalAlignment(Element.ALIGN_CENTER);

        headers = new String[] { "WBS", "Original Duration", "Remaining Duration", "Baseline Start Date",
                "Baseline Finish Date", "Start Date", "Finish Date", "Total Float", "Status" };
        for (String header : headers) {
            cell = new PdfPCell(new Phrase(header, fontTableColumnHeaderYellow));
            cell.setBackgroundColor(BaseColor.BLUE);
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);
        }

        for (int i = 0; i < schedulePerform.length; i++) {
            cell = new PdfPCell(new Phrase(schedulePerform[i].getWBS()));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);

            cell = new PdfPCell(new Phrase(Double.toString(schedulePerform[i].getOriginalDuration())));
            cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);

            cell = new PdfPCell(new Phrase(Double.toString(schedulePerform[i].getRemainingDuration())));
            cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);

            cell = new PdfPCell(new Phrase(schedulePerform[i].getPlannedStartDate()));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);

            cell = new PdfPCell(new Phrase(schedulePerform[i].getPlannedFinishDate()));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);

            cell = new PdfPCell(new Phrase(schedulePerform[i].getStartDate()));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);

            cell = new PdfPCell(new Phrase(schedulePerform[i].getFinishDate()));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);

            cell = new PdfPCell(new Phrase(schedulePerform[i].getTotalFloat()));
            cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);

            cell = new PdfPCell(new Phrase(schedulePerform[i].getStatus()));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);
        }

        table.setHeaderRows(1);

        document.add(table);

        // *******************************************************************************************//
        // 1.3 Project Change Control
        // *******************************************************************************************//

        document.setPageSize(DEFAULT_PAGE_SIZE);
        document.add(Chunk.NEXTPAGE);

        outline2 = addOutline(outline1, writer, MPSRUI.TREE_1_3);
        addSectionTitle(document, MPSRUI.TREE_1_3, fontSection1Header, 6, 12, 12);

        addOutline(outline2, writer, MPSRUI.TREE_1_3_1);
        addSectionTitle(document, MPSRUI.TREE_1_3_1, fontSection2Header, 12, 12, 0);
        addParagraph(document, writer, xmlWorker, exeSummary.getDesc_1_3_1(), fontNormal, 12, 0, 12);

        addOutline(outline2, writer, MPSRUI.TREE_1_3_2);
        addSectionTitle(document, MPSRUI.TREE_1_3_2, fontSection2Header, 12, 12, 0);
        addParagraph(document, writer, xmlWorker, exeSummary.getDesc_1_3_2(), fontNormal, 12, 0, 12);

        // *******************************************************************************************//
        // 2 Safety
        // *******************************************************************************************//

        addOutline(root, writer, MPSRUI.TREE_2);
        addSectionTitle(document, MPSRUI.TREE_2, fontChapterHeader, 0, 24, 12);
        addParagraph(document, writer, xmlWorker, safety.getDesc1(), fontNormal, 12, 0, 12);

        paragraph = new Paragraph("Table 2.1 Project Safety Summary", fontTableCaption);
        paragraph.setAlignment(Element.ALIGN_CENTER);
        paragraph.setSpacingAfter(6);
        document.add(paragraph);

        table = new PdfPTable(3);
        table.setTotalWidth(300);
        table.setLockedWidth(true);
        table.setWidths(new int[] { 1, 1, 1 });
        table.setHorizontalAlignment(Element.ALIGN_RIGHT);

        cell = new PdfPCell(new Phrase("Total Work Hours", fontTableColumnHeaderYellow));
        cell.setColspan(3);
        cell.setBackgroundColor(BaseColor.BLUE);
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
        table.addCell(cell);

        headers = new String[] { "Current Period", "Calendar YTD", "Project To Date" };
        for (String header : headers) {
            cell = new PdfPCell(new Phrase(header, fontTableColumnHeader));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);
        }

        cellValues = new String[][] { { INTEGER_FORMATTER.format(safety.getTotalWorkHoursCurrent()),
                INTEGER_FORMATTER.format(safety.getTotalWorkHoursYTD()),
                INTEGER_FORMATTER.format(safety.getTotalWorkHoursPTD()) } };
        for (int i = 0; i < cellValues.length; i++) {
            cell = new PdfPCell(new Phrase(cellValues[i][0]));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);

            cell = new PdfPCell(new Phrase(cellValues[i][1]));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);

            cell = new PdfPCell(new Phrase(cellValues[i][2], fontTableCellBold));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);
        }

        document.add(table);

        // -----------------------------------

        table = new PdfPTable(4);
        table.setTotalWidth(500);
        table.setLockedWidth(true);
        table.setWidths(new int[] { 2, 1, 1, 1 });
        table.setHorizontalAlignment(Element.ALIGN_RIGHT);

        cell = new PdfPCell(new Phrase("Incidents", fontTableColumnHeaderYellow));
        cell.setColspan(4);
        cell.setBackgroundColor(BaseColor.BLUE);
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
        table.addCell(cell);

        cellValues = new String[][] {
                { "OSHA Recordable", INTEGER_FORMATTER.format(safety.getOshaRecordableCurrent()),
                        INTEGER_FORMATTER.format(safety.getOshaRecordableYTD()),
                        INTEGER_FORMATTER.format(safety.getOshaRecordablePTD()) },
                { "First Aid", INTEGER_FORMATTER.format(safety.getFirstAid1Current()),
                        INTEGER_FORMATTER.format(safety.getFirstAid1YTD()),
                        INTEGER_FORMATTER.format(safety.getFirstAid1PTD()) },
                { "Near Miss", INTEGER_FORMATTER.format(safety.getNearMissCurrent()),
                        INTEGER_FORMATTER.format(safety.getNearMissYTD()),
                        INTEGER_FORMATTER.format(safety.getNearMissPTD()) },
                { "First Aid", INTEGER_FORMATTER.format(safety.getFirstAid2Current()),
                        INTEGER_FORMATTER.format(safety.getFirstAid2YTD()),
                        INTEGER_FORMATTER.format(safety.getFirstAid2PTD()) } };
        for (int i = 0; i < cellValues.length; i++) {
            cell = new PdfPCell(new Phrase(cellValues[i][0], fontTableRowTitle));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);

            cell = new PdfPCell(new Phrase(cellValues[i][1]));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);

            cell = new PdfPCell(new Phrase(cellValues[i][2]));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);

            cell = new PdfPCell(new Phrase(cellValues[i][3], fontTableCellBold));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);
        }

        cell = new PdfPCell(new Phrase("*Note - " + safety.getNote(), fontTableNote));
        cell.setColspan(4);
        cell.setHorizontalAlignment(Element.ALIGN_LEFT);
        cell.setVerticalAlignment(Element.ALIGN_TOP);
        table.addCell(cell);

        document.add(table);

        // *******************************************************************************************//
        // 3 Project Authorization
        // *******************************************************************************************//

        addOutline(root, writer, MPSRUI.TREE_3);
        addSectionTitle(document, MPSRUI.TREE_3, fontChapterHeader, 0, 24, 12);
        addParagraph(document, writer, xmlWorker, auth.getDesc1(), fontNormal, 12, 0, 12);

        table = new PdfPTable(10);
        table.setSpacingBefore(6);
        table.setTotalWidth(550);
        table.setLockedWidth(true);
        table.setWidths(new int[] { 3, 1, 1, 1, 1, 1, 1, 2, 1, 1 });
        table.setHorizontalAlignment(Element.ALIGN_CENTER);

        headers = new String[] { "$ Millions", "Prior", auth.getHeaderYear0(), auth.getHeaderYear1(),
                auth.getHeaderYear2(), auth.getHeaderYear3(), auth.getHeaderYear4(), auth.getHeaderPostYear(),
                "Total", "Auth" };
        for (String header : headers) {
            cell = new PdfPCell(new Phrase(header, fontTableColumnHeader));
            cell.setBackgroundColor(BaseColor.YELLOW);
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);
        }

        cellValues = new String[][] { { "Base", NUMBER_FORMATTER.format(auth.getBasePriorYear()),
                NUMBER_FORMATTER.format(auth.getBaseYear0()), NUMBER_FORMATTER.format(auth.getBaseYear1()),
                NUMBER_FORMATTER.format(auth.getBaseYear2()), NUMBER_FORMATTER.format(auth.getBaseYear3()),
                NUMBER_FORMATTER.format(auth.getBaseYear4()), NUMBER_FORMATTER.format(auth.getBasePostYear()),
                NUMBER_FORMATTER.format(auth.getBaseTotal()), "" },
                { "Risk & Contingency", NUMBER_FORMATTER.format(auth.getRnCPriorYear()),
                        NUMBER_FORMATTER.format(auth.getRnCYear0()),
                        NUMBER_FORMATTER.format(auth.getRnCYear1()),
                        NUMBER_FORMATTER.format(auth.getRnCYear2()),
                        NUMBER_FORMATTER.format(auth.getRnCYear3()),
                        NUMBER_FORMATTER.format(auth.getRnCYear4()),
                        NUMBER_FORMATTER.format(auth.getRnCPostYear()),
                        NUMBER_FORMATTER.format(auth.getRnCTotal()), "" },
                { "Total Project " + auth.getTotalProjectDate(), NUMBER_FORMATTER.format(auth.getPriorTotal()),
                        NUMBER_FORMATTER.format(auth.getYear0Total()),
                        NUMBER_FORMATTER.format(auth.getYear1Total()),
                        NUMBER_FORMATTER.format(auth.getYear2Total()),
                        NUMBER_FORMATTER.format(auth.getYear3Total()),
                        NUMBER_FORMATTER.format(auth.getYear4Total()),
                        NUMBER_FORMATTER.format(auth.getPostTotal()),
                        NUMBER_FORMATTER.format(auth.getTotalTotal()), "" },
                { "Current Request " + auth.getReq0RequestDate(),
                        NUMBER_FORMATTER.format(auth.getReq0PriorYear()),
                        NUMBER_FORMATTER.format(auth.getReq0Year0()),
                        NUMBER_FORMATTER.format(auth.getReq0Year1()),
                        NUMBER_FORMATTER.format(auth.getReq0Year2()),
                        NUMBER_FORMATTER.format(auth.getReq0Year3()),
                        NUMBER_FORMATTER.format(auth.getReq0Year4()),
                        NUMBER_FORMATTER.format(auth.getReq0PostYear()),
                        NUMBER_FORMATTER.format(auth.getReq0Total()),
                        NUMBER_FORMATTER.format(auth.getReq0Authorization()) },
                { "Request Date " + auth.getReq1RequestDate(), NUMBER_FORMATTER.format(auth.getReq1PriorYear()),
                        NUMBER_FORMATTER.format(auth.getReq1Year0()),
                        NUMBER_FORMATTER.format(auth.getReq1Year1()),
                        NUMBER_FORMATTER.format(auth.getReq1Year2()),
                        NUMBER_FORMATTER.format(auth.getReq1Year3()),
                        NUMBER_FORMATTER.format(auth.getReq1Year4()),
                        NUMBER_FORMATTER.format(auth.getReq1PostYear()),
                        NUMBER_FORMATTER.format(auth.getReq1Total()),
                        NUMBER_FORMATTER.format(auth.getReq1Authorization()) },
                { "Request Date " + auth.getReq2RequestDate(), NUMBER_FORMATTER.format(auth.getReq2PriorYear()),
                        NUMBER_FORMATTER.format(auth.getReq2Year0()),
                        NUMBER_FORMATTER.format(auth.getReq2Year1()),
                        NUMBER_FORMATTER.format(auth.getReq2Year2()),
                        NUMBER_FORMATTER.format(auth.getReq2Year3()),
                        NUMBER_FORMATTER.format(auth.getReq2Year4()),
                        NUMBER_FORMATTER.format(auth.getReq2PostYear()),
                        NUMBER_FORMATTER.format(auth.getReq2Total()),
                        NUMBER_FORMATTER.format(auth.getReq2Authorization()) },
                { "Target Budget", "", "", "", "", "", "", "", auth.getTargetBudget(), "" } };
        for (int i = 0; i < cellValues.length; i++) {

            cell = new PdfPCell(new Phrase(cellValues[i][0]));
            cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);

            for (int j = 1; j < cellValues[i].length; j++) {
                cell = new PdfPCell(new Phrase(cellValues[i][j]));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
                table.addCell(cell);
            }
        }

        document.add(table);

        // *******************************************************************************************//
        // 4 Project Budget
        // *******************************************************************************************//

        addOutline(root, writer, MPSRUI.TREE_4);
        addSectionTitle(document, MPSRUI.TREE_4, fontChapterHeader, 0, 24, 12);
        addParagraph(document, writer, xmlWorker, budget.getDesc1(), fontNormal, 12, 0, 12);

        table = new PdfPTable(2);
        table.setSpacingBefore(6);
        table.setTotalWidth(350);
        table.setLockedWidth(true);
        table.setWidths(new int[] { 5, 2 });
        table.setHorizontalAlignment(Element.ALIGN_CENTER);

        cellValues = new String[][] {
                { "Current Approved Budget (Base + RnC)",
                        CURRENCY_FORMATTER.format(budget.getPMBudget()) + "M" },
                { "Approved Phase Funding", CURRENCY_FORMATTER.format(budget.getPMActual()) + "M" },
                { "Expended To Date", CURRENCY_FORMATTER.format(budget.getPMCommitment()) + "M" },
                { "At Completion", CURRENCY_FORMATTER.format(budget.getPMAdditionalCost()) + "M" } };
        for (int i = 0; i < cellValues.length; i++) {
            cell = new PdfPCell(new Phrase(cellValues[i][0]));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);

            cell = new PdfPCell(new Phrase(cellValues[i][1]));
            cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);
        }

        document.add(table);

        // ----------------------------------------------------
        // table 4.1
        // ----------------------------------------------------

        paragraph = new Paragraph("Table 4.1 Cost Report Summary", fontTableCaption);
        paragraph.setAlignment(Element.ALIGN_CENTER);
        paragraph.setSpacingAfter(6);
        document.add(paragraph);

        table = new PdfPTable(5);
        table.setTotalWidth(500);
        table.setLockedWidth(true);
        table.setWidths(new int[] { 1, 1, 1, 1, 1 });
        table.setHorizontalAlignment(Element.ALIGN_CENTER);

        headers = new String[] { "Work Element", "Description", "Estimate", "Actual", "EAC" };
        for (String header : headers) {
            cell = new PdfPCell(new Phrase(header, fontTableColumnHeaderYellow));
            cell.setBackgroundColor(BaseColor.BLUE);
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);
        }

        for (int i = 0; i < costRpt.length; i++) {
            cell = new PdfPCell(new Phrase(costRpt[i].getWbs()));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);

            cell = new PdfPCell(new Phrase(costRpt[i].getWbsDesc()));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);

            cell = new PdfPCell(new Phrase(formatNumberString(costRpt[i].getEstimate())));
            cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);

            cell = new PdfPCell(new Phrase(formatNumberString(costRpt[i].getActual())));
            cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);

            cell = new PdfPCell(new Phrase(formatNumberString(costRpt[i].getEAC())));
            cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);
        }

        document.add(table);

        // *******************************************************************************************//
        // 5 Project Schedule
        // *******************************************************************************************//

        outline1 = addOutline(root, writer, MPSRUI.TREE_5);
        addSectionTitle(document, MPSRUI.TREE_5, fontChapterHeader, 0, 24, 12);

        addOutline(outline1, writer, MPSRUI.TREE_5_1);
        addSectionTitle(document, MPSRUI.TREE_5_1, fontSection1Header, 6, 12, 12);
        addParagraph(document, writer, xmlWorker, schedule.getDesc_5_1(), fontNormal, 12, 0, 12);

        addOutline(outline1, writer, MPSRUI.TREE_5_2);
        addSectionTitle(document, MPSRUI.TREE_5_2, fontSection1Header, 6, 12, 12);
        addParagraph(document, writer, xmlWorker, schedule.getDesc_5_2(), fontNormal, 12, 0, 12);

        addOutline(outline1, writer, MPSRUI.TREE_5_3);
        addSectionTitle(document, MPSRUI.TREE_5_3, fontSection1Header, 6, 12, 12);
        addParagraph(document, writer, xmlWorker, schedule.getDesc_5_3(), fontNormal, 12, 0, 12);

        addOutline(outline1, writer, MPSRUI.TREE_5_4);
        addSectionTitle(document, MPSRUI.TREE_5_4, fontSection1Header, 6, 12, 12);
        addParagraph(document, writer, xmlWorker, schedule.getDesc_5_4(), fontNormal, 12, 0, 12);

        // ----------------------------------------------------
        // table 5.1
        // ----------------------------------------------------

        paragraph = new Paragraph("Table 5.1 Planned Scorecard Milestones", fontTableCaption);
        paragraph.setAlignment(Element.ALIGN_CENTER);
        paragraph.setSpacingAfter(6);
        document.add(paragraph);

        table = new PdfPTable(3);
        table.setTotalWidth(500);
        table.setLockedWidth(true);
        table.setWidths(new int[] { 3, 1, 1 });
        table.setHorizontalAlignment(Element.ALIGN_CENTER);

        headers = new String[] { "Milestone", "Planned Date", "Finish Date" };
        for (String header : headers) {
            cell = new PdfPCell(new Phrase(header, fontTableColumnHeaderYellow));
            cell.setBackgroundColor(BaseColor.BLUE);
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);
        }

        for (int i = 0; i < milestones.length; i++) {
            cell = new PdfPCell(new Phrase(milestones[i].getMilestone()));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);

            cell = new PdfPCell(new Phrase(milestones[i].getPlannedDate()));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);

            cell = new PdfPCell(new Phrase(milestones[i].getFinishDate()));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);
        }

        document.add(table);

        // *******************************************************************************************//
        // 6 License & Permitting, and Environmental Status
        // *******************************************************************************************//

        outline1 = addOutline(root, writer, MPSRUI.TREE_6);
        addSectionTitle(document, MPSRUI.TREE_6, fontChapterHeader, 0, 24, 12);

        addOutline(outline1, writer, MPSRUI.TREE_6_1);
        addSectionTitle(document, MPSRUI.TREE_6_1, fontSection1Header, 6, 12, 12);
        addParagraph(document, writer, xmlWorker, lpe.getDesc_6_1(), fontNormal, 12, 0, 12);

        outline2 = addOutline(outline1, writer, MPSRUI.TREE_6_2);
        addSectionTitle(document, MPSRUI.TREE_6_2, fontSection1Header, 6, 12, 12);

        addOutline(outline2, writer, MPSRUI.TREE_6_2_1);
        addSectionTitle(document, MPSRUI.TREE_6_2_1, fontSection2Header, 12, 12, 12);
        addParagraph(document, writer, xmlWorker, lpe.getDesc_6_2_1(), fontNormal, 12, 0, 12);

        addOutline(outline2, writer, MPSRUI.TREE_6_2_2);
        addSectionTitle(document, MPSRUI.TREE_6_2_2, fontSection2Header, 12, 12, 12);
        addParagraph(document, writer, xmlWorker, lpe.getDesc_6_2_2(), fontNormal, 12, 0, 12);

        // *******************************************************************************************//
        // 7 Engineering Status
        // *******************************************************************************************//

        outline1 = addOutline(root, writer, MPSRUI.TREE_7);
        addSectionTitle(document, MPSRUI.TREE_7, fontChapterHeader, 0, 24, 12);

        addOutline(outline1, writer, MPSRUI.TREE_7_1);
        addSectionTitle(document, MPSRUI.TREE_7_1, fontSection1Header, 6, 12, 12);

        table = new PdfPTable(5);
        table.setTotalWidth(500);
        table.setLockedWidth(true);
        table.setWidths(new int[] { 2, 1, 1, 1, 3 });
        table.setHorizontalAlignment(Element.ALIGN_CENTER);

        headers = new String[] { "Package", "IFR", "IFC", "Indicator", "Note" };
        for (String header : headers) {
            cell = new PdfPCell(new Phrase(header, fontTableColumnHeaderYellow));
            cell.setBackgroundColor(BaseColor.BLUE);
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);
        }

        for (int i = 0; i < ipds.length; i++) {
            cell = new PdfPCell(new Phrase(ipds[i].getPackage()));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            cell.setVerticalAlignment(Element.ALIGN_TOP);
            table.addCell(cell);

            cell = new PdfPCell(new Phrase(ipds[i].getIFR()));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            cell.setVerticalAlignment(Element.ALIGN_TOP);
            table.addCell(cell);

            cell = new PdfPCell(new Phrase(ipds[i].getIFC()));
            cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
            cell.setVerticalAlignment(Element.ALIGN_TOP);
            table.addCell(cell);

            cell = new PdfPCell(new Phrase(ipds[i].getIndicator()));
            cell.setBackgroundColor(getBackgroundColor(ipds[i].getIndicator()));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell.setVerticalAlignment(Element.ALIGN_TOP);
            table.addCell(cell);

            cell = new PdfPCell(new Phrase(ipds[i].getNote()));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            cell.setVerticalAlignment(Element.ALIGN_TOP);
            table.addCell(cell);
        }

        document.add(table);

        // -----------------------------------------------------------------------------------//

        addOutline(outline1, writer, MPSRUI.TREE_7_2);
        addSectionTitle(document, MPSRUI.TREE_7_2, fontSection1Header, 6, 12, 12);

        table = new PdfPTable(5);
        table.setTotalWidth(500);
        table.setLockedWidth(true);
        table.setWidths(new int[] { 2, 1, 1, 1, 3 });
        table.setHorizontalAlignment(Element.ALIGN_CENTER);

        headers = new String[] { "Package", "IFR", "IFC", "Indicator", "Note" };
        for (String header : headers) {
            cell = new PdfPCell(new Phrase(header, fontTableColumnHeaderYellow));
            cell.setBackgroundColor(BaseColor.BLUE);
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);
        }

        for (int i = 0; i < opds.length; i++) {
            cell = new PdfPCell(new Phrase(opds[i].getPackage()));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            cell.setVerticalAlignment(Element.ALIGN_TOP);
            table.addCell(cell);

            cell = new PdfPCell(new Phrase(opds[i].getIFR()));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            cell.setVerticalAlignment(Element.ALIGN_TOP);
            table.addCell(cell);

            cell = new PdfPCell(new Phrase(opds[i].getIFC()));
            cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
            cell.setVerticalAlignment(Element.ALIGN_TOP);
            table.addCell(cell);

            cell = new PdfPCell(new Phrase(opds[i].getIndicator()));
            cell.setBackgroundColor(getBackgroundColor(opds[i].getIndicator()));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell.setVerticalAlignment(Element.ALIGN_TOP);
            table.addCell(cell);

            cell = new PdfPCell(new Phrase(opds[i].getNote()));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            cell.setVerticalAlignment(Element.ALIGN_TOP);
            table.addCell(cell);
        }

        document.add(table);

        // *******************************************************************************************//
        // 8 Procurement Status
        // *******************************************************************************************//

        outline1 = addOutline(root, writer, MPSRUI.TREE_8);
        addSectionTitle(document, MPSRUI.TREE_8, fontChapterHeader, 0, 24, 12);

        outline2 = addOutline(outline1, writer, MPSRUI.TREE_8_1);
        addSectionTitle(document, MPSRUI.TREE_8_1, fontSection1Header, 6, 12, 12);

        table = new PdfPTable(2);
        table.setTotalWidth(300);
        table.setLockedWidth(true);
        table.setWidths(new int[] { 1, 1 });
        table.setHorizontalAlignment(Element.ALIGN_CENTER);

        cellValues = new String[][] {
                { "Receipted to Date", CURRENCY_FORMATTER.format(procure.getReceiptedToDate()) },
                { "Open Commitments", CURRENCY_FORMATTER.format(procure.getOpenCommitment()) },
                { "Total", CURRENCY_FORMATTER.format(procure.getTotalPurchaseOrder()) } };
        for (int i = 0; i < cellValues.length; i++) {
            cell = new PdfPCell(new Phrase(cellValues[i][0]));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);

            cell = new PdfPCell(new Phrase(cellValues[i][1]));
            cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);
        }

        document.add(table);

        addParagraph(document, writer, xmlWorker, procure.getDesc_8_1_B(), fontNormal, 12, 12, 12);

        outline2 = addOutline(outline1, writer, MPSRUI.TREE_8_2);
        addSectionTitle(document, MPSRUI.TREE_8_2, fontSection1Header, 6, 12, 12);

        // ----------------------------------------------------
        // section 8.2.1
        // ----------------------------------------------------

        addOutline(outline2, writer, MPSRUI.TREE_8_2_1);
        addSectionTitle(document, MPSRUI.TREE_8_2_1, fontSection2Header, 12, 12, 12);
        addParagraph(document, writer, xmlWorker, procure.getDesc_8_2_1(), fontNormal, 12, 0, 12);

        table = new PdfPTable(6);
        table.setTotalWidth(550);
        table.setLockedWidth(true);
        table.setWidths(new int[] { 1, 2, 1, 1, 2, 1 });
        table.setHorizontalAlignment(Element.ALIGN_CENTER);

        headers = new String[] { "Purchase Order", "Vendor", "Previous Amount", "This Month Amount",
                "This Month Description", "Total Amount" };
        for (String header : headers) {
            cell = new PdfPCell(new Phrase(header, fontPOTableHeader));
            cell.setBackgroundColor(BaseColor.BLUE);
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);
        }

        double totalToDate = 0;

        for (int i = 0; i < approvedChanges.length; i++) {
            cell = new PdfPCell(new Phrase(approvedChanges[i].getPurchaseOrder(), fontPOTable));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            cell.setVerticalAlignment(Element.ALIGN_TOP);
            table.addCell(cell);

            cell = new PdfPCell(new Phrase(approvedChanges[i].getVendor(), fontPOTable));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            cell.setVerticalAlignment(Element.ALIGN_TOP);
            table.addCell(cell);

            cell = new PdfPCell(
                    new Phrase(CURRENCY_FORMATTER.format(approvedChanges[i].getPreviousAmount()), fontPOTable));
            cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
            cell.setVerticalAlignment(Element.ALIGN_TOP);
            table.addCell(cell);

            cell = new PdfPCell(new Phrase(CURRENCY_FORMATTER.format(approvedChanges[i].getThisMonthAmount()),
                    fontPOTable));
            cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
            cell.setVerticalAlignment(Element.ALIGN_TOP);
            table.addCell(cell);

            cell = new PdfPCell(new Phrase(approvedChanges[i].getThisMonthDescription(), fontPOTable));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            cell.setVerticalAlignment(Element.ALIGN_TOP);
            table.addCell(cell);

            cell = new PdfPCell(
                    new Phrase(CURRENCY_FORMATTER.format(approvedChanges[i].getTotalAmount()), fontPOTable));
            cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
            cell.setVerticalAlignment(Element.ALIGN_TOP);
            table.addCell(cell);

            totalToDate += approvedChanges[i].getTotalAmount();
        }

        document.add(table);

        table = new PdfPTable(2);
        table.setTotalWidth(550);
        table.setLockedWidth(true);
        table.setWidths(new int[] { 7, 1 });
        table.setHorizontalAlignment(Element.ALIGN_CENTER);

        cell = new PdfPCell(new Phrase("Total To Date", fontPOTableSummary));
        cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
        cell.setVerticalAlignment(Element.ALIGN_TOP);
        table.addCell(cell);

        cell = new PdfPCell(new Phrase(CURRENCY_FORMATTER.format(totalToDate), fontPOTableSummary));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        cell.setVerticalAlignment(Element.ALIGN_TOP);
        table.addCell(cell);

        document.add(table);

        // ----------------------------------------------------
        // section 8.2.2
        // ----------------------------------------------------

        addOutline(outline2, writer, MPSRUI.TREE_8_2_2);
        addSectionTitle(document, MPSRUI.TREE_8_2_2, fontSection2Header, 12, 12, 12);
        addParagraph(document, writer, xmlWorker, procure.getDesc_8_2_2(), fontNormal, 12, 0, 12);

        table = new PdfPTable(6);
        table.setTotalWidth(550);
        table.setLockedWidth(true);
        table.setWidths(new int[] { 1, 2, 1, 1, 2, 1 });
        table.setHorizontalAlignment(Element.ALIGN_CENTER);

        headers = new String[] { "Purchase Order", "Vendor", "Previous Amount", "This Month Amount",
                "This Month Description", "Total Amount" };
        for (String header : headers) {
            cell = new PdfPCell(new Phrase(header, fontPOTableHeader));
            cell.setBackgroundColor(BaseColor.BLUE);
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);
        }

        totalToDate = 0;

        for (int i = 0; i < pendingChanges.length; i++) {
            cell = new PdfPCell(new Phrase(pendingChanges[i].getPurchaseOrder(), fontPOTable));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            cell.setVerticalAlignment(Element.ALIGN_TOP);
            table.addCell(cell);

            cell = new PdfPCell(new Phrase(pendingChanges[i].getVendor(), fontPOTable));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            cell.setVerticalAlignment(Element.ALIGN_TOP);
            table.addCell(cell);

            cell = new PdfPCell(
                    new Phrase(CURRENCY_FORMATTER.format(pendingChanges[i].getPreviousAmount()), fontPOTable));
            cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
            cell.setVerticalAlignment(Element.ALIGN_TOP);
            table.addCell(cell);

            cell = new PdfPCell(
                    new Phrase(CURRENCY_FORMATTER.format(pendingChanges[i].getThisMonthAmount()), fontPOTable));
            cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
            cell.setVerticalAlignment(Element.ALIGN_TOP);
            table.addCell(cell);

            cell = new PdfPCell(new Phrase(pendingChanges[i].getThisMonthDescription(), fontPOTable));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            cell.setVerticalAlignment(Element.ALIGN_TOP);
            table.addCell(cell);

            cell = new PdfPCell(
                    new Phrase(CURRENCY_FORMATTER.format(pendingChanges[i].getTotalAmount()), fontPOTable));
            cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
            cell.setVerticalAlignment(Element.ALIGN_TOP);
            table.addCell(cell);

            totalToDate += pendingChanges[i].getTotalAmount();
        }

        document.add(table);

        table = new PdfPTable(2);
        table.setTotalWidth(550);
        table.setLockedWidth(true);
        table.setWidths(new int[] { 7, 1 });
        table.setHorizontalAlignment(Element.ALIGN_CENTER);

        cell = new PdfPCell(new Phrase("Total To Date", fontPOTableSummary));
        cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
        cell.setVerticalAlignment(Element.ALIGN_TOP);
        table.addCell(cell);

        cell = new PdfPCell(new Phrase(CURRENCY_FORMATTER.format(totalToDate), fontPOTableSummary));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        cell.setVerticalAlignment(Element.ALIGN_TOP);
        table.addCell(cell);

        document.add(table);

        // *******************************************************************************************//
        // 9 Construction Status
        // *******************************************************************************************//

        outline1 = addOutline(root, writer, MPSRUI.TREE_9);
        addSectionTitle(document, MPSRUI.TREE_9, fontChapterHeader, 0, 24, 12);

        addOutline(outline1, writer, MPSRUI.TREE_9_1);
        addSectionTitle(document, MPSRUI.TREE_9_1, fontSection1Header, 6, 12, 12);

        for (int i = 0; i < ipcs.length; i++) {
            addParagraph(document, writer, xmlWorker, ipcs[i].getWork(), fontWork, 12, 12, 0);
            addParagraph(document, writer, xmlWorker, ipcs[i].getDescription(), fontNormal, 12, 0, 0);
            addImage(document, MPSRUI.getFilePath(mpsrID, ipcs[i].getFileName()),
                    "Figure " + ipcs[i].getFigure() + " " + ipcs[i].getTitle(), fontImageCaption, 12, 3, 12);
        }

        // -----------------------------------------------------------------------------------------//

        addOutline(outline1, writer, MPSRUI.TREE_9_2);
        addSectionTitle(document, MPSRUI.TREE_9_2, fontSection1Header, 6, 12, 12);

        for (int i = 0; i < opcs.length; i++) {
            addParagraph(document, writer, xmlWorker, opcs[i].getWork(), fontWork, 12, 12, 0);
            addParagraph(document, writer, xmlWorker, opcs[i].getDescription(), fontNormal, 12, 0, 0);
            addImage(document, MPSRUI.getFilePath(mpsrID, opcs[i].getFileName()),
                    "Figure " + opcs[i].getFigure() + " " + opcs[i].getTitle(), fontImageCaption, 12, 3, 12);
        }

        // *******************************************************************************************//
        // Appendix
        // *******************************************************************************************//

        if (appendixs.length > 0) {

            document.add(Chunk.NEXTPAGE);
            outline1 = addOutline(root, writer, MPSRUI.TREE_APPENDIX);

            for (int i = 0; i < appendixs.length; i++) {
                addOutline(outline1, writer,
                        "Appendix " + appendixs[i].getNumber() + "  " + appendixs[i].getTitle());
                addSectionTitle(document,
                        "Appendix " + appendixs[i].getNumber() + "  " + appendixs[i].getTitle(),
                        fontChapterHeader, 0, 12, 12);
                addParagraph(document, writer, xmlWorker, appendixs[i].getDescription(), fontNormal, 12, 0, 0);

                importPages(document, writer, mpsrID, appendixs[i].getFileName());
            }
        }

        // *******************************************************************************************//
        // Attachment
        // *******************************************************************************************//

        if (attachments.length > 0) {

            document.setPageSize(DEFAULT_PAGE_SIZE);
            document.add(Chunk.NEXTPAGE);
            outline1 = addOutline(root, writer, MPSRUI.TREE_ATTACHMENT);

            for (int i = 0; i < attachments.length; i++) {
                addOutline(outline1, writer,
                        "Attachment " + attachments[i].getNumber() + "  " + attachments[i].getTitle());
                addSectionTitle(document,
                        "Attachment " + attachments[i].getNumber() + "  " + attachments[i].getTitle(),
                        fontChapterHeader, 0, 12, 12);
                addParagraph(document, writer, xmlWorker, attachments[i].getDescription(), fontNormal, 12, 0,
                        0);

                importPages(document, writer, mpsrID, attachments[i].getFileName());
            }
        }

        document.close();

        // *******************************************************************************************//

        // retrieve outline
        PdfReader readerOrig = new PdfReader(baosOrig.toByteArray());
        // int origNumberOfPages = readerOrig.getNumberOfPages();
        ColumnText ct = new ColumnText(null);
        ct.addElement(new Paragraph("Table of Contents", fontCoverTitle));
        List<HashMap<String, Object>> bookmarkList = SimpleBookmark.getBookmark(readerOrig);
        fillColumnText(bookmarkList, ct, 18, 0, fontSection2Header);

        // generate TOC after cover page
        ByteArrayOutputStream baosTOC = new ByteArrayOutputStream();
        PdfStamper stamperTOC = new PdfStamper(readerOrig, baosTOC);
        int tocPageEnd = 1;
        while (true) {
            stamperTOC.insertPage(++tocPageEnd, readerOrig.getPageSize(1));

            PdfContentByte underContent = stamperTOC.getUnderContent(tocPageEnd);

            generatePageHeader(document, underContent, icon, headerTexts);

            ct.setCanvas(stamperTOC.getOverContent(tocPageEnd));
            ct.setSimpleColumn(36, 36, 558, 693);
            if (!ColumnText.hasMoreText(ct.go()))
                break;
        }
        stamperTOC.close();

        // change page labels
        PdfPageLabels labels = new PdfPageLabels();
        labels.addPageLabel(1, PdfPageLabels.LOWERCASE_ROMAN_NUMERALS);
        labels.addPageLabel(tocPageEnd + 1, PdfPageLabels.DECIMAL_ARABIC_NUMERALS);

        // add labels
        ByteArrayOutputStream baosFinal = new ByteArrayOutputStream();
        PdfReader readerTOC = new PdfReader(baosTOC.toByteArray());
        // String selectPages = String.format("1-%s,%s-%s", tocPageEnd,
        // tocPageEnd + 1, origNumberOfPages + (tocPageEnd - 1));
        // readerTOC.selectPages(selectPages);
        PdfStamper stamperFinal = new PdfStamper(readerTOC, baosFinal);
        stamperFinal.getWriter().setPageLabels(labels);
        stamperFinal.close();

        // *******************************************************************************************//

        // send final PDF to browser
        response.setHeader("Expires", "0");
        response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
        response.setHeader("Pragma", "public");
        response.setContentType("application/pdf");
        response.setContentLength(baosFinal.size());

        OutputStream os = response.getOutputStream();
        os.write(baosFinal.toByteArray());
        os.flush();
        os.close();

    } catch (DocumentException e) {
        e.printStackTrace();
    }

}

From source file:com.leenmeij.app.utils.CreatePdf.java

/**
 * Creates the document/*from  ww  w .j a v a2s.  co m*/
 * @param invoice
 */
public void createPdf(Invoice invoice) {
    // Declare a document
    Document document = new Document();
    try {
        // Create an instance
        PdfWriter.getInstance(document, new FileOutputStream(
                fileLocation + invoice.getStartdate() + "-" + invoice.getReservation_id() + ".pdf"));
        // Create the document
        document.open();
        // Add the content
        contentPage(document, invoice);
        // Close the document
        document.close();
    } catch (FileNotFoundException | DocumentException e) {
        e.printStackTrace();
    }
}

From source file:com.linksinnovation.elearning.utils.ppt2pdf.Ppt2Pdf.java

public static void convert(FileInputStream inputStream, FileOutputStream out)
        throws IOException, DocumentException {
    XMLSlideShow ppt = new XMLSlideShow(inputStream);
    inputStream.close();/*from  w w  w .  ja  v a  2  s .  co  m*/
    Dimension pgsize = ppt.getPageSize();

    Document document = new Document();
    PdfWriter pdfWriter = PdfWriter.getInstance(document, out);
    document.setPageSize(new Rectangle((float) pgsize.getWidth(), (float) pgsize.getHeight()));
    document.open();
    for (XSLFSlide slide : ppt.getSlides()) {
        System.out.println(pgsize.getWidth() + " " + pgsize.getHeight());
        PdfGraphics2D graphics = (PdfGraphics2D) pdfWriter.getDirectContent()
                .createGraphics((float) pgsize.getWidth(), (float) pgsize.getHeight());
        slide.draw(graphics);
        graphics.dispose();
        document.newPage();
    }
    document.close();
}

From source file:com.masscustsoft.service.ToPdf.java

License:Open Source License

private void createPdf(Map rpt, Map<String, String> i18n, File pdf) throws Exception {
    OutputStream out = new FileOutputStream(pdf);

    ThreadHelper.set("_fonts_", new HashMap<String, BaseFont>());
    ThreadHelper.set("_defaultFont_", BaseFont.createFont());

    String pageSize = MapUtil.getStr(rpt, "pageSize", "A4");
    int defaultFontSize = MapUtil.getInt(rpt, "defaultFontSize", 6);
    ThreadHelper.set("_defaultFontSize_", defaultFontSize);
    ThreadHelper.set("_rpt_", rpt);

    int i = pageSize.indexOf(';');
    String margins = "36 36 36 36";
    if (i > 0) {
        margins = pageSize.substring(i + 1);
        pageSize = pageSize.substring(0, i);
    }//from  w w w. ja v  a 2  s.c o  m
    boolean rotate = false;
    if (pageSize.startsWith("@")) {
        rotate = true;
        pageSize = pageSize.substring(1);
    }
    Rectangle pSize = PageSize.getRectangle(pageSize);
    if (rotate)
        pSize = pSize.rotate();

    String mars[] = margins.split(" ");
    float ml = 0, mt = 0, mr = 0, mb = 0;
    mr = mt = mb = ml = LightUtil.decodeFloat(mars[0]);
    if (mars.length > 1) {
        mt = mb = LightUtil.decodeFloat(mars[1]);
    }
    if (mars.length > 2) {
        mr = LightUtil.decodeFloat(mars[2]);
    }
    if (mars.length > 3) {
        mb = LightUtil.decodeFloat(mars[3]);
    }
    Document doc = new Document(pSize, ml, mr, mt, mb);
    MapUtil.setIfStr(rpt, "author", doc, "addAuthor");
    MapUtil.setIfStr(rpt, "creator", doc, "addCreator");
    MapUtil.setIfStr(rpt, "title", doc, "addTitle");
    MapUtil.setIfStr(rpt, "keyWords", doc, "addKeywords");
    MapUtil.setIfStr(rpt, "subject", doc, "addSubject");

    PdfWriter writer = PdfWriter.getInstance(doc, out);
    writer.setPageEvent(this);
    writer.setStrictImageSequence(true);
    ThreadHelper.set("_writer_", writer);
    ThreadHelper.set("_doc_", doc);
    doc.open();

    List<Map> items = (List) rpt.get("items");
    for (Map row : items) {
        Element el = getElement(row);
        if (el != null)
            doc.add(el);
    }
    doc.close();
    out.close();
    writer.close();

    ThreadHelper.set("_writer_", null);
    ThreadHelper.set("_doc_", null);

}

From source file:com.maxl.java.amikodesk.SaveBasket.java

License:Open Source License

public void generatePdf(Author author, String filename, String type) {
    // A4: 8.267in x 11.692in => 595.224units x 841.824units (72units/inch)

    // marginLeft, marginRight, marginTop, marginBottom
    Document document = new Document(PageSize.A4, 50, 50, 80, 50);
    try {/*from  ww  w  .  ja  v a 2 s .c om*/
        if (m_shopping_basket.size() > 0) {
            PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(filename));
            writer.setBoxSize("art", new Rectangle(50, 50, 560, 790));

            HeaderFooter event = new HeaderFooter();
            writer.setPageEvent(event);

            document.open();

            PdfContentByte cb = writer.getDirectContent();

            document.addAuthor("ywesee GmbH");
            document.addCreator("AmiKo for Windows");
            document.addCreationDate();

            // Logo
            String logoImageStr = m_prefs.get(LogoImageID, Constants.IMG_FOLDER + "empty_logo.png");
            File logoFile = new File(logoImageStr);
            if (!logoFile.exists())
                logoImageStr = Constants.IMG_FOLDER + "empty_logo.png";

            Image logo = Image.getInstance(logoImageStr);
            logo.scalePercent(30);
            logo.setAlignment(Rectangle.ALIGN_RIGHT);
            document.add(logo);
            document.add(Chunk.NEWLINE);

            // Bestelladresse
            // --> String bestellAdrStr = m_prefs.get(BestellAdresseID, m_rb.getString("noaddress1")); 
            String bestellAdrStr = getAddressAsString(BestellAdresseID);
            Paragraph p = new Paragraph(12);
            // p.setIndentationLeft(60);
            p.add(new Chunk(bestellAdrStr, font_norm_10));
            document.add(p);
            document.add(Chunk.NEWLINE);

            // Title
            p = new Paragraph(m_rb.getString("order"), font_bold_16);
            document.add(p);

            // Date
            DateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
            Date date = new Date();
            p = new Paragraph(m_rb.getString("date") + ": " + dateFormat.format(date), font_bold_10);
            p.setSpacingAfter(20);
            document.add(p);

            // document.add(Chunk.NEWLINE);

            // Add addresses (Lieferadresse + Rechnungsadresse)
            /* --> OLD
            String lieferAdrStr = m_prefs.get(LieferAdresseID, m_rb.getString("noaddress2"));
            String rechnungsAdrStr = m_prefs.get(RechnungsAdresseID, m_rb.getString("noaddress3"));              
            */
            // --> NEW
            String lieferAdrStr = getAddressAsString(LieferAdresseID);
            String rechnungsAdrStr = getAddressAsString(RechnungsAdresseID);

            PdfPTable addressTable = new PdfPTable(new float[] { 1, 1 });
            addressTable.setWidthPercentage(100f);
            addressTable.getDefaultCell().setPadding(5);
            addressTable.setSpacingAfter(5f);
            addressTable.addCell(getStringCell(m_rb.getString("shipaddress"), font_bold_10, PdfPCell.NO_BORDER,
                    Element.ALIGN_MIDDLE, 1));
            addressTable.addCell(getStringCell(m_rb.getString("billaddress"), font_bold_10, PdfPCell.NO_BORDER,
                    Element.ALIGN_MIDDLE, 1));
            addressTable.addCell(
                    getStringCell(lieferAdrStr, font_norm_10, PdfPCell.NO_BORDER, Element.ALIGN_MIDDLE, 1));
            addressTable.addCell(
                    getStringCell(rechnungsAdrStr, font_norm_10, PdfPCell.NO_BORDER, Element.ALIGN_MIDDLE, 1));
            document.add(addressTable);

            document.add(Chunk.NEWLINE);

            // Add shopping basket
            if (type.equals("specific"))
                document.add(getShoppingBasketForAuthor(author, cb));
            else if (type.equals("all"))
                document.add(getFullShoppingBasket(cb, "all"));
            else if (type.equals("rest"))
                document.add(getFullShoppingBasket(cb, "rest"));
            LineSeparator separator = new LineSeparator();
            document.add(separator);
        }
    } catch (IOException e) {

    } catch (DocumentException e) {

    }

    document.close();
    // System.out.println("Saved PDF to " + filename);
}

From source file:com.microware.intrahealth.Createpdf2.java

@SuppressLint("SdCardPath")
public boolean write(Context context, String fname, String[] Header, ArrayList<HashMap<String, String>> data,
        String[] Page2, int Flag) throws Exception {
    try {/*ww  w .  j a  va  2  s . co m*/
        //           file = new File(Environment.getExternalStorageDirectory()+IIHSPdf+ "/"+fname+".pdf");

        this.context = context;
        g = (Global) context.getApplicationContext();
        BaseFont urName = BaseFont.createFont("assets/FreeSans.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
        urFontName = new Font(urName, 12);
        urName1 = FontFactory.getFont("assets/mangal.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
        // urFontName = new Font(urName, 12);
        sHeader[0] = context.getResources().getString(R.string.hrpreport);
        sHeader[1] = context.getResources().getString(R.string.anmname) + " " + g.getsGlobalANMName() + " "
                + context.getResources().getString(R.string.distname);
        sHeader[2] = context.getResources().getString(R.string.Identificationcode);
        sHeader2[0] = context.getResources().getString(R.string.Identificationcode1);
        sHeader2[1] = context.getResources().getString(R.string.totalhrp);
        sHeader2[2] = context.getResources().getString(R.string.totalcheckup);
        sHeader2[3] = context.getResources().getString(R.string.anmsign);
        catFont2 = new Font(Font.FontFamily.TIMES_ROMAN, 16, Font.BOLD, new BaseColor(0, 85, 133));

        if (Flag == 2) {

            catFont = new Font(urName, 16, Font.BOLD);
            catFont1 = new Font(urName, 16, Font.BOLD, new BaseColor(0, 85, 133));
            subFont = new Font(urName, 14);
            smallBold = new Font(urName, 12, Font.BOLD, BaseColor.WHITE);
        } else {

            catFont = new Font(Font.FontFamily.TIMES_ROMAN, 16, Font.BOLD);
            catFont1 = new Font(Font.FontFamily.TIMES_ROMAN, 16, Font.BOLD, new BaseColor(0, 85, 133));
            subFont = new Font(Font.FontFamily.TIMES_ROMAN, 14);
            smallBold = new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD, BaseColor.WHITE);
        }

        String fpath = "/sdcard/msakhi/Pdf";
        File path = new File(fpath);
        File file = new File(path, fname + ".pdf");

        if (!path.exists()) {
            path.mkdirs();
            if (!file.exists()) {
                file.createNewFile();
            }
        } else {
            if (!file.exists()) {
                file.createNewFile();
            }
        }

        //         Font bfBold12 = new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD, new BaseColor(0, 0, 0));
        //         Font bf12 = new Font(Font.FontFamily.TIMES_ROMAN, 12);

        Document document = new Document(A4.rotate());

        PdfWriter.getInstance(document, new FileOutputStream(file.getAbsoluteFile()));

        document.open();
        //         addMetaData(document);
        //          addTitlePage(document);
        addContent(document, Header, data, sHeader2, Flag);
        document.close();
        return true;
    } catch (IOException e) {
        e.printStackTrace();
        return false;
    } catch (DocumentException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        return false;
    }
}