<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包,同時需要具有iTextAsian.jar包,它為我們提供中亞洲語言的支持。

     

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

                  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)建柱狀圖、餅圖、曲線圖、甘特圖等。可以用于桌面程序(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)建柱形圖兩個示例,其他圖形的創(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ā)部", "銷售部", "教育部", "項目部" };

                                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í)計劃!

     


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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 四虎永久成人免费| 三年片在线观看免费大全| 无码AV动漫精品一区二区免费| 亚洲avav天堂av在线网毛片| 在线观看亚洲免费视频| 四虎永久在线精品免费一区二区| 日本人成在线视频免费播放| 久久免费看黄a级毛片| 免费国产成人高清在线观看网站| 夫妻免费无码V看片| 免费在线一级毛片| 亚洲精品和日本精品| 亚洲精品~无码抽插| 亚洲综合一区二区精品久久| 亚洲国产成人99精品激情在线| 日本亚洲高清乱码中文在线观看| 一级毛片aaaaaa视频免费看| 最近国语视频在线观看免费播放 | 亚洲国产综合专区电影在线| 色播亚洲视频在线观看| 色偷偷女男人的天堂亚洲网| 中文在线免费视频| 69式互添免费视频| 国产成人无码区免费A∨视频网站| 亚洲中文字幕伊人久久无码| 亚洲国产国产综合一区首页| 国产亚洲美女精品久久| 4399好看日本在线电影免费| 亚洲成a人片在线观看久| 婷婷久久久亚洲欧洲日产国码AV| 麻豆狠色伊人亚洲综合网站| 免费成人在线视频观看| 成人人观看的免费毛片| 99人中文字幕亚洲区| 国产高清对白在线观看免费91| 精品久久8x国产免费观看| 亚洲国产无套无码av电影| 在线观看免费亚洲| 野花高清在线观看免费3中文| 亚洲国产人成在线观看69网站| 国产精品九九久久免费视频|