Конвертируйте AltChunks в docx, используя docx4j - PullRequest
0 голосов
/ 14 февраля 2019

У меня есть несколько шаблонов с тегами, и эти теги заменены HTML.Я мог бы сделать это, используя Apache POI, следуя ответу @AxelRichter здесь: Как заменить текст (тег) на HTML в docx, используя Apache POI?

Как я знаю, эти AltChunks преобразуютсяв формат Word, когда файл открывается в MS Word.Но мне нужно конвертировать их, прежде чем открывать.Я обнаружил, что docx4j может сделать это с помощью метода convertAltChunks () в MainDocumentPart.

Итак, что я пытался сделать:

XWPFDocument templateDocx = //here everything is replaced and fine. 
//AltChunks are converted when opened in MS Word
ByteArrayOutputStream os = new ByteArrayOutputStream();
templateDocx.write(os);
templateDocx.close();

InputStream is = new ByteArrayInputStream(os.toByteArray()); 

//Opening document processed by Apache POI using docx4j
WordprocessingMLPackage wordMLPackage = Docx4J.load(is);
//Converting AltChunks
WordprocessingMLPackage pkgOut = wordMLPackage.getMainDocumentPart().convertAltChunks();
pkgOut.save(response.getOutputStream());

Но AltChunks не конвертируются.Как я могу это сделать?Apache POI и Docx4j не совместимы?Если да, как я могу заменить теги HTML с использованием docx4j, как я здесь описал ?: Как заменить текст (тег) HTML в docx с использованием Apache POI?

ОБНОВЛЕНИЕ:

Если я открою свой результирующий документ с помощью 7zip, я получу следующее:
Скриншоты корневой папки, папки word, document.xml и _rels / document.xml.rels
someText isid моего AltChunk someText.html содержит:

<!DOCTYPE html><html><head><style></style><title>HTML import</title></head><body><p><strong>qwe</strong></p><p><strong><em>asd</em></strong></p><p><strong><em><u>zxc</u></em></strong></p><p style="text-align: center;"><strong><em><u>123</u></em></strong></p></body>

root

word folder

document.xml

document.xml.rels

...