Макетировать и тестировать документ apache poi (wordDocument)
Здравствуйте, ребята, у меня действительно интересная проблема с моим Apache POI, само приложение работает, я получаю файл в виде InputStream, и мне нужно сделать замену. Я сталкиваюсь с некоторыми проблемами, чтобы насмехаться над этим InputStream, поскольку документ Word фактически код такой:
XWPFDocument document = new XWPFDocument(OPCPackage.open(this.templateInputStream));
Я попытался создать InputStream, чем получаю ошибку пустого массива:
InputStream anyInputStream = new ClassPathResource("documents/TestTemplate.docx").getInputStream();
documentUtil = new DocumentUtil(anyInputStream, replaces);
org.apache.poi.EmptyFileException: предоставленный файл был пуст (длина ноль байтов)
При попытке с ресурсами:
try (InputStream anyInputStream = new ClassPathResource("documents/TestTemplate.docx").getInputStream()) {
documentUtil = new DocumentUtil(anyInputStream, replaces);
}
я получаю ошибку: java.io.IOException: поток закрыт
Затем я попытался сделать это:
File file = FileUtils.getFile(new ClassPathResource("documents/TestTemplate.docx").getFile());
byte[] changedBytes = new byte[(int) file.length()];
ByteArrayInputStream bis = new ByteArrayInputStream(changedBytes);
documentUtil = new DocumentUtil(bis, replaces);
и получите эту ошибку: org.apache.poi.openxml4j.exceptions.NotOfficeXmlFileException: не найдены допустимые записи или содержимое, это не допустимый файл OOXML (Office Open XML)
У меня нет идей, может быть, я использую неправильный подход, потому что я пытаюсь преобразовать файл в InputStream, чтобы сделать некоторые замены, а затем утвердить результат.
Есть идеи?