-05-29 回答
你好,试试以下代码行不行。
package com.sample;
import java.awt.color;
import java.io.fileoutputstream;
import java.io.ioexception;
import com.lowagie.text.cell;
import com.lowagie.text.document;
import com.lowagie.text.documentexception;
import com.lowagie.text.element;
import com.lowagie.text.font;
import com.lowagie.text.fontfactory;
import com.lowagie.text.image;
import com.lowagie.text.pagesize;
import com.lowagie.text.paragraph;
import com.lowagie.text.phrase;
import com.lowagie.text.table;
import com.lowagie.text.pdf.basefont;
import com.lowagie.text.rtf.rtfwriter2;
/**
*
* @author wangyanjun
* @email bd_wyj@
* @createdate jun 12,
*/
public class createworddemo {
public void createdoccontext(string file) throws documentexception,
ioexception {
// 设置纸张大小
document document = new document(pagesize.a4);
// 建立一个书写器(writer)与document对象关联,通过书写器(writer)可以将文档写入到磁盘中
rtfwriter2.getinstance(document, new fileoutputstream(file));
document.open();
// 设置中文字体
basefont bfchinese = basefont.createfont("stsongstd-light",
"unigb-ucs2-h", basefont.not_embedded);
// 标题字体风格
font titlefont = new font(bfchinese, 12, font.bold);
// 正文字体风格
font contextfont = new font(bfchinese, 10, font.normal);
paragraph title = new paragraph("标题");
// 设置标题格式对齐方式
title.setalignment(element.align_center);
title.setfont(titlefont);
document.add(title);
string contextstring = "itext是一个能够快速产生pdf文件的java类库。"
+ " \n"// 换行
+ "itext的java类对于那些要产生包含文本,"
+ "表格,图形的只读文档是很有用的。它的类库尤其与java servlet有很好的给合。"
+ "使用itext与pdf能够使你正确的控制servlet的输出。";
paragraph context = new paragraph(contextstring);
// 正文格式左对齐
context.setalignment(element.align_left);
context.setfont(contextfont);
// 离上一段落(标题)空的行数
context.setspacingbefore(5);
// 设置第一行空的列数
context.setfirstlineindent(20);
document.add(context);
//利用类fontfactory结合font和color可以设置各种各样字体样式
/**
* font.underline 下划线,font.bold 粗体
*/
paragraph underline = new paragraph("下划线的实现", fontfactory.getfont(
fontfactory.helvetica_boldoblique, 18, font.underline,
new color(0, 0, 255)));
document.add(underline);
// 设置 table 表格
table atable = new table(3);
int width[] = {25,25,50};
atable.setwidths(width);//设置每列所占比例
atable.setwidth(90); // 占页面宽度 90%
atable.setalignment(element.align_center);//居中显示
atable.setalignment(element.align_middle);//纵向居中显示
atable.setautofillemptycells(true); //自动填满
atable.setborderwidth(1); //边框宽度
atable.setbordercolor(new color(0, 125, 255)); //边框颜色
atable.setpadding(2);//衬距,看效果就知道什么意思了
atable.setspacing(3);//即单元格之间的间距
atable.setborder(2);//边框
//设置表头
/**
* cell.setheader(true);是将该单元格作为表头信息显示;
* cell.setcolspan(3);指定了该单元格占3列;
* 为表格添加表头信息时,要注意的是一旦表头信息添加完了之后,
* 必须调用 endheaders()方法,否则当表格跨页后,表头信息不会再显示
*/
cell hadercell = new cell("表格表头");
hadercell.setheader(true);
hadercell.setcolspan(3);
atable.addcell(hadercell);
atable.endheaders();
font fontchinese = new font(bfchinese, 12, font.normal, color.green);
cell cell = new cell(new phrase("这是一个测试的 3*3 table 数据", fontchinese ));
cell.setverticalalignment(element.align_top);
cell.setbordercolor(new color(255, 0, 0));
cell.setrowspan(2);
atable.addcell(cell);
atable.addcell(new cell("#1"));
atable.addcell(new cell("#2"));
atable.addcell(new cell("#3"));
atable.addcell(new cell("#4"));
cell cell3 = new cell(new phrase("一行三列数据", fontchinese ));
cell3.setcolspan(3);
cell3.setverticalalignment(element.align_center);
atable.addcell(cell3);
document.add(atable);
document.add(new paragraph("\n"));
//添加图片
image img=image.getinstance("d:\\img01800.jpg");
img.setabsoluteposition(0, 0);
img.setalignment(image.right);//设置图片显示位置
img.scaleabsolute(12,35);//直接设定显示尺寸
img.scalepercent(50);//表示显示的大小为原尺寸的50%
img.scalepercent(25, 12);//图像高宽的显示比例
img.setrotation(30);//图像旋转一定角度
document.add(img);
document.close();
}
/**
* @param args
*/
public static void main(string[] args) {
createworddemo word = new createworddemo();
string file = "c:/demo1.doc";
try {
word.createdoccontext(file);
} catch (documentexception e) {
e.printstacktrace();
} catch (ioexception e) {
e.printstacktrace();
}
}
}