<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 78, comments - 34, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

             今日教育辦公系統(tǒng)結(jié)束。新內(nèi)容有:導(dǎo)出數(shù)據(jù)到PDF文檔、生成圖表(餅圖、柱圖...),整體上操作比較簡單。

     

    一、創(chuàng)建PDF文檔

             我們使用iText創(chuàng)建PDF文檔,需要到http://itextpdf.com/ 下載jar包,同時(shí)需要具有iTextAsian.jar包,它為我們提供中亞洲語言的支持。

     

             PDF文檔與昨天的Excel表格相比,它有什么特征?PDF是一種國際化標(biāo)準(zhǔn)文檔,可以向文檔中添加文字、表格、圖片、動畫、3D、腳本語言...,在實(shí)際應(yīng)用中我們一般只用到文字、表格和圖片。創(chuàng)建PDF文檔只需兩個(gè)操作對象:DocumentPDFWriter

            

             下面我直接通過Java工程來說明創(chuàng)建PDF的過程。

    package cn.itcast.cc.pdf;

     

    import java.io.File;

    import java.io.FileInputStream;

    import java.io.FileOutputStream;

    import org.junit.Test;

    import com.lowagie.text.Document;

    import com.lowagie.text.Element;

    import com.lowagie.text.Font;

    import com.lowagie.text.Jpeg;

    import com.lowagie.text.Paragraph;

    import com.lowagie.text.Phrase;

    import com.lowagie.text.pdf.BaseFont;

    import com.lowagie.text.pdf.ByteBuffer;

    import com.lowagie.text.pdf.PdfPCell;

    import com.lowagie.text.pdf.PdfPTable;

    import com.lowagie.text.pdf.PdfWriter;

     

    public class TestPdf {

     

           @Test

           public void testpdf() throws Exception {

                  // 創(chuàng)建Document實(shí)例

                  Document doc = new Document();

                  // 創(chuàng)建書寫器Writerdoc對象關(guān)聯(lián)

                  PdfWriter.getInstance(doc, new FileOutputStream("C:/mypdf.pdf")); // ③打開文檔。

                  // 打開文檔

                  doc.open();

                  // 添加英語

                  doc.add(new Paragraph("Hello PDF!"));

                  // 添加中文

                  BaseFont bf = BaseFont.createFont("STSong-Light","UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);

                  Font font = new Font(bf,18,Font.UNDEFINED);

                  doc.add(new Paragraph("你好PDF!", font));

                  // 添加表格

                  PdfPTable table = new PdfPTable(2);

                  PdfPCell cell = new PdfPCell(new Phrase("性別", font));

                  cell.setHorizontalAlignment(Element.ALIGN_CENTER);

                  cell.setColspan(2);

                  table.addCell(cell);

                  table.addCell(new Phrase("", font));

                  table.addCell(new Phrase("", font));

                  doc.add(table);

                  // 添加圖片

                  byte[] buf = new byte[1024];

                  FileInputStream fis = new FileInputStream(new File("C:/tiger.jpeg"));

                  ByteBuffer bytebuf = new ByteBuffer();

                  int len = 0;

                  while((len = fis.read(buf)) != -1){

                         bytebuf.append(buf, 0, len);

                  }            

                  doc.add(new Jpeg(bytebuf.getBuffer(), 100, 100));

                  // 關(guān)閉文檔,自動保存到文件。

                  doc.close();

           }

    }

     

     

    二、創(chuàng)建圖表

             我們使用JFreeChartCewolf創(chuàng)建圖表,可以創(chuàng)建柱狀圖、餅圖、曲線圖、甘特圖等??梢杂糜谧烂娉绦颍?/span>Swing)和WEB應(yīng)用。Cewolf是基于JFreeChart的,它使用JFreeChart的繪圖引擎。Cewolf用于WEB應(yīng)用,在服務(wù)器端生成圖表數(shù)據(jù)發(fā)送給JSP頁面,在JSP頁面中使用cewolf標(biāo)簽即可將數(shù)據(jù)轉(zhuǎn)換為圖片。

     

             在此我只編寫使用JFreeChart創(chuàng)建餅形圖和使用Cewolf創(chuàng)建柱形圖兩個(gè)示例,其他圖形的創(chuàng)建可以參看文檔。

     

             1.JFreeChart創(chuàng)建餅形圖

    package cn.itcast.cc.jfreechart;

     

    import java.awt.Font;

    import java.io.FileOutputStream;

    import org.jfree.chart.ChartFactory;

    import org.jfree.chart.ChartUtilities;

    import org.jfree.chart.JFreeChart;

    import org.jfree.chart.plot.PiePlot;

    import org.jfree.data.general.DefaultPieDataset;

    import org.junit.Test;

     

    public class TestJFreeChart {

           @Test

           public void test() throws Exception {

                  // 生成PieDataset數(shù)據(jù)

                  DefaultPieDataset dataset = new DefaultPieDataset();

                  dataset.setValue("日本", 10);

                  dataset.setValue("美國", 20);

                  dataset.setValue("中國", 70);

                  // 創(chuàng)建圖表

                  JFreeChart chart = ChartFactory.createPieChart3D("人口比例", dataset,

                                false, false, false);

                  // 需要設(shè)置中文字體,否則亂碼。

                  Font font = new Font("微軟雅黑", Font.PLAIN, 18);

                  chart.getTitle().setFont(font);

                  PiePlot plot = (PiePlot) chart.getPlot();

                  plot.setLabelFont(font);

                  plot.setForegroundAlpha( 0.8f);

                  plot.setCircular(true);

                  // 保存圖表數(shù)據(jù)到PNG圖片

                  ChartUtilities.writeChartAsPNG(new FileOutputStream("C:/people.png"),

                                chart, 400, 300);

           }

    }

     

             2.Cewolf創(chuàng)建柱形圖

             1).servlet的內(nèi)容:

    package cn.itcast.cc.servlet.cewolf;

     

    import java.io.IOException;

    import java.util.Date;

    import java.util.Map;

    import javax.servlet.ServletException;

    import javax.servlet.http.HttpServlet;

    import javax.servlet.http.HttpServletRequest;

    import javax.servlet.http.HttpServletResponse;

    import org.jfree.data.category.DefaultIntervalCategoryDataset;

    import de.laures.cewolf.DatasetProducer;

     

    public class CewolfServlet extends HttpServlet {

     

           private static final long serialVersionUID = 1L;

     

           protected void doGet(HttpServletRequest request,

                         HttpServletResponse response) throws ServletException, IOException {

                  // 生成數(shù)據(jù)

                  DatasetProducer categoryData = new DatasetProducer() {

                         public Object produceDataset(Map params) {

     

                                final String[] categories = { "一季度", "二季度", "三季度", "四季度" };

                                final String[] seriesNames = { "研發(fā)部", "銷售部", "教育部", "項(xiàng)目部" };

                                final Integer[][] startValues = new Integer[seriesNames.length][categories.length];

                                final Integer[][] endValues = new Integer[seriesNames.length][categories.length];

                               

                                for (int series = 0; series < seriesNames.length; series++) {

                                       for (int i = 0; i < categories.length; i++) {

                                              int y = (int) (Math.random() * 10 + 1);

                                              startValues[series][i] = new Integer(y);

                                              endValues[series][i] = new Integer(y

                                                            + (int) (Math.random() * 10));

                                       }

                                }

     

                                DefaultIntervalCategoryDataset ds = new DefaultIntervalCategoryDataset(

                                              seriesNames, categories, startValues, endValues);

                                return ds;

     

                         }

     

                         public String getProducerId() {

                                return "CategoryDataProducer";

                         }

     

                         public boolean hasExpired(Map params, Date since) {

                                return false;

                         }

     

                  };

                  // 添加到Request

                  request.setAttribute("categoryData", categoryData);

                  // 轉(zhuǎn)發(fā)到test.jsp頁面

                  request.getRequestDispatcher("testcewolf.jsp").forward(request, response);

     

           }

     

    }

     

            

             2).JSP頁面的內(nèi)容:

    <%@ page language="java" contentType="text/html; charset=UTF-8"

           pageEncoding="UTF-8"%>

    <%@ taglib prefix="cewolf"

           uri="http://cewolf.sourceforge.net/taglib/cewolf.tld"%>

     

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

    <html>

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

    <title>Insert title here</title>

    </head>

    <body>

           <cewolf:chart id="horizontalBarChart3D" title="年度部門薪水比率"

                  type="horizontalBar3D" xaxislabel="季度" yaxislabel="比率">

                  <cewolf:data>

                         <cewolf:producer id="categoryData" />

                  </cewolf:data>

           </cewolf:chart>

           <cewolf:img chartid="horizontalBarChart3D" renderer="/cewolf"

                  width="300" height="300" />

    </body>

    </html>

     

             3).WEB.xml的內(nèi)容:

    <?xml version="1.0" encoding="UTF-8"?>

    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

           xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

           xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

           id="WebApp_ID" version="2.5">

           <display-name>cewolf</display-name>

           <welcome-file-list>

                  <welcome-file>index.html</welcome-file>

                  <welcome-file>index.htm</welcome-file>

                  <welcome-file>index.jsp</welcome-file>

           </welcome-file-list>

           <!-- 我們的Servlet -->

           <servlet> 

                  <description></description>

                  <display-name>testcewolf</display-name>

                  <servlet-name>testcewolf</servlet-name>

                  <servlet-class>org.simpleit.cewolf.CewolfServlet</servlet-class>

           </servlet>

           <servlet-mapping>

                  <servlet-name>testcewolf</servlet-name>

                  <url-pattern>/testcewolf</url-pattern>

           </servlet-mapping>

     

           <!-- cewolfServlet -->

           <servlet>

                  <servlet-name>CewolfServlet</servlet-name>

                  <servlet-class>de.laures.cewolf.CewolfRenderer</servlet-class>

                  <!-- sets storage implementation -->

                  <init-param>

                         <param-name>storage</param-name>

                         <param-value>de.laures.cewolf.storage.TransientSessionStorage</param-value>

                  </init-param>

                  <!-- sets overlib.js location relative to webapp -->

                  <init-param>

                         <param-name>overliburl</param-name>

                         <param-value>/etc/overlib.js</param-value>

                  </init-param>

                  <!-- turn on or off debugging logging -->

                  <init-param>

                         <param-name>debug</param-name>

                         <param-value>true</param-value>

                  </init-param>

                  <load-on-startup>1</load-on-startup>

           </servlet>

     

           <servlet-mapping>

                  <servlet-name>CewolfServlet</servlet-name>

                  <url-pattern>/cewolf/*</url-pattern>

           </servlet-mapping>

     

    </web-app>

     

             明日起就開始休年假了,為期11天。一定要安排好學(xué)習(xí)計(jì)劃!

     


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 一级毛片免费观看不卡视频| 相泽亚洲一区中文字幕| 亚洲国产视频网站| 另类免费视频一区二区在线观看 | 野花香高清在线观看视频播放免费 | 亚洲精品97久久中文字幕无码| 亚洲毛片免费视频| 毛片在线播放免费观看| 亚洲精品无码久久久影院相关影片| 粉色视频在线观看www免费| 午夜一区二区免费视频| 亚洲中文无码永久免费| 日本黄网站动漫视频免费| 久久精品亚洲精品国产色婷| 免费在线看黄的网站| 久久亚洲精品AB无码播放| 99在线热播精品免费99热| 国产gv天堂亚洲国产gv刚刚碰| 一级午夜a毛片免费视频| 亚洲AV无码乱码精品国产| 国产精品亚洲小说专区| 国产精品无码一二区免费| 亚洲国产av玩弄放荡人妇| 青青青国产免费一夜七次郎 | 亚洲裸男gv网站| 国产黄在线播放免费观看| 亚洲中文字幕丝袜制服一区| 国产精品成人69XXX免费视频| 国产成人精品日本亚洲专区 | 亚洲理论精品午夜电影| 亚洲成人在线免费观看| 亚洲人成高清在线播放| 性xxxxx免费视频播放| 亚洲卡一卡二卡乱码新区| 免费无码又爽又高潮视频| 美女视频黄频a免费观看| 亚洲人成电影在线播放| 十八禁视频在线观看免费无码无遮挡骂过| 国产亚洲成AV人片在线观黄桃 | 亚洲熟妇AV一区二区三区浪潮| 国产青草视频在线观看免费影院|