﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-bob-文章分类-iText</title><link>http://www.blogjava.net/keweibo/category/47645.html</link><description>一专  Java 多能  Powerbuilder,Delphi ... </description><language>zh-cn</language><lastBuildDate>Tue, 18 Jan 2011 14:48:15 GMT</lastBuildDate><pubDate>Tue, 18 Jan 2011 14:48:15 GMT</pubDate><ttl>60</ttl><item><title>使用Java组件itext 生成pdf介绍(轉)</title><link>http://www.blogjava.net/keweibo/articles/343138.html</link><dc:creator>KE</dc:creator><author>KE</author><pubDate>Tue, 18 Jan 2011 03:51:00 GMT</pubDate><guid>http://www.blogjava.net/keweibo/articles/343138.html</guid><wfw:comment>http://www.blogjava.net/keweibo/comments/343138.html</wfw:comment><comments>http://www.blogjava.net/keweibo/articles/343138.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/keweibo/comments/commentRss/343138.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/keweibo/services/trackbacks/343138.html</trackback:ping><description><![CDATA[<div class="news-content">
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">轉自:http://news.newhua.com/news/2011/0111/113128.shtml<br />
</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">iText是一个能够快速产生PDF文件的java类库。iText的java类对于那些要产生包含文本，表格，图形的只读文档是很有用的。它的类库尤其与java Servlet有很好的给合。使用iText与PDF能够使你正确的控制Servlet的输出。</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">一、前言</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">在企
业的信息系统中，报表处理一直占比较重要的作用，Java组件——iText可以非常快速的生成PDF报表。iText是着名的开放源码的站点
sourceforge一个项目，是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档，而且可以将XML、
Html文件转化为PDF文件。通过在服务器端使用Jsp或JavaBean生成PDF报表，客户端采用超级连接显示或下载得到生成的报表，这样就很好的
解决了B/S系统的报表处理问题了。</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">二、iText简介</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">iText是着名的开放源码的站点sourceforge一个项目，是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档，而且可以将XML、Html文件转化为PDF文件。</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">iText
的安装非常方便，在http://www.lowagie.com/iText/download.html&nbsp;- download
网站上下载iText.jar文件后，只需要在系统的CLASSPATH中加入iText.jar的路径，在程序中就可以使用iText类库了。</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">三、建立第一个PDF文档</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">用iText生成PDF文档需要5个步骤：</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">①建立com.lowagie.text.Document对象的实例。</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">Document document = new Document();</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">②建立一个书写器(Writer)与document对象关联，通过书写器(Writer)可以将文档写入到磁盘中。</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">PDFWriter.getInstance(document, new FileOutputStream("Helloworld.PDF"));</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">③打开文档。</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">document.open();</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">④向文档中添加内容。</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">document.add(new Paragraph("Hello World"));</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">⑤关闭文档。</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">document.close();</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">通过上面的5个步骤，就能产生一个Helloworld.PDF的文件，文件内容为"Hello World"。</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">建立com.lowagie.text.Document对象的实例</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">com.lowagie.text.Document对象的构建函数有三个，分别是：</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">public Document();</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">public Document(Rectangle pageSize);</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">public Document(Rectangle pageSize,</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">int marginLeft,</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">int marginRight,</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">int marginTop,</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">int marginBottom);</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">构建
函数的参数pageSize是文档页面的大小，对于第一个构建函数，页面的大小为A4，同Document(PageSize.A4)的效果一样；对于第
三个构建函数，参数marginLeft、marginRight、marginTop、marginBottom分别为左、右、上、下的页边距。</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">通过
参数pageSize可以设定页面大小、面背景色、以及页面横向/纵向等属性。iText定义了A0-A10、AL、LETTER、
HALFLETTER、_11x17、LEDGER、NOTE、B0-B5、ARCH_A-ARCH_E、FLSA
和FLSE等纸张类型，也可以通过Rectangle pageSize = new Rectangle(144,
720);自定义纸张。通过Rectangle方法rotate()可以将页面设置成横向。</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">书写器（Writer）对象</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">一旦
文档(document)对象建立好之后，需要建立一个或多个书写器(Writer)对象与之关联。通过书写器(Writer)对象可以将具体文档存盘成
需要的格式，如com.lowagie.text.PDF.PDFWriter可以将文档存成PDF文件，
com.lowagie.text.html.HtmlWriter可以将文档存成html文件。</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">设定文档属性</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">在文档打开之前，可以设定文档的标题、主题、作者、关键字、装订方式、创建者、生产者、创建日期等属性，调用的方法分别是：</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">public boolean addTitle(String title)</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">public boolean addSubject(String subject)</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">public boolean addKeywords(String keywords)</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">public boolean addAuthor(String author)</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">public boolean addCreator(String creator)</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">public boolean addProducer()</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">public boolean addCreationDate()</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">public boolean addHeader(String name, String content)</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">其中方法addHeader对于PDF文档无效，addHeader仅对html文档有效，用于添加文档的头信息。</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">当新的页面产生之前，可以设定页面的大小、书签、脚注（HeaderFooter）等信息，调用的方法是：</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">public boolean setPageSize(Rectangle pageSize)</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">public boolean add(Watermark watermark)</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">public void removeWatermark()</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">public void setHeader(HeaderFooter header)</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">public void resetHeader()</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">public void setFooter(HeaderFooter footer)</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">public void resetFooter()</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">public void resetPageCount()</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">public void setPageCount(int pageN)</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">如果要设定第一页的页面属性，这些方法必须在文档打开之前调用。</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">对于PDF文档，iText还提供了文档的显示属性，通过调用书写器的setViewerPreferences方法可以控制文档打开时Acrobat Reader的显示属性，如是否单页显示、是否全屏显示、是否隐藏状态条等属性。</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">另外，iText也提供了对PDF文件的安全保护，通过书写器（Writer）的setEncryption方法，可以设定文档的用户口令、只读、可打印等属性。</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">添加文档内容</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">所有向文档添加的内容都是以对象为单位的，如Phrase、Paragraph、Table、Graphic对象等。比较常用的是段落(Paragraph)对象，用于向文档中添加一段文字。</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">四、文本处理</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">iText中用文本块(Chunk)、短语(Phrase)和段落(paragraph)处理文本。</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">文本块(Chunk)是处理文本的最小单位，有一串带格式（包括字体、颜色、大小）的字符串组成。如以下代码就是产生一个字体为HELVETICA、大小为10、带下划线的字符串：</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">Chunk chunk1 = new Chunk("This text is underlined", FontFactory.getFont(FontFactory.HELVETICA, 12, Font.UNDERLINE));</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">短语
(Phrase)由一个或多个文本块(Chunk)组成，短语(Phrase)也可以设定字体，但对于其中以设定过字体的文本块
(Chunk)无效。通过短语(Phrase)成员函数add可以将一个文本块(Chunk)加到短语(Phrase)中，
如：phrase6.add(chunk);</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">段落
(paragraph)由一个或多个文本块(Chunk)或短语(Phrase)组成，相当于WORD文档中的段落概念，同样可以设定段落的字体大小、颜
色等属性。另外也可以设定段落的首行缩进、对齐方式（左对齐、右对齐、居中对齐）。通过函数setAlignment可以设定段落的对齐方式，
setAlignment的参数1为居中对齐、2为右对齐、3为左对齐，默认为左对齐。</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">五、表格处理</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">iText
中处理表格的类为：com.lowagie.text.Table和com.lowagie.text.PDF.PDFPTable，对于比较简单的表格
处理可以用com.lowagie.text.Table，但是如果要处理复杂的表格，这就需要
com.lowagie.text.PDF.PDFPTable进行处理。这里就类com.lowagie.text.Table进行说明。</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">类com.lowagie.text.Table的构造函数有三个：</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">①Table (int columns)</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">②Table(int columns, int rows)</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">③Table(Properties attributes)</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">参数columns、rows、attributes分别为表格的列数、行数、表格属性。创建表格时必须指定表格的列数，而对于行数可以不用指定。</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">建立表格之后，可以设定表格的属性，如：边框宽度、边框颜色、衬距（padding space 即单元格之间的间距）大小等属性。下面通过一个简单的例子说明如何使用表格，代码如下：</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">1:Table table = new Table(3);</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">2:table.setBorderWidth(1);</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">3:table.setBorderColor(new Color(0, 0, 255));</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">4:table.setPadding(5);</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">5:table.setSpacing(5);</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">6:Cell cell = new Cell("header");</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">7:cell.setHeader(true);</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">8:cell.setColspan(3);</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">9:table.addCell(cell);</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">10:table.endHeaders();</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">11:cell = new Cell("example cell with colspan 1 and rowspan 2");</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">12:cell.setRowspan(2);</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">13:cell.setBorderColor(new Color(255, 0, 0));</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">14:table.addCell(cell);</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">15:table.addCell("1.1");</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">16:table.addCell("2.1");</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">17:table.addCell("1.2");</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">18:table.addCell("2.2");</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">19:table.addCell("cell test1");</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">20:cell = new Cell("big cell");</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">21:cell.setRowspan(2);</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">22:cell.setColspan(2);</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">23:table.addCell(cell);</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">24:table.addCell("cell test2");</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">运行结果如下：</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">header</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">example cell with colspan 1 and rowspan 2 1.1 2.1</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">1.2 2.2</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">cell test1 big cell</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">cell test2</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">代码1-5行用于新建一个表格，如代码所示，建立了一个列数为3的表格，并将边框宽度设为1，颜色为蓝色，衬距为5。</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">代码
6-10行用于设定表格的表头，第7行cell.setHeader(true);是将该单元格作为表头信息显示；第8行
cell.setColspan(3);指定了该单元格占3列；为表格添加表头信息时，要注意的是一旦表头信息添加完了之后，必须调用
endHeaders()方法，如第10行，否则当表格跨页后，表头信息不会再显示。</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">代码11-14行是向表格中添加一个宽度占一列，长度占二行的单元格。</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">往表格中添加单元格(cell)时，按自左向右、从上而下的次序添加。如执行完11行代码后，表格的右下方出现2行2列的空白，这是再往表格添加单元格时，先填满这个空白，然后再另起一行，15-24行代码说明了这种添加顺序。</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">六、图像处理</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">iText
中处理表格的类为com.lowagie.text.Image，目前iText支持的图像格式有：GIF, Jpeg, PNG,
wmf等格式，对于不同的图像格式，iText用同样的构造函数自动识别图像格式。通过下面的代码分别获得gif、jpg、png图像的实例。</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">Image gif = Image.getInstance("vonnegut.gif");</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">Image jpeg = Image.getInstance("myKids.jpg");</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">Image png = Image.getInstance("hitchcock.png");</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">图像的位置</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">图像
的位置主要是指图像在文档中的对齐方式、图像和文本的位置关系。IText中通过函数public void setAlignment(int
alignment)进行处理，参数alignment为Image.RIGHT、Image.MIDDLE、Image.LEFT分别指右对齐、居中、
左对齐；当参数alignment为Image.TEXTWRAP、Image.UNDERLYING分别指文字绕图形显示、图形作为文字的背景显示。这
两种参数可以结合以达到预期的效果，如setAlignment(Image.RIGHT|Image.TEXTWRAP)显示的效果为图像右对齐，文字
围绕图像显示。</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">图像的尺寸和旋转</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">如果图像在文档中不按原尺寸显示，可以通过下面的函数进行设定：</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">public void scaleAbsolute(int newWidth, int newHeight)</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">public void scalePercent(int percent)</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">public void scalePercent(int percentX, int percentY)</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">函数
public void scaleAbsolute(int newWidth, int newHeight)直接设定显示尺寸；函数public
void scalePercent(int
percent)设定显示比例，如scalePercent(50)表示显示的大小为原尺寸的50%；而函数scalePercent(int
percentX, int percentY)则图像高宽的显示比例。</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">如果图像需要旋转一定角度之后在文档中显示，可以通过函数public void setRotation(double r)设定，参数r为弧度，如果旋转角度为30度，则参数r= Math.PI / 6。</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">七、中文处理</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">默认的iText字体设置不支持中文字体，需要下载远东字体包iTextAsian.jar，否则不能往PDF文档中输出中文字体。通过下面的代码就可以在文档中使用中文了：</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">com.lowagie.text.Font FontChinese = new com.lowagie.text.Font(bfChinese, 12, com.lowagie.text.Font.NORMAL);</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">Paragraph pragraph=new Paragraph("你好", FontChinese);</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">八、后计</p>
<p style="margin: 10px 0px 0px; word-wrap: break-word; padding: 0px;">iText
还有很多高级的功能，这里就不一一介绍了，具体开发时可参考发布的文档。总的来说，iText是一套java环境下不错的制作PDF的组件。因为
iText支持jsp/javabean下的开发，这使得B/S应用中的报表问题能得到很好的解决。由于iText毕竟不是专门为制作报表设计，所有报表
中的内容、格式都需要通过写代码实现，相对于那些专业的支持可视化设计的报表软件来说，编程的工作量就有一定程度的增加。</p>
</div>
<img src ="http://www.blogjava.net/keweibo/aggbug/343138.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/keweibo/" target="_blank">KE</a> 2011-01-18 11:51 <a href="http://www.blogjava.net/keweibo/articles/343138.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>