
word
public void createDocContext(String file)throws DocumentException,IOException {
//设置纸张大小

Java
//建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中 RtfWriter2.getInstance(document, newFileOutputStream(file));
*.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 = newParagraph(标题);
//设置标题格式对齐方式
title.setAlignment(Element.ALIGN_CENTER);
title.setFont(titleFont);
document.add(title);
String contextString =iText是一个能够快速产生PDF文件的Java类库。
+ \n//换行 +iText的Java类对于那些要产生包含文本,
+ 表格,图形的只读文档是很有用的。它的类库尤其与JavaServlet有很好的给合。
+使用iText与PDF能够使你正确的控制Servlet的输出。;
Paragraph context = newParagraph(contextString);
//正文格式左对齐
context.setAlignment(Element.ALIGN_LEFT);
context.setFont(contextFont);
//离上一段落(标题)空的行数
context.setSpacingBefore(5);
//设置第一行空的列数
context.setFirstLineIndent(20);
document.add(context);
//利用类FontFactory结合Font和Color可以设置各种各样字体样式
Paragraph underline = new Paragraph(下划线的实现,FontFactory.getFont( FontFactory.HELVETICA_BOLDOBLIQUE, 18,Font.UNDERLINE, new Color(0, 0,255)));
document.add(underline);
// 设置 Table表格
Table aTable = newTable(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 haderCell = newCell(表格表头);
haderCell.setHeader(true);
haderCell.setcolspan(3);
aTable.addCell(haderCell);
aTable.endHeaders();
Font fontChinese = new Font(bfChinese, 12, Font.NORMAL,*.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(newCell(#1));
aTable.addCell(newCell(#2));
aTable.addCell(newCell(#3));
aTable.addCell(newCell(#4));
Cell cell3 = new Cell(new Phrase(一行三列数据,fontChinese));
cell3.setcolspan(3);
cell3.setVerticalAlignment(Element.ALIGN_CENTER);
aTable.addCell(cell3);
document.add(aTable);
document.add(newParagraph(\n));
//添加图片 Image.getInstance即可以放路径又可以放二进制字节流
Image img =Image.getInstance(d:\\img01800.jpg);
img.setABSolutePosition(0,0);
img.setAlignment(Image.RIGHT);//设置图片显示位置
img.scaleABSolute(60, 60);//直接设定显示尺寸
//img.scalePercent(50);//表示显示的大小为原尺寸的50%
// img.scalePercent(25,12);//图像高宽的显示比例
//img.setRotation(30);//图像旋转一定角度
document.add(img);
document.close();
}
public static void mAIn(String[] args){
CreatewordDemo word = newCreatewordDemo();
String file =d:/demo1.doc;
try{
word.createDocContext(file);
} catch (DocumentException e){
e.printStackTrace();
} catch (IOException e){
e.printStackTrace();
}
} }追问 : 这个我用了 主要是他的模板单一,,不能满足多样的需求,,想弄一个word来弄模板,需求更改只需要改word文档模板就行了 追答 : 你的意思就是给一个word文档然后类似截图? 追问 : 对的 。。大概是这样考虑的 追答 : 你仔细去看看poi对word的操作,有截图就是有,没有就是没有了,你的需求太奇葩。。。。 把“你好我就是测试的”当变量传进去不就得了!想写什么句子都可以啊 追问 : 我最开始就是你那么弄的 结果经理觉得不合适 叫我换了
Copyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号