Макетировать и тестировать документ 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, чтобы сделать некоторые замены, а затем утвердить результат.

Есть идеи?

0 ответов

Другие вопросы по тегам