docx4j可以往文档中插入段落,使用起来和往List中插入元素一样,只要注意下下标位置就可以了,如第一次往下标5的地方插入段落后,模板中下标为8的变成了下标9。

     举个例子,模板如下:

     
[简单]docx4j插入段落
     往模板中插入段落和表格

     

		String inputfilepath = "e:/test_tmp/0904/test_p.docx";
		WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(new java.io.File(inputfilepath));
		MainDocumentPart documentPart = wordMLPackage.getMainDocumentPart();
		String titleStr = "测试插入段落";
		P p = Docx4j_Helper.factory.createP();
		String rprStr = "<w:rPr xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\"><w:rFonts w:hint=\"eastAsia\" w:ascii=\"Times New Roman\" w:hAnsi=\"Times New Roman\" w:eastAsia=\"宋体\"/><w:b/><w:color w:val=\"333333\"/><w:sz w:val=\"32\"/><w:szCs w:val=\"32\"/></w:rPr>";
		RPr rpr = (RPr) XmlUtils.unmarshalString(rprStr);
		setParagraphContent(p, rpr, titleStr);
		documentPart.getContent().add(5, p);

		String tblPrStr = "<w:tblPr xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\"><w:tblW w:w=\"8522\" w:type=\"dxa\"/><w:tblBorders><w:top w:val=\"single\"  w:sz=\"4\" w:space=\"0\"/><w:left w:val=\"single\"  w:sz=\"4\" w:space=\"0\"/><w:bottom w:val=\"single\"  w:sz=\"4\" w:space=\"0\"/><w:right w:val=\"single\"  w:sz=\"4\" w:space=\"0\"/><w:insideH w:val=\"single\"  w:sz=\"4\" w:space=\"0\"/></w:tblBorders></w:tblPr>";
		Tbl tbl = Docx4j_Helper.factory.createTbl();
		TblPr tblPr = (TblPr) XmlUtils.unmarshalString(tblPrStr);
		tbl.setTblPr(tblPr);
		Tr tr = Docx4j_Helper.factory.createTr();
		Tc tc = Docx4j_Helper.factory.createTc();
		tr.getContent().add(tc);

		tc = Docx4j_Helper.factory.createTc();
		tr.getContent().add(tc);

		tc = Docx4j_Helper.factory.createTc();
		tr.getContent().add(tc);

		tc = Docx4j_Helper.factory.createTc();
		tr.getContent().add(tc);

		tc = Docx4j_Helper.factory.createTc();
		tr.getContent().add(tc);
		tbl.getContent().add(tr);

		tr = Docx4j_Helper.factory.createTr();
		tc = Docx4j_Helper.factory.createTc();
		tr.getContent().add(tc);

		tc = Docx4j_Helper.factory.createTc();
		tr.getContent().add(tc);

		tc = Docx4j_Helper.factory.createTc();
		tr.getContent().add(tc);

		tc = Docx4j_Helper.factory.createTc();
		tr.getContent().add(tc);

		tc = Docx4j_Helper.factory.createTc();
		tr.getContent().add(tc);
		tbl.getContent().add(tr);
		documentPart.getContent().add(9, tbl);
		
		Docx4j_Helper.saveWordPackage(wordMLPackage, outputfilepath);
	

    结果为:

   
[简单]docx4j插入段落
     全文完。

     

相关文章:

  • 2021-09-19
  • 2021-12-11
  • 2021-06-29
  • 2021-08-05
  • 2021-11-17
  • 2022-12-23
  • 2022-03-03
  • 2022-12-23
猜你喜欢
  • 2021-09-16
  • 2022-12-23
  • 2021-12-05
  • 2021-11-07
  • 2022-01-16
相关资源
相似解决方案