Docx4j - замена заполнителя уничтожает формат

При попытке заменить мой замещающий текст в шаблоне слова на фреймворк docx4j форматирование всегда теряется:

До
 исходный формат в шаблоне

После
 формат после замены

Я попытался упростить код до сути того, что я здесь делаю:

private void replacePlaceholder(WordprocessingMLPackage template,
                                String name,
                                String placeholder) {
    List<Object> texts =
        doc.getAllElementFromObject(template.getMainDocumentPart(), Text.class);
    for (Object text : texts) {
        Text textElement = (Text) text;

        if (textElement != null
                && textElement.getValue() != null
                && placeholder != null
                && textElement.getValue().equals(placeholder)) {
            textElement.setValue(name);
        }
    }
}

WordprocessingMLPackage wp = 
    WordprocessingMLPackage.load(context.getResourceAsStream("/template.docx"));
replacePlaceholder(wp, "Apr. 2007 - Dez. 2012", "tempDatum");

Кто-нибудь знает, что мне делать, чтобы сохранить исходное форматирование?


person Cold_Class    schedule 18.01.2018    source источник
comment
Этот код не повлияет на стиль. Чтобы изменить стиль, вам нужно будет изменить его в pPr (или rPr, для стиля запуска) или, возможно, удалить определение стиля из части стилей.   -  person JasonPlutext    schedule 18.01.2018
comment
@JasonPlutext Если этот код не повлияет на стиль - как я могу вернуть все, что изменило его, к исходному стилю моего шаблона? У вас есть какие-нибудь подсказки, что мне следует искать, чтобы найти причины этого?   -  person Cold_Class    schedule 19.01.2018
comment
@JasonPlutext Спасибо за уверенность в том, что этот код не вызвал проблемы! Вот почему я больше изучил шаблон слова, я изменил формат по умолчанию, и он сработал! :)   -  person Cold_Class    schedule 19.01.2018


Ответы (1)


Как Джейсон указал в комментариях, мой код не меняет формат!
Но поскольку он всегда возвращался к стандартному формату, я просто отредактировал этот стандартный формат в своем шаблоне, сохранил его, и тогда он заработал!

person Cold_Class    schedule 19.01.2018