Я получаю всплывающее окно с содержимым файла при открытии файла с помощью MS Office Word в Windows и Mac OS.Я добавил комментарии к предложениям в абзаце в файле .docx, используя библиотеку apache-poi. Но я не могу открыть загруженный файл.Пожалуйста, помогите мне решить эту проблему.
Я попытался изменить версию apache poi в моем проекте.Также пробовал много других способов.
Ниже приведен код, который я написал для добавления комментария в файл .docx
public MyXWPFCommentsDocument createCommentsDocument(String path,
XWPFDocument document) throws Exception {
OPCPackage oPCPackage = document.getPackage();
PackagePartName partName = PackagingURIHelper.createPartName(path + "/comments.xml");
PackagePart part;
if (oPCPackage.containPart(partName)) {
part = oPCPackage.getPart(partName);
} else {
part = oPCPackage.createPart(partName,
"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml");
}
MyXWPFCommentsDocument myXWPFCommentsDocument = new MyXWPFCommentsDocument(part);
String rId = "rId" + (document.getRelationParts().size() + 1);
document.addRelation(rId, XWPFRelation.COMMENT, myXWPFCommentsDocument);
return myXWPFCommentsDocument;
}
public File updateFile(File file, File xmlfile, CLMDocument clmDoc, String path) throws Exception {
FileInputStream fis;
fis = new FileInputStream(file);
XWPFDocument document = new XWPFDocument(fis);
MyXWPFCommentsDocument myXWPFCommentsDocument = createCommentsDocument(path, document);
CTComments comments = myXWPFCommentsDocument.getComments();
CTComment ctComment;
...
BigInteger cId = BigInteger.ZERO;
ctComment = comments.addNewComment();
ctComment.setAuthor("Admin");
ctComment.setInitials("AR");
ctComment.setDate(new GregorianCalendar(Locale.UK));
ctComment.addNewCommentRangeStart().setId(cId);
ctComment.addNewCommentRangeEnd().setId(BigInteger.TEN);
ctComment.setId(cId);
ctComment.addNewP().addNewR().addNewT().setStringValue("comment text for the sentence");
paragraph.removeRun(k);
paragraph.getCTP().addNewCommentRangeStart().setId(cId);
XWPFRun run112 = paragraph.insertNewRun(k);
paragraph.getCTP().addNewCommentRangeEnd().setId(BigInteger.TEN);
run112.getCTR().addNewCommentReference().setId(cId);
run112.setText(clmSentence.getsText());
run112.addBreak(BreakClear.LEFT);
document.write(new FileOutputStream(file.getAbsolutePath()));
document.close();
return file;
}
Я ожидаю, что смогу открыть обновленный файл в MSOffice Word на Windows и Mac без получения поврежденной ошибки содержимого.Также сгенерированный файл должен быть загружаемым.