java怎么根来自据word模板生成word文档

wordJava

1个回答

写回答

彼岸挽歌

2026-01-20 06:55

+ 关注

word
word

  public class CreatewordDemo{

  public void createDocContext(String file)throws DocumentException,IOException {

  //设置纸张大小

Java
Java

  Document document = newDocument(PageSize.A4);

  //建立一个书写器(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的操作,有截图就是有,没有就是没有了,你的需求太奇葩。。。。 把“你好我就是测试的”当变量传进去不就得了!想写什么句子都可以啊 追问 : 我最开始就是你那么弄的 结果经理觉得不合适 叫我换了

举报有用(0分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号