﻿<?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-心如止水 一心向佛</title><link>http://www.blogjava.net/yangaiyou/</link><description>茶亦醉人何必酒  书能香我无须花！</description><language>zh-cn</language><lastBuildDate>Sun, 05 Jul 2009 07:09:30 GMT</lastBuildDate><pubDate>Sun, 05 Jul 2009 07:09:30 GMT</pubDate><ttl>60</ttl><item><title>跪求java生成PDF问题方案</title><link>http://www.blogjava.net/yangaiyou/archive/2009/06/19/283140.html</link><dc:creator>杨爱友</dc:creator><author>杨爱友</author><pubDate>Thu, 18 Jun 2009 17:40:00 GMT</pubDate><guid>http://www.blogjava.net/yangaiyou/archive/2009/06/19/283140.html</guid><wfw:comment>http://www.blogjava.net/yangaiyou/comments/283140.html</wfw:comment><comments>http://www.blogjava.net/yangaiyou/archive/2009/06/19/283140.html#Feedback</comments><slash:comments>19</slash:comments><wfw:commentRss>http://www.blogjava.net/yangaiyou/comments/commentRss/283140.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yangaiyou/services/trackbacks/283140.html</trackback:ping><description><![CDATA[目前我的项目中系统生成了订单（JSP页面），这个订单要通过邮件发送给供应商，总不能粘一段html文字发给供应商吧。<br />
于是考虑导出成excel，将excel文件发送出去，但客户觉得excel文件太容易更改，要求生成PDF或图片等不太容易改的文档。<br />
现在的问题是：我如何生成这个PDF文档？<br />
考虑过用iText，通过java创建PDF文档，但发现太繁琐了，在一天的时间内很难做出个像样的报表。<br />
那么请问大侠们，我应该通过什么方式生成这个&#8220;不太容易改&#8221;的文档呢?<br />
能否给点itext的一些资料或你们写过的代码。
<img src ="http://www.blogjava.net/yangaiyou/aggbug/283140.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yangaiyou/" target="_blank">杨爱友</a> 2009-06-19 01:40 <a href="http://www.blogjava.net/yangaiyou/archive/2009/06/19/283140.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>sql语句记录</title><link>http://www.blogjava.net/yangaiyou/archive/2009/06/18/283114.html</link><dc:creator>杨爱友</dc:creator><author>杨爱友</author><pubDate>Thu, 18 Jun 2009 13:25:00 GMT</pubDate><guid>http://www.blogjava.net/yangaiyou/archive/2009/06/18/283114.html</guid><wfw:comment>http://www.blogjava.net/yangaiyou/comments/283114.html</wfw:comment><comments>http://www.blogjava.net/yangaiyou/archive/2009/06/18/283114.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yangaiyou/comments/commentRss/283114.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yangaiyou/services/trackbacks/283114.html</trackback:ping><description><![CDATA[1.修改字段类型、长度<br />
alter table provider alter column payeeaddr varchar(128)<br />
2.
<img src ="http://www.blogjava.net/yangaiyou/aggbug/283114.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yangaiyou/" target="_blank">杨爱友</a> 2009-06-18 21:25 <a href="http://www.blogjava.net/yangaiyou/archive/2009/06/18/283114.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>itex生成PDF文档示例</title><link>http://www.blogjava.net/yangaiyou/archive/2009/06/18/283015.html</link><dc:creator>杨爱友</dc:creator><author>杨爱友</author><pubDate>Thu, 18 Jun 2009 04:04:00 GMT</pubDate><guid>http://www.blogjava.net/yangaiyou/archive/2009/06/18/283015.html</guid><wfw:comment>http://www.blogjava.net/yangaiyou/comments/283015.html</wfw:comment><comments>http://www.blogjava.net/yangaiyou/archive/2009/06/18/283015.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yangaiyou/comments/commentRss/283015.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yangaiyou/services/trackbacks/283015.html</trackback:ping><description><![CDATA[<p>package dao.other;</p>
<p>import java.awt.Color;<br />
import java.io.File;<br />
import java.io.FileInputStream;<br />
import java.io.FileOutputStream;<br />
import java.io.IOException;</p>
<p>import org.pdfbox.pdfparser.PDFParser;<br />
import org.pdfbox.pdmodel.PDDocument;<br />
import org.pdfbox.util.PDFTextStripper;</p>
<p>import com.lowagie.text.Cell;<br />
import com.lowagie.text.Chapter;<br />
import com.lowagie.text.Document;<br />
import com.lowagie.text.DocumentException;<br />
import com.lowagie.text.Font;<br />
import com.lowagie.text.FontFactory;<br />
import com.lowagie.text.List;<br />
import com.lowagie.text.ListItem;<br />
import com.lowagie.text.PageSize;<br />
import com.lowagie.text.Paragraph;<br />
import com.lowagie.text.Section;<br />
import com.lowagie.text.Table;<br />
import com.lowagie.text.pdf.BaseFont;<br />
import com.lowagie.text.pdf.PdfWriter;</p>
<p>public class PDFTest {</p>
<p>&nbsp;/**<br />
&nbsp; * 很多应用程序要求动态生成 PDF 文档。这类应用程序包括银行生成用于电子邮件投递的客户报表，到读者购买特定图书章节并以 PDF<br />
&nbsp; * 格式接收这些文档。例子罗列下去是很多的。在本文中，将使用 iText Java 库生成 PDF<br />
&nbsp; * 文档，并引导您完成一个示例应用程序，以使您能够更好地理解和使用 iText。 iText 是 Lowagie.com 站点（请参阅<br />
&nbsp; * 参考资料）免费提供的 Java 库。iText 库的功能很强大，支持 HTML、RTF 和 XML 文档的生成，此外还能够生成 PDF<br />
&nbsp; * 文档。可以从多种字体中选择文档中所使用的字体。同时，iText 的结构允许使用相同的代码生成以上任意类型的文档。<br />
&nbsp; * http://www.lowagie.com/iText/ iText API：近距离观察 com.lowagie.text.Document<br />
&nbsp; * 是生成 PDF<br />
&nbsp; * 的主要的类。它是需要使用的第一个类。一旦开始创建文档，将需要一个写入器向文档中写入内容。com.lowagie.text.pdf.PdfWriter<br />
&nbsp; * 就是一个 PDF 写入器。下面列出了通常需要使用的类： com.lowagie.text.Paragraph —— 这个类表示一个缩进的段落。<br />
&nbsp; * com.lowagie.text.Chapter —— 这个类表示 PDF 文档中的章节。使用 Paragraph 作为题目并使用 int<br />
&nbsp; * 作为章节号码来创建它。 com.lowagie.text.Font ——<br />
&nbsp; * 这个类包含了全部的字体规范，例如字体、大小、样式和颜色。各种字体都在这个类中声明为静态常数。 com.lowagie.text.List ——<br />
&nbsp; * 这个类表示一个列表，按顺序包含许多 ListItems。 com.lowagie.text.Table ——<br />
&nbsp; * 这个类表示包含单元格的表，单元格有序地排列在矩阵中。<br />
&nbsp; */</p>
<p>&nbsp;/**<br />
&nbsp; * 写PDF文件，展示了PDF文档、章节、小节、字体、段落、表格、列表的使用 最后展示如何使用写入中文。<br />
&nbsp; * <br />
&nbsp; * @param fileName<br />
&nbsp; */<br />
&nbsp;public void writePDF(String fileName) {<br />
&nbsp;&nbsp;File file = new File(fileName);<br />
&nbsp;&nbsp;FileOutputStream out = null;</p>
<p>&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;// （1）实例化文档对象<br />
&nbsp;&nbsp;&nbsp;// 第一个参数是页面大小。接下来的参数分别是左、右、上和下页边距。<br />
&nbsp;&nbsp;&nbsp;Document document = new Document(PageSize.A4, 50, 50, 50, 50);</p>
<p>&nbsp;&nbsp;&nbsp;// （2）创建写入器<br />
&nbsp;&nbsp;&nbsp;// 第一个参数是对文档对象的引用，第二个参数是输出的文件，将out和document连接起来<br />
&nbsp;&nbsp;&nbsp;out = new FileOutputStream(file);<br />
&nbsp;&nbsp;&nbsp;PdfWriter writer = PdfWriter.getInstance(document, out);<br />
&nbsp;&nbsp;&nbsp;// 打开文档准备写入内容<br />
&nbsp;&nbsp;&nbsp;document.open();</p>
<p>&nbsp;&nbsp;&nbsp;// （3）下面创建章节对象<br />
&nbsp;&nbsp;&nbsp;// 首先创建段落对象，作为章节的标题。FontFactory用于指定段落的字体。<br />
&nbsp;&nbsp;&nbsp;Font font = FontFactory.getFont(FontFactory.HELVETICA, 18,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Font.BOLDITALIC, new Color(0, 0, 255));<br />
&nbsp;&nbsp;&nbsp;Paragraph chapter1_title = new Paragraph("Chapter 1", font);<br />
&nbsp;&nbsp;&nbsp;// 创建了一个章节对象，标题为"Chapter 1"<br />
&nbsp;&nbsp;&nbsp;Chapter chapter1 = new Chapter(chapter1_title, 1);<br />
&nbsp;&nbsp;&nbsp;// 将编号级别设为 0 就不会在页面上显示章节编号<br />
&nbsp;&nbsp;&nbsp;chapter1.setNumberDepth(0);</p>
<p>&nbsp;&nbsp;&nbsp;// （4）创建小节对象<br />
&nbsp;&nbsp;&nbsp;// 创建小节对象的标题<br />
&nbsp;&nbsp;&nbsp;font = FontFactory.getFont(FontFactory.HELVETICA, 16, Font.BOLD,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new Color(255, 0, 0));<br />
&nbsp;&nbsp;&nbsp;Paragraph section1_title1 = new Paragraph("Section 1 of Chapter 1",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;font);<br />
&nbsp;&nbsp;&nbsp;// 创建一个小节对象，标题为"This is Section 1 in Chapter 1"，属于chapter1。<br />
&nbsp;&nbsp;&nbsp;Section section1 = chapter1.addSection(section1_title1);</p>
<p>&nbsp;&nbsp;&nbsp;// （5）往小节中写文本内容<br />
&nbsp;&nbsp;&nbsp;Paragraph text = new Paragraph(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"This is the first text in section 1 of chapter 1.");<br />
&nbsp;&nbsp;&nbsp;section1.add(text);<br />
&nbsp;&nbsp;&nbsp;text = new Paragraph("Following is a 5&#215;5 table:");<br />
&nbsp;&nbsp;&nbsp;section1.add(text);</p>
<p>&nbsp;&nbsp;&nbsp;// （6）往小节中写表格<br />
&nbsp;&nbsp;&nbsp;// 创建表格对象<br />
&nbsp;&nbsp;&nbsp;Table table = new Table(5, 5);<br />
&nbsp;&nbsp;&nbsp;// 设置表格边框颜色<br />
&nbsp;&nbsp;&nbsp;table.setBorderColor(new Color(220, 255, 100));<br />
&nbsp;&nbsp;&nbsp;// 设置单元格的边距间隔等<br />
&nbsp;&nbsp;&nbsp;table.setPadding(1);<br />
&nbsp;&nbsp;&nbsp;table.setSpacing(1);<br />
&nbsp;&nbsp;&nbsp;table.setBorderWidth(1);<br />
&nbsp;&nbsp;&nbsp;// 单元格对象<br />
&nbsp;&nbsp;&nbsp;Cell cell = null;<br />
&nbsp;&nbsp;&nbsp;// 添加表头信息<br />
&nbsp;&nbsp;&nbsp;for (int colNum = 0; colNum &lt; 5; colNum++) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;cell = new Cell("header-" + colNum);<br />
&nbsp;&nbsp;&nbsp;&nbsp;cell.setHeader(true);<br />
&nbsp;&nbsp;&nbsp;&nbsp;table.addCell(cell);<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;table.endHeaders();<br />
&nbsp;&nbsp;&nbsp;// 添加表的内容<br />
&nbsp;&nbsp;&nbsp;for (int rowNum = 1; rowNum &lt; 5; rowNum++) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;for (int colNum = 0; colNum &lt; 5; colNum++) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cell = new Cell("value-" + rowNum + "-" + colNum);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table.addCell(cell);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;// 将表格对象添加到小节对象中<br />
&nbsp;&nbsp;&nbsp;section1.add(table);</p>
<p>&nbsp;&nbsp;&nbsp;// （7）添加列表<br />
&nbsp;&nbsp;&nbsp;// 列表包含一定数量的 ListItem。可以对列表进行编号，也可以不编号。<br />
&nbsp;&nbsp;&nbsp;// 将第一个参数设置为 true 表明想创建一个进行编号的列表；<br />
&nbsp;&nbsp;&nbsp;// 第二个参数设置为true表示列表采用字母进行编号，为false则用数字进行编号；<br />
&nbsp;&nbsp;&nbsp;// 第三个参数为列表内容与编号之间的距离。<br />
&nbsp;&nbsp;&nbsp;List list = new List(true, false, 20);<br />
&nbsp;&nbsp;&nbsp;ListItem item = new ListItem("First item of list;");<br />
&nbsp;&nbsp;&nbsp;list.add(item);<br />
&nbsp;&nbsp;&nbsp;item = new ListItem("Second item of list;");<br />
&nbsp;&nbsp;&nbsp;list.add(item);<br />
&nbsp;&nbsp;&nbsp;item = new ListItem("Third item of list.");<br />
&nbsp;&nbsp;&nbsp;list.add(item);<br />
&nbsp;&nbsp;&nbsp;// 将列表对象添加到小节对象中<br />
&nbsp;&nbsp;&nbsp;section1.add(list);</p>
<p>&nbsp;&nbsp;&nbsp;// （8）添加中文<br />
&nbsp;&nbsp;&nbsp;// 允许在PDF中写入中文，将字体文件放在classPath中。<br />
&nbsp;&nbsp;&nbsp;// simfang.ttf是仿宋的字体文件<br />
&nbsp;&nbsp;&nbsp;&nbsp; BaseFont bfChinese = BaseFont.createFont("STSong-Light",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);<br />
&nbsp;&nbsp;&nbsp;// 中文大小为20，加粗<br />
&nbsp;&nbsp;&nbsp;font = new Font(bfChinese, 20, Font.BOLD);<br />
&nbsp;&nbsp;&nbsp;text = new Paragraph("PDF中文测试", font);<br />
&nbsp;&nbsp;&nbsp;section1.add(text);</p>
<p>&nbsp;&nbsp;&nbsp;// （9）将章节对象加入到文档中<br />
&nbsp;&nbsp;&nbsp;document.add(chapter1);</p>
<p>&nbsp;&nbsp;&nbsp;// （10）关闭文档<br />
&nbsp;&nbsp;&nbsp;document.close();<br />
&nbsp;&nbsp;&nbsp;System.out.println("PDF文件生成成功，PDF文件名：" + file.getAbsolutePath());<br />
&nbsp;&nbsp;} catch (DocumentException e) {<br />
&nbsp;&nbsp;&nbsp;System.out.println("PDF文件" + file.getAbsolutePath() + "生成失败！" + e);<br />
&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;} catch (IOException ee) {<br />
&nbsp;&nbsp;&nbsp;System.out.println("PDF文件" + file.getAbsolutePath() + "生成失败！" + ee);<br />
&nbsp;&nbsp;&nbsp;ee.printStackTrace();<br />
&nbsp;&nbsp;} finally {<br />
&nbsp;&nbsp;&nbsp;if (out != null) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 关闭输出文件流<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.close();<br />
&nbsp;&nbsp;&nbsp;&nbsp;} catch (IOException e1) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
&nbsp;}</p>
<p>&nbsp;/**<br />
&nbsp; * 读PDF文件，使用了pdfbox开源项目，新的版本已经支持中文了。 上www.pdfbox.org下载读PDF的jar包<br />
&nbsp; * <br />
&nbsp; * @param fileName<br />
&nbsp; */<br />
&nbsp;public void readPDF(String fileName) {<br />
&nbsp;&nbsp;File file = new File(fileName);<br />
&nbsp;&nbsp;FileInputStream in = null;<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;in = new FileInputStream(fileName);<br />
&nbsp;&nbsp;&nbsp;// 新建一个PDF解析器对象<br />
&nbsp;&nbsp;&nbsp;PDFParser parser = new PDFParser(in);<br />
&nbsp;&nbsp;&nbsp;// 对PDF文件进行解析<br />
&nbsp;&nbsp;&nbsp;parser.parse();<br />
&nbsp;&nbsp;&nbsp;// 获取解析后得到的PDF文档对象<br />
&nbsp;&nbsp;&nbsp;PDDocument pdfdocument = parser.getPDDocument();<br />
&nbsp;&nbsp;&nbsp;// 新建一个PDF文本剥离器<br />
&nbsp;&nbsp;&nbsp;PDFTextStripper stripper = new PDFTextStripper();<br />
&nbsp;&nbsp;&nbsp;// 从PDF文档对象中剥离文本<br />
&nbsp;&nbsp;&nbsp;String result = stripper.getText(pdfdocument);<br />
&nbsp;&nbsp;&nbsp;System.out.println("PDF文件" + file.getAbsolutePath() + "的文本内容如下：");<br />
&nbsp;&nbsp;&nbsp;System.out.println(result);</p>
<p>&nbsp;&nbsp;} catch (Exception e) {<br />
&nbsp;&nbsp;&nbsp;System.out.println("读取PDF文件" + file.getAbsolutePath() + "生失败！" + e);<br />
&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;} finally {<br />
&nbsp;&nbsp;&nbsp;if (in != null) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;in.close();<br />
&nbsp;&nbsp;&nbsp;&nbsp;} catch (IOException e1) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
&nbsp;}</p>
<p>&nbsp;public static void main(String[] args) {<br />
&nbsp;&nbsp;PDFTest pdf = new PDFTest();<br />
&nbsp;&nbsp;String fileName = "E:/source/java/youz/dist/data/tempPDF.pdf";<br />
&nbsp;&nbsp;pdf.writePDF(fileName);<br />
&nbsp;&nbsp;//pdf.readPDF(fileName);<br />
&nbsp;}</p>
<p>}<br />
</p>
<img src ="http://www.blogjava.net/yangaiyou/aggbug/283015.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yangaiyou/" target="_blank">杨爱友</a> 2009-06-18 12:04 <a href="http://www.blogjava.net/yangaiyou/archive/2009/06/18/283015.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用itext生成pdf</title><link>http://www.blogjava.net/yangaiyou/archive/2009/06/15/282479.html</link><dc:creator>杨爱友</dc:creator><author>杨爱友</author><pubDate>Mon, 15 Jun 2009 15:34:00 GMT</pubDate><guid>http://www.blogjava.net/yangaiyou/archive/2009/06/15/282479.html</guid><wfw:comment>http://www.blogjava.net/yangaiyou/comments/282479.html</wfw:comment><comments>http://www.blogjava.net/yangaiyou/archive/2009/06/15/282479.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yangaiyou/comments/commentRss/282479.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yangaiyou/services/trackbacks/282479.html</trackback:ping><description><![CDATA[<p>【转载于<a href="http://www.javaeye.com/topic/110122">http://www.javaeye.com/topic/110122</a>】<br />
<br />
一、前言</p>
<p>　　在企业的信息系统中，报表处理一直占比较重要的作用，本文将介绍一种生成PDF报表的Java组件--iText。通过 在服务器端使用Jsp或JavaBean生成PDF报表，客户端采用超级连接显示或下载得到生成的报表，这样就很好的解决了B/S系统的报表处理问题。</p>
<p>　　二、iText简介</p>
<p>　　iText是著名的开放源码的站点sourceforge一个项目，是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档，而且可以将XML、Html文件转化为PDF文件。</p>
<p>　　iText的安装非常方便，在<a href="http://www.lowagie.com/iText/download.html">http://www.lowagie.com/iText/download.html</a> - download 网站上下载iText.jar文件后，只需要在系统的CLASSPATH中加入iText.jar的路径，在程序中就可以使用iText类库了。</p>
<p>　　三、建立第一个PDF文档</p>
<p>　　用iText生成PDF文档需要5个步骤：</p>
<p>　　①建立com.lowagie.text.Document对象的实例。</p>
<p>『转载于<a href="http://www.javaeye.com/topic/110122">http://www.javaeye.com/topic/110122</a>』<br />
<br />
Document document = new Document(); </p>
<p>　　②建立一个书写器(Writer)与document对象关联，通过书写器(Writer)可以将文档写入到磁盘中。</p>
<p><br />
PDFWriter.getInstance(document, new FileOutputStream("Helloworld.PDF")); </p>
<p>　　③打开文档。</p>
<p><br />
document.open(); </p>
<p>　　④向文档中添加内容。</p>
<p><br />
document.add(new Paragraph("Hello World")); </p>
<p>　　⑤关闭文档。</p>
<p><br />
document.close(); </p>
<p>　　通过上面的5个步骤，就能产生一个Helloworld.PDF的文件，文件内容为"Hello World"。</p>
<p>　　建立com.lowagie.text.Document对象的实例</p>
<p>　　com.lowagie.text.Document对象的构建函数有三个，分别是：</p>
<p><br />
public Document();<br />
public Document(Rectangle pageSize);<br />
public Document(Rectangle pageSize,<br />
int marginLeft,<br />
int marginRight,<br />
int marginTop,<br />
int marginBottom); </p>
<p>　 　构建函数的参数pageSize是文档页面的大小，对于第一个构建函数，页面的大小为A4，同Document(PageSize.A4)的效果一样； 对于第三个构建函数，参数marginLeft、marginRight、marginTop、marginBottom分别为左、右、上、下的页边距。</p>
<p>　 　通过参数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>　　书写器（Writer）对象</p>
<p>　 　一旦文档(document)对象建立好之后，需要建立一个或多个书写器(Writer)对象与之关联。通过书写器(Writer)对象可以将具体文档 存盘成需要的格式，如com.lowagie.text.PDF.PDFWriter可以将文档存成PDF文件， com.lowagie.text.html.HtmlWriter可以将文档存成html文件。</p>
<p>　　设定文档属性</p>
<p>　　在文档打开之前，可以设定文档的标题、主题、作者、关键字、装订方式、创建者、生产者、创建日期等属性，调用的方法分别是：</p>
<p><br />
public boolean addTitle(String title)<br />
public boolean addSubject(String subject)<br />
public boolean addKeywords(String keywords)<br />
public boolean addAuthor(String author)<br />
public boolean addCreator(String creator)<br />
public boolean addProducer()<br />
public boolean addCreationDate()<br />
public boolean addHeader(String name, String content) </p>
<p>　　其中方法addHeader对于PDF文档无效，addHeader仅对html文档有效，用于添加文档的头信息。<br />
当新的页面产生之前，可以设定页面的大小、书签、脚注（HeaderFooter）等信息，调用的方法是：</p>
<p><br />
public boolean setPageSize(Rectangle pageSize)<br />
public boolean add(Watermark watermark)<br />
public void removeWatermark()<br />
public void setHeader(HeaderFooter header)<br />
public void resetHeader()<br />
public void setFooter(HeaderFooter footer)<br />
public void resetFooter()<br />
public void resetPageCount()<br />
public void setPageCount(int pageN)&nbsp; </p>
<p>　　如果要设定第一页的页面属性，这些方法必须在文档打开之前调用。</p>
<p>　　对于PDF文档，iText还提供了文档的显示属性，通过调用书写器的setViewerPreferences方法可以控制文档打开时Acrobat Reader的显示属性，如是否单页显示、是否全屏显示、是否隐藏状态条等属性。</p>
<p>　　另外，iText也提供了对PDF文件的安全保护，通过书写器（Writer）的setEncryption方法，可以设定文档的用户口令、只读、可打印等属性。</p>
<p>　　添加文档内容</p>
<p>　　所有向文档添加的内容都是以对象为单位的，如Phrase、Paragraph、Table、Graphic对象等。比较常用的是段落(Paragraph)对象，用于向文档中添加一段文字。</p>
<p>　　四、文本处理</p>
<p>　　iText中用文本块(Chunk)、短语(Phrase)和段落(paragraph)处理文本。<br />
文本块(Chunk)是处理文本的最小单位，有一串带格式（包括字体、颜色、大小）的字符串组成。如以下代码就是产生一个字体为HELVETICA、大小为10、带下划线的字符串：</p>
<p>Chunk chunk1 = new Chunk("This text is underlined", FontFactory.getFont(FontFactory.HELVETICA, 12, Font.UNDERLINE));&nbsp; </p>
<p><br />
短语(Phrase)由一个或多个文本块(Chunk)组成，短语(Phrase)也可以设定字体，但对于其中以设定过字体的文本块(Chunk)无 效。通过短语(Phrase)成员函数add可以将一个文本块(Chunk)加到短语(Phrase)中，如：phrase6.add(chunk);</p>
<p>　 　段落(paragraph)由一个或多个文本块(Chunk)或短语(Phrase)组成，相当于WORD文档中的段落概念，同样可以设定段落的字体大 小、颜色等属性。另外也可以设定段落的首行缩进、对齐方式（左对齐、右对齐、居中对齐）。通过函数setAlignment可以设定段落的对齐方式， setAlignment的参数1为居中对齐、2为右对齐、3为左对齐，默认为左对齐。</p>
<p>　　五、表格处理</p>
<p>　　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>　　类com.lowagie.text.Table的构造函数有三个：</p>
<p>　　　①Table (int columns)<br />
②Table(int columns, int rows)<br />
③Table(Properties attributes)</p>
<p>　　参数columns、rows、attributes分别为表格的列数、行数、表格属性。创建表格时必须指定表格的列数，而对于行数可以不用指定。</p>
<p>　　建立表格之后，可以设定表格的属性，如：边框宽度、边框颜色、衬距（padding space 即单元格之间的间距）大小等属性。下面通过一个简单的例子说明如何使用表格，代码如下：</p>
<p><br />
1:Table table = new Table(3);<br />
2:table.setBorderWidth(1);<br />
3:table.setBorderColor(new Color(0, 0, 255));<br />
4:table.setPadding(5);<br />
5:table.setSpacing(5);<br />
6:Cell cell = new Cell("header");<br />
7:cell.setHeader(true);<br />
8:cell.setColspan(3);<br />
9:table.addCell(cell);<br />
10:table.endHeaders();<br />
11:cell = new Cell("example cell with colspan 1 and rowspan 2");<br />
12:cell.setRowspan(2);<br />
13:cell.setBorderColor(new Color(255, 0, 0));<br />
14:table.addCell(cell);<br />
15:table.addCell("1.1");<br />
16:table.addCell("2.1");<br />
17:table.addCell("1.2");<br />
18:table.addCell("2.2");<br />
19:table.addCell("cell test1");<br />
20:cell = new Cell("big cell");<br />
21:cell.setRowspan(2);<br />
22:cell.setColspan(2);<br />
23:table.addCell(cell);<br />
24:table.addCell("cell test2"); </p>
<p><br />
运行结果如下：</p>
<p><br />
header&nbsp; <br />
example cell with colspan 1 and rowspan 2&nbsp; 1.1 2.1&nbsp; <br />
1.2 2.2&nbsp; <br />
cell test1 big cell&nbsp; <br />
cell test2&nbsp; </p>
<p><br />
代码1-5行用于新建一个表格，如代码所示，建立了一个列数为3的表格，并将边框宽度设为1，颜色为蓝色，衬距为5。</p>
<p>　 　代码6-10行用于设定表格的表头，第7行cell.setHeader(true);是将该单元格作为表头信息显示；第8行 cell.setColspan(3);指定了该单元格占3列；为表格添加表头信息时，要注意的是一旦表头信息添加完了之后，必须调用 endHeaders()方法，如第10行，否则当表格跨页后，表头信息不会再显示。</p>
<p>　　代码11-14行是向表格中添加一个宽度占一列，长度占二行的单元格。</p>
<p>　　往表格中添加单元格(cell)时，按自左向右、从上而下的次序添加。如执行完11行代码后，表格的右下方出现2行2列的空白，这是再往表格添加单元格时，先填满这个空白，然后再另起一行，15-24行代码说明了这种添加顺序。</p>
<p>　　六、图像处理</p>
<p>　 　iText中处理表格的类为com.lowagie.text.Image，目前iText支持的图像格式有：GIF, Jpeg, PNG, wmf等格式，对于不同的图像格式，iText用同样的构造函数自动识别图像格式。通过下面的代码分别获得gif、jpg、png图像的实例。</p>
<p><br />
Image gif = Image.getInstance("vonnegut.gif");<br />
Image jpeg = Image.getInstance("myKids.jpg");<br />
Image png = Image.getInstance("hitchcock.png"); </p>
<p><br />
图像的位置</p>
<p>　 　图像的位置主要是指图像在文档中的对齐方式、图像和文本的位置关系。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>　　图像的尺寸和旋转</p>
<p>　　如果图像在文档中不按原尺寸显示，可以通过下面的函数进行设定：</p>
<p><br />
public void scaleAbsolute(int newWidth, int newHeight)<br />
public void scalePercent(int percent)<br />
public void scalePercent(int percentX, int percentY) </p>
<p><br />
函数public void scaleAbsolute(int newWidth, int newHeight)直接设定显示尺寸；函数public void scalePercent(int percent)设定显示比例，如scalePercent(50)表示显示的大小为原尺寸的50%；而函数scalePercent(int percentX, int percentY)则图像高宽的显示比例。</p>
<p>　　如果图像需要旋转一定角度之后在文档中显示，可以通过函数public void setRotation(double r)设定，参数r为弧度，如果旋转角度为30度，则参数r= Math.PI / 6。</p>
<p>　　七、中文处理</p>
<p>　　默认的iText字体设置不支持中文字体，需要下载远东字体包iTextAsian.jar，否则不能往PDF文档中输出中文字体。通过下面的代码就可以在文档中使用中文了：</p>
<p><br />
BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);<br />
com.lowagie.text.Font FontChinese = new com.lowagie.text.Font(bfChinese, 12, com.lowagie.text.Font.NORMAL);<br />
Paragraph pragraph=new Paragraph("你好", FontChinese);&nbsp; </p>
<p><br />
八、后计</p>
<p>　 　iText还有很多高级的功能，这里就不一一介绍了，具体开发时可参考发布的文档。总的来说，iText是一套java环境下不错的制作PDF的组件。 因为iText支持jsp/javabean下的开发，这使得B/S应用中的报表问题能得到很好的解决。由于iText毕竟不是专门为制作报表设计，所有 报表中的内容、格式都需要通过写代码实现，相对于那些专业的支持可视化设计的报表软件来说，编程的工作量就有一定程度的增加。</p>
<img src ="http://www.blogjava.net/yangaiyou/aggbug/282479.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yangaiyou/" target="_blank">杨爱友</a> 2009-06-15 23:34 <a href="http://www.blogjava.net/yangaiyou/archive/2009/06/15/282479.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts杂谈</title><link>http://www.blogjava.net/yangaiyou/archive/2009/06/09/280973.html</link><dc:creator>杨爱友</dc:creator><author>杨爱友</author><pubDate>Tue, 09 Jun 2009 09:15:00 GMT</pubDate><guid>http://www.blogjava.net/yangaiyou/archive/2009/06/09/280973.html</guid><wfw:comment>http://www.blogjava.net/yangaiyou/comments/280973.html</wfw:comment><comments>http://www.blogjava.net/yangaiyou/archive/2009/06/09/280973.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yangaiyou/comments/commentRss/280973.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yangaiyou/services/trackbacks/280973.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: struts1,webwork,struts2简介&nbsp;&nbsp;<a href='http://www.blogjava.net/yangaiyou/archive/2009/06/09/280973.html'>阅读全文</a><img src ="http://www.blogjava.net/yangaiyou/aggbug/280973.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yangaiyou/" target="_blank">杨爱友</a> 2009-06-09 17:15 <a href="http://www.blogjava.net/yangaiyou/archive/2009/06/09/280973.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在项目中，各种对象（如工程、水库）类型数据如何存储？</title><link>http://www.blogjava.net/yangaiyou/archive/2009/04/10/264857.html</link><dc:creator>杨爱友</dc:creator><author>杨爱友</author><pubDate>Fri, 10 Apr 2009 07:37:00 GMT</pubDate><guid>http://www.blogjava.net/yangaiyou/archive/2009/04/10/264857.html</guid><wfw:comment>http://www.blogjava.net/yangaiyou/comments/264857.html</wfw:comment><comments>http://www.blogjava.net/yangaiyou/archive/2009/04/10/264857.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/yangaiyou/comments/commentRss/264857.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yangaiyou/services/trackbacks/264857.html</trackback:ping><description><![CDATA[<br />
开发模式为struts、hibernate、jstl等。 <br />
在一个项目中，涉及到很多字典型数据，如水库规模（大、中、小）、土壤类型（酸性、碱性、粘性）、工程类型（桥梁、水闸、公路）等。 <br />
那么在数据库中如何来存储这些字典型数据呢？若水库规模、土壤类型、工程类型等各建一张表，太繁琐了吧！若将他们都存到一张&#8220;字典&#8221;表中，那水库、土壤、工程表将不能设置外键，规模字段只能存储一个规模ID标志，在查询出水库列表后，在页面中只能获得各水库的规模ID，却无法获取规模的名称。 
<img src ="http://www.blogjava.net/yangaiyou/aggbug/264857.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yangaiyou/" target="_blank">杨爱友</a> 2009-04-10 15:37 <a href="http://www.blogjava.net/yangaiyou/archive/2009/04/10/264857.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在项目中，字典型数据如何存储？</title><link>http://www.blogjava.net/yangaiyou/archive/2009/04/10/264856.html</link><dc:creator>杨爱友</dc:creator><author>杨爱友</author><pubDate>Fri, 10 Apr 2009 07:34:00 GMT</pubDate><guid>http://www.blogjava.net/yangaiyou/archive/2009/04/10/264856.html</guid><wfw:comment>http://www.blogjava.net/yangaiyou/comments/264856.html</wfw:comment><comments>http://www.blogjava.net/yangaiyou/archive/2009/04/10/264856.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yangaiyou/comments/commentRss/264856.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yangaiyou/services/trackbacks/264856.html</trackback:ping><description><![CDATA[开发模式为struts、hibernate、jstl等。 <br />
在一个项目中，涉及到很多字典型数据，如水库规模（大、中、小）、土壤类型（酸性、碱性、粘性）、工程类型（桥梁、水闸、公路）等。 <br />
那么在数据库中如何来存储这些字典型数据呢？若水库规模、土壤类型、工程类型等各建一张表，太繁琐了吧！若将他们都存到一张&#8220;字典&#8221;表中，那水库、土壤、工程表将不能设置外键，规模字段只能存储一个规模ID标志，在查询出水库列表后，在页面中只能获得各水库的规模ID，却无法获取规模的名称。
<img src ="http://www.blogjava.net/yangaiyou/aggbug/264856.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yangaiyou/" target="_blank">杨爱友</a> 2009-04-10 15:34 <a href="http://www.blogjava.net/yangaiyou/archive/2009/04/10/264856.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>学习笔记（杂谈）</title><link>http://www.blogjava.net/yangaiyou/archive/2009/04/03/263715.html</link><dc:creator>杨爱友</dc:creator><author>杨爱友</author><pubDate>Fri, 03 Apr 2009 05:14:00 GMT</pubDate><guid>http://www.blogjava.net/yangaiyou/archive/2009/04/03/263715.html</guid><wfw:comment>http://www.blogjava.net/yangaiyou/comments/263715.html</wfw:comment><comments>http://www.blogjava.net/yangaiyou/archive/2009/04/03/263715.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yangaiyou/comments/commentRss/263715.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yangaiyou/services/trackbacks/263715.html</trackback:ping><description><![CDATA[<p><br />
<strong>一、spring</strong><br />
1.ContextLoaderListener<br />
&nbsp;&nbsp; 它作用就是启动Web容器时，自动装配ApplicationContext的配置信息。因为它实现了ServletContextListener这个接口，在web.xml配置这个监听器，启动容器时，就会默认执行它实现的方法。在ContextLoaderListener中关联了ContextLoader这个类，所以整个加载配置过程由ContextLoader来完成。ContextLoader创建的是 XmlWebApplicationContext这样一个类，它实现的接口是WebApplicationContext-&gt;ConfigurableWebApplicationContext-&gt;ApplicationContext-&gt;BeanFactory这样一来spring中的所有bean都由这个类来创建。如果在web.xml中不写任何参数配置信息，默认的路径是"/WEB-INF/applicationContext.xml，在WEB-INF目录下创建的xml文件的名称必须是applicationContext.xml。如果是要自定义文件名可以在web.xml里加入contextConfigLocation这个context参数：<br />
&nbsp;&lt;context-param&gt;<br />
&nbsp;&nbsp;&lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;<br />
&nbsp;&nbsp;&lt;param-value&gt;classpath*:spring/*.xml&lt;/param-value&gt;<br />
&nbsp;&lt;/context-param&gt;<br />
2.default-autowire<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在spring容器内拼凑bean叫作装配。装配bean的时候，你是在告诉容器，需要哪些bean，以及容器如何使用依赖注入将它们配合在一起。而default-autowire设置了bean的默认装配方式。<br />
我们常常使用&lt;ref&gt;标签为JavaBean注入它依赖的对象。但是对于一个大型的系统，这个操作将会耗费我们大量的资源，我们不得不花费大量的时间和精力用于创建和维护系统中的&lt;ref&gt;标签。我们可以通过指定autowire来让容器为受管JavaBean自动注入依赖对象。<br />
byName：通过属性的名字的方式查找JavaBean依赖的对象并为其注入。比如说类UserAction有个属性userService，Spring IoC容器会在配置文件中查找id/name属性为userService的bean，然后使用Seter方法为其注入。<br />
注意：在配置bean时，&lt;bean&gt;标签中Autowire属性的优先级比其上级标签&lt;beans/&gt;高，即是说，如果在上级标签中定义default-autowire属性为byName，而在&lt;bean&gt;中定义为byType时，Spring IoC容器会优先使用&lt;bean&gt;标签的配置。<br />
3.default-lazy-init<br />
&nbsp; 加载spring bean时，默认采用的延迟策略。<br />
<strong>二、Hibernate</strong><br />
1.load和get<br />
&nbsp; a.如果未能发现符合条件的记录，get方法返回null，而load方法会抛出一个&nbsp; ObjectNotFoundException。 <br />
&nbsp; b.Load方法可返回实体的代理类实例，而get方法永远直接返回实体类。 <br />
&nbsp; c.load方法可以充分利用内部缓存和二级缓存中的现有数据，而get方法则仅仅在内部缓存中进行数据查找，如没有发现对应数据，将越过二级缓存，直接调用SQL完成数据读取。<br />
2.对象的三种状态<br />
Hibernate的对象有3种状态，分别为：瞬时态(Transient)、 持久态(Persistent)、脱管态(Detached)。<br />
&nbsp; 瞬时态：<br />
由new命令开辟内存空间的java对象，<br />
&nbsp;&nbsp;&nbsp; 如：Person person = new Person("xxx", "xx");<br />
瞬时对象在内存孤立存在，不和数据库的数据有任何关联关系，在Hibernate中，可通过session的save()或saveOrUpdate()方法将瞬时对象与数据库相关联，并将数据对应的插入数据库中，此时该瞬时对象转变成持久化对象。</p>
<p>持久态：<br />
&nbsp;&nbsp;&nbsp;&nbsp; 处于该状态的对象在数据库中具有对应的记录，并拥有一个持久化标识。如果是用hibernate的delete()方法，对应的持久对象就变成瞬时对象。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当一个session执行close()或clear()、evict(po)之后，持久对象变成脱管对象，此时持久对象会变成脱管对象，此时该对象虽然具有数据库识别值，但它已不在HIbernate持久层的管理之下。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 持久对象具有如下特点：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1. 和session实例关联；</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2. 在数据库中有与之关联的记录。</p>
<p>脱管态：<br />
&nbsp;&nbsp; 当与某持久对象关联的session被关闭后，该持久对象转变为脱管对象。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1. 本质上与瞬时对象相同，在没有任何变量引用它时，JVM会在适当的时候将它回收；</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2. 比瞬时对象多了一个数据库记录标识值。<br />
2.名词解释<br />
&nbsp;a.persist把一个瞬态的实例持久化，但是并"不保证"标识符(identifier主键对应的属性)被立刻填入到持久化实例中，标识符的填入可能被推迟到flush的时候。<br />
&nbsp;b.clear完整的清除session缓存<br />
&nbsp;c.evcit(obj)把某个持久化对象从session的缓存中清空。<br />
&nbsp;d.persist只能持久化一个瞬时态的对象，<br />
<strong>三、java</strong><br />
1.格式化日期<br />
&nbsp; SimpleDateFormat format = new SimpleDateFormat("yyyy年M月d日");<br />
&nbsp; format.format(date);<br />
&nbsp; 用一个M、d则到月份日期为10一下时，只显示一位，避免出现01月02日的情况。<br />
&nbsp; 年可以用四位也可以用二位。<br />
2.JDBC操作<br />
&nbsp; a.连接数据库：<br />
&nbsp;&nbsp;&nbsp; Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();<br />
&nbsp;&nbsp;&nbsp; Connection conn = DriverManager.getConnection(url, userName, password);<br />
&nbsp;&nbsp;&nbsp; Statement stmt = conn .getStatement();<br />
&nbsp;&nbsp;&nbsp; ResultSet rs = stmt.executeQuery(sql);<br />
&nbsp;&nbsp;&nbsp; while(rs.next()){<br />
&nbsp;System.out.println(rs.getInt("userId"));<br />
&nbsp;System.out.println(rs.getString("userName"));<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;</p>
<p><br />
&nbsp;</p>
<img src ="http://www.blogjava.net/yangaiyou/aggbug/263715.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yangaiyou/" target="_blank">杨爱友</a> 2009-04-03 13:14 <a href="http://www.blogjava.net/yangaiyou/archive/2009/04/03/263715.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>告别2008！</title><link>http://www.blogjava.net/yangaiyou/archive/2009/01/14/251311.html</link><dc:creator>杨爱友</dc:creator><author>杨爱友</author><pubDate>Wed, 14 Jan 2009 08:49:00 GMT</pubDate><guid>http://www.blogjava.net/yangaiyou/archive/2009/01/14/251311.html</guid><wfw:comment>http://www.blogjava.net/yangaiyou/comments/251311.html</wfw:comment><comments>http://www.blogjava.net/yangaiyou/archive/2009/01/14/251311.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yangaiyou/comments/commentRss/251311.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yangaiyou/services/trackbacks/251311.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 2008年就这样的走了， 时间过得太快了，太快了！&nbsp;&nbsp;<a href='http://www.blogjava.net/yangaiyou/archive/2009/01/14/251311.html'>阅读全文</a><img src ="http://www.blogjava.net/yangaiyou/aggbug/251311.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yangaiyou/" target="_blank">杨爱友</a> 2009-01-14 16:49 <a href="http://www.blogjava.net/yangaiyou/archive/2009/01/14/251311.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>何为朋友？</title><link>http://www.blogjava.net/yangaiyou/archive/2009/01/08/250426.html</link><dc:creator>杨爱友</dc:creator><author>杨爱友</author><pubDate>Wed, 07 Jan 2009 16:09:00 GMT</pubDate><guid>http://www.blogjava.net/yangaiyou/archive/2009/01/08/250426.html</guid><wfw:comment>http://www.blogjava.net/yangaiyou/comments/250426.html</wfw:comment><comments>http://www.blogjava.net/yangaiyou/archive/2009/01/08/250426.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yangaiyou/comments/commentRss/250426.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yangaiyou/services/trackbacks/250426.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 我向来宽宏大量，对人对社会一副很积极的心态，没有埋怨过谁，在同事中，你是第一个。<br>今天的事情，让我很郁闷，我不想以此来改变我对人、对事、对社会的态度，但这件事，我不会忘记，会作为一个警钟，时刻敲醒我昏沉沉的头脑。&nbsp;&nbsp;<a href='http://www.blogjava.net/yangaiyou/archive/2009/01/08/250426.html'>阅读全文</a><img src ="http://www.blogjava.net/yangaiyou/aggbug/250426.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yangaiyou/" target="_blank">杨爱友</a> 2009-01-08 00:09 <a href="http://www.blogjava.net/yangaiyou/archive/2009/01/08/250426.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>