Java Word通过docx4j替换内容后,在.docx中发现无法读取的内容
通过docx4j替换内容后,我在.docx中发现无法读取内容的错误字 请查找代码段 我使用的是docx4j-6.1.2 jarJava Word通过docx4j替换内容后,在.docx中发现无法读取的内容,java,docx4j,Java,Docx4j,通过docx4j替换内容后,我在.docx中发现无法读取内容的错误字 请查找代码段 我使用的是docx4j-6.1.2 jar public class Testt { public static void main(String[] args) throws Exception { final String TEMPLATE_NAME = "D://fileuploadtemp//123.docx"; InputStream templateInputS
public class Testt {
public static void main(String[] args) throws Exception {
final String TEMPLATE_NAME = "D://fileuploadtemp//123.docx";
InputStream templateInputStream = new FileInputStream(TEMPLATE_NAME);
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(templateInputStream);
MainDocumentPart documentPart = wordMLPackage.getMainDocumentPart();
String xpath = "//w:r[w:t[contains(text(),'TEST')]]";
List<Object> list = documentPart.getJAXBNodesViaXPath(xpath, true);
for (Object obj : list) {
org.docx4j.wml.ObjectFactory factory = new org.docx4j.wml.ObjectFactory();
org.docx4j.wml.Text t = factory.createText();
t.setValue("\r\n");
((R) obj).getContent().clear();
((R) obj).getContent().add(t);
}
OutputStream os = new FileOutputStream(new File("D://fileuploadtemp//1234.docx"));
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
wordMLPackage.save(outputStream);
outputStream.writeTo(os);
os.close();
outputStream.close();
templateInputStream.close();
}
公共类Testt{
公共静态void main(字符串[]args)引发异常{
最终字符串模板\u NAME=“D://fileuploadtemp//123.docx”;
InputStream templateInputStream=新文件InputStream(模板名称);
WordprocessingMLPackage wordMLPackage=WordprocessingMLPackage.load(templateInputStream);
MainDocumentPart documentPart=wordMLPackage.getMainDocumentPart();
字符串xpath=“//w:r[w:t[contains(text(),'TEST')]”;
List List=documentPart.getjaxbnodesviapath(xpath,true);
对于(对象对象:列表){
org.docx4j.wml.ObjectFactory=new org.docx4j.wml.ObjectFactory();
org.docx4j.wml.Text t=factory.createText();
t、 设置值(“\r\n”);
((R)obj.getContent().clear();
((R)obj.getContent().add(t);
}
OutputStream os=新文件OutputStream(新文件(“D://fileuploadtemp//1234.docx”);
ByteArrayOutputStream outputStream=新建ByteArrayOutputStream();
wordMLPackage.save(outputStream);
outputStream.writeTo(操作系统);
os.close();
outputStream.close();
templateInputStream.close();
}
}
内容可读吗\r\n即使我尝试了“测试1”而不是“\r\n”给出了相同的错误可能是因为@JasonPlutext我已经将Jar升级到了8.2.9,并且工作正常。谢谢。