Exemplo n.º 1
0
  protected void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {

    WebApplicationContext ctx =
        WebApplicationContextUtils.getRequiredWebApplicationContext(this.getServletContext());

    CourseManager manager = (CourseManager) ctx.getBean("courseManager");
    HttpSession session = request.getSession(false);

    List selectFilterCouList = (List) session.getAttribute("selectFilterCouList");

    Date date = new Date();
    DateFormat dateFormat = new SimpleDateFormat("yyyy年 MM月 dd日 HH:mm");

    String stuTmp[] = new String[selectFilterCouList.size()];
    List students = new ArrayList();

    for (int i = 0; i < selectFilterCouList.size(); i++) {
      stuTmp[i] = ((Map) selectFilterCouList.get(i)).get("dtimeOid").toString();
    }
    students = manager.getSeldStuFilterBy(stuTmp, true);

    Document document = new Document(PageSize.A4, 72, 72, 35, 35);
    ByteArrayOutputStream ba = new ByteArrayOutputStream();

    String year = manager.getNowBy("School_year");
    String term = manager.getNowBy("School_term");

    // 如果是下學期, 學年要+1
    if (Integer.parseInt(term) == 2) {
      Integer tmpYear = (Integer.parseInt(year) + 1);
      year = tmpYear.toString();
      term = "1";
    } else {
      term = "2";
    }

    try {

      PdfWriter writer = PdfWriter.getInstance(document, ba);
      // TODO 路徑

      // Image
      // image=Image.getInstance("http://cap.chit.edu.tw/CIS/pages/images/2002chitWatermark.gif");
      // Watermark wamark=new Watermark(image, ((PageSize.A4).width()-image.plainHeight())/2,
      // ((PageSize.A4).height()-image.plainHeight())/2);
      // document.add(wamark);

      Phrase now = doEncode("課程管理系統 " + dateFormat.format(date));
      HeaderFooter header = new HeaderFooter(now, false);
      document.setHeader(header);
      document.setFooter(header);

      // Image logo=Image.getInstance("http://192.192.231.32:8080/CIS/pages/images/art.gif");
      document.open();

      for (int i = 0; i < students.size(); i++) {

        String buf[] = {((Map) students.get(i)).get("student_no").toString()};
        List tmp = manager.getSeldStuFilterBy(buf, false);

        if (i % 2 != 0) {
          document.add(new Paragraph(doEncode("\n")));
          document.add(new Paragraph(doEncode("\n")));
          document.add(new Paragraph(doEncode("\n")));
        }

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

        Table table = new Table(6);
        table.setWidth(100);

        table.setBorderWidth(0);
        table.setPadding(5);
        // table.setSpacing(5);
        // table.setDefaultHorizontalAlignment(table.ALIGN_CENTER);
        // table.setDefaultHorizontalAlignment(table.ALIGN_MIDDLE);

        // table.setDefaultCellBorderColor(new Color(255, 255, 255));

        Cell cell = new Cell();
        cell.add(doEncode(year));
        cell.add(doEncode("學年 第"));
        cell.add(doEncode(term));
        cell.add(doEncode("學期 網路預選失敗通知單"));
        // cell.addElement(logo);
        cell.setColspan(6);
        cell.setHorizontalAlignment(cell.ALIGN_CENTER);
        cell.setBorderColor(new Color(255, 255, 255));
        table.addCell(cell);

        // ((Map)students.get(i)).get("ClassName2");

        cell = new Cell();
        // cell.add(doEncode("學生班級: "));
        cell.add(doEncode(((Map) students.get(i)).get("ClassName").toString()));
        cell.add(doEncode("\t學號: "));
        cell.add(doEncode(((Map) students.get(i)).get("student_no").toString()));
        cell.add(doEncode("\t姓名: "));
        cell.add(doEncode(((Map) students.get(i)).get("student_name").toString()));

        cell.setColspan(6);
        cell.setHorizontalAlignment(cell.ALIGN_LEFT);
        cell.setBorderColor(new Color(255, 255, 255));
        table.addCell(cell);

        cell = new Cell();
        cell.add(doEncode("您在第一階段網路選課所選的下列課程並未成功,請按照規定時間進行網路第二階段選課,以免影響您的權益。"));

        cell.setColspan(6);
        cell.setHorizontalAlignment(cell.ALIGN_LEFT);
        cell.setBorderColor(new Color(255, 255, 255));
        table.addCell(cell);

        document.add(table);

        float[] widths = {0.2f, 0.3f, 0.1f, 0.1f, 0.1f, 0.2f};
        PdfPTable tables = new PdfPTable(widths);
        tables.setWidthPercentage(100);

        PdfPCell cells = new PdfPCell(doEncode("開課班級"));
        tables.addCell(cells);

        cells = new PdfPCell(doEncode("科目名稱"));
        tables.addCell(cells);
        cells = new PdfPCell(doEncode("選別"));
        tables.addCell(cells);
        cells = new PdfPCell(doEncode("學分"));
        tables.addCell(cells);
        cells = new PdfPCell(doEncode("時數"));
        tables.addCell(cells);
        cells = new PdfPCell(doEncode("上課時間"));
        tables.addCell(cells);

        for (int j = 0; j < tmp.size(); j++) {
          cells = new PdfPCell();
          cells = new PdfPCell(doEncode(((Map) tmp.get(j)).get("ClassName2").toString()));
          tables.addCell(cells);
          cells = new PdfPCell(doEncode(((Map) tmp.get(j)).get("chi_name").toString()));
          tables.addCell(cells);
          cells = new PdfPCell(doEncode(getOpt(((Map) tmp.get(j)).get("opt").toString())));
          tables.addCell(cells);
          cells = new PdfPCell(doEncode(((Map) tmp.get(j)).get("credit").toString()));
          tables.addCell(cells);
          cells = new PdfPCell(doEncode(((Map) tmp.get(j)).get("thour").toString()));
          tables.addCell(cells);

          List dcTmp =
              manager.getDtimeClassListForOpenCourse(((Map) tmp.get(j)).get("dtimeOid").toString());

          StringBuffer strBuf = new StringBuffer();
          DtimeClass dtimeClass;
          for (int x = 0; x < dcTmp.size(); x++) {
            dtimeClass = (DtimeClass) dcTmp.get(x);
            strBuf.append("週" + dtimeClass.getWeek() + ":");
            strBuf.append(dtimeClass.getBegin() + "~" + dtimeClass.getEnd() + " ");
          }

          cells = new PdfPCell(doEncode(strBuf.toString()));
          tables.addCell(cells);
        }

        for (int k = 13; k > tmp.size(); k--) {
          cells = new PdfPCell(doEncode("\t"));
          tables.addCell(cells);
          cells = new PdfPCell(doEncode("\t"));
          tables.addCell(cells);
          cells = new PdfPCell(doEncode("\t"));
          tables.addCell(cells);
          cells = new PdfPCell(doEncode("\t"));
          tables.addCell(cells);
          cells = new PdfPCell(doEncode("\t"));
          tables.addCell(cells);
          cells = new PdfPCell(doEncode("\t"));
          tables.addCell(cells);
        }

        document.add(tables);

        if (i % 2 == 1) {
          document.newPage();
        }
      }

    } catch (DocumentException de) {
      de.printStackTrace();
      System.err.println("A Document error:" + de.getMessage());
    }

    document.close();
    response.setContentType("application/pdf");
    response.setContentLength(ba.size());
    ServletOutputStream out = response.getOutputStream();
    ba.writeTo(out);
    ba.close();
    out.flush();
    out.close();
  }
  // int sportId = 1;
  public void SelPlaWD(String filePath, String fileName) {

    SelectPlayerDAO sd = new SelectPlayerDAO();
    // ArrayList departList = new ArrayList();
    ArrayList stuDepartList = new ArrayList();
    ArrayList teaDepartList = new ArrayList();
    // ArrayList selectSportsid=new ArrayList();
    // departList=sd.selectDepartment(sportId);
    // selectSportsid=sd.selectSportsid();

    stuDepartList = sd.slectStuDepidBySid(sportId);
    teaDepartList = sd.selectDepartment(sportId);
    Document document = new Document(PageSize.A4);
    try {
      RtfWriter2.getInstance(document, new FileOutputStream(filePath + fileName));

      document.open();

      for (int i = 0; i < stuDepartList.size(); i++) {

        int id = Integer.parseInt(stuDepartList.get(i).toString());
        // int sid = Integer.parseInt(selectSportsid.get(i).toString());
        ArrayList playBoy = new ArrayList();
        ArrayList playGirl = new ArrayList();
        // ArrayList playTeacher = new ArrayList();
        // int type=sd.selectDepartmentType(id);
        // if(type==1){
        // 查询学生男子组的姓名和号码
        playBoy = sd.selectPlayersByDept(1, id, sportId);
        String groupname = "男子组";
        String departname = sd.selectDepartmentName(id);
        Paragraph p =
            new Paragraph(departname, new Font(Font.BOLD, 18, Font.BOLD, new Color(0, 0, 0)));
        p.setAlignment(1);
        document.add(p);
        // document.add(new Paragraph(groupname));
        Table table = new Table(8);
        Cell cc5 = new Cell(groupname);

        cc5.setColspan(8);
        cc5.setBorderWidth(0);
        table.addCell(cc5);

        // 指定表格为八列

        table.setBorder(0);
        table.setBorderWidth(0);
        table.setBorderColor(Color.WHITE);
        table.setPadding(0);
        table.setSpacing(0);
        for (int a = 0; a < playBoy.size(); a++) {
          PlayerPojo pojp = (PlayerPojo) playBoy.get(a);

          Cell cc = new Cell(pojp.getPlayernum());
          cc.setBorderWidth(0);
          table.addCell(cc);
          Cell ce = new Cell(pojp.getPlayername());
          ce.setBorderWidth(0);
          table.addCell(ce);
        }

        // document.add(p1);
        document.add(table);
        // 查询学生女子组的姓名和号码
        Table table1 = new Table(8);
        // 指定表格为八列
        table1.setBorder(0);
        table1.setBorderWidth(0);
        table1.setBorderColor(Color.WHITE);
        table1.setPadding(0);
        table1.setSpacing(0);
        playGirl = sd.selectPlayersByDept(0, id, sportId);
        String groupname1 = "女子组";
        // document.add(new Paragraph(groupname1));

        Cell cc6 = new Cell(groupname1);
        cc6.setColspan(8);
        cc6.setBorderWidth(0);
        table1.addCell(cc6);

        for (int a = 0; a < playGirl.size(); a++) {
          PlayerPojo pojp = (PlayerPojo) playGirl.get(a);
          Cell cc1 = new Cell(pojp.getPlayernum());
          cc1.setBorderWidth(0);
          table1.addCell(cc1);
          Cell ce1 = new Cell(pojp.getPlayername());
          ce1.setBorderWidth(0);
          table1.addCell(ce1);
        }
        document.add(table1);
        document.add(new Paragraph());
        document.add(new Paragraph());
        // } else{
      }
      for (int i = 0; i < teaDepartList.size(); i++) {
        int id = Integer.parseInt(teaDepartList.get(i).toString());
        ArrayList playTeacher = sd.selectPlayersByDept1(id, sportId);

        String groupname = "教工组";
        String departname = sd.selectDepartmentName(id);
        Paragraph p =
            new Paragraph(departname, new Font(Font.BOLD, 18, Font.BOLD, new Color(0, 0, 0)));
        p.setAlignment(1);
        document.add(p);
        // document.add(new Paragraph(groupname));
        Table table2 = new Table(8);
        Cell cc6 = new Cell(groupname);
        cc6.setColspan(8);
        cc6.setBorderWidth(0);
        table2.addCell(cc6);

        // 指定表格为八列

        table2.setBorder(0);
        table2.setBorderWidth(0);
        table2.setBorderColor(Color.WHITE);
        table2.setPadding(0);
        table2.setSpacing(0);
        for (int a = 0; a < playTeacher.size(); a++) {
          PlayerPojo pojp = (PlayerPojo) playTeacher.get(a);

          Cell cc = new Cell(pojp.getPlayernum());
          cc.setBorderWidth(0);
          table2.addCell(cc);
          Cell ce = new Cell(pojp.getPlayername());
          ce.setBorderWidth(0);
          table2.addCell(ce);
        }
        document.add(table2);
      }

      // 查询教工组的姓名和号码

      // document.add(p1);

      document.close();
    } catch (FileNotFoundException e) {
      e.printStackTrace();
    } catch (DocumentException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }