Document document = new Document(new ByteArrayInputStream(bytes));
document后缀名为.doc,怎么将这个document转换为.docx。
不能使用document.save(“…docx”)的方式。
Document document = new Document(new ByteArrayInputStream(bytes));
document后缀名为.doc,怎么将这个document转换为.docx。
不能使用document.save(“…docx”)的方式。
@ouchli 您只需将文档另存为 DOCX 即可。 例如:
Document document = new Document(new ByteArrayInputStream(bytes));
ByteArrayOutputStream docxStream = new ByteArrayOutputStream();
document.save(docxStream, SaveFormat.DOCX);
我的输入文档为:‘xxxx.doc’,在进行添加批注操作时,报错:
java.lang.IllegalArgumentException: The reference node is not a child of this node.
当文档为:‘xxxx.docx’, 就不会报错了。
用您的代码之后再进行添加批注,还是会报错呢,请问是什么原因
Document document = new Document("D:\\Users\\00306664\\Desktop\\jjj.doc");
document.save(new ByteArrayOutputStream(), SaveFormat.DOCX);
NodeCollection<Paragraph> childNodes = document.getChildNodes(NodeType.PARAGRAPH, true);
for (Paragraph para : childNodes) {
if (para.toString(SaveFormat.TEXT).trim().contains("表4-22c")) {
String text = para.getText();
int length = para.getRuns().toArray().length;
Run cmtAnchorRun = para.getRuns().get(length - 1);
Run run = para.getRuns().get(WxcmConst.NUM_0);
Comment comment = new Comment(document, "paragraphDto.getAuth()", "", new Date());
comment.setText("paragraphDto.getCommentText()");
para.appendChild(comment);
CommentRangeStart commentRangeStart = new CommentRangeStart(document, comment.getId());
para.insertBefore(commentRangeStart, cmtAnchorRun);
para.insertAfter(new CommentRangeEnd(document, comment.getId()), run);
}
}
System.out.println("b");