После того, как я решил проблему на docx4j ранее, я смогу использовать ее сейчас.Добавить абзац из документа в другой документ
Я просто пытаюсь запустить пример кода из этой ссылки
http://www.smartjava.org/content/create-complex-word-docx-documents-programatically-docx4j
с некоторыми изменениями.
скажем, у меня есть два документа.
Один из них является основным шаблоном, который имеет около 2-3 страниц. Второй имеет только один абзац текста с различным стилем (Жирный, Курсив, Подчеркивание, Размер шрифта и т. Д.).
Я хочу заменить параметр в моем шаблоне абзацем во втором документе.
В результате он может заменить мой параметр абзацем, но есть проблема со стилем. Что я могу наблюдать со многими экспериментом:
- Отступ еще там
- New Line еще там
- Подчеркнутый двигаться вдоль слишком
- Цвет шрифта/Размер шрифта работает
- Жирный/Курсив не приходят
- Шрифтовая семья не приходит
Вот мой код
private static void replaceParagraph2(String placeholder, WordprocessingMLPackage template, ContentAccessor addTo) throws Exception {
//get the paragraph
WordprocessingMLPackage paragraph_template = getTemplate("./resources/input/paragraph.docx");
List<Object> paragraphs_LineList = getAllElementFromObject(paragraph_template.getMainDocumentPart(), P.class);
// get the template
List<Object> template_lineList = getAllElementFromObject(template.getMainDocumentPart(), P.class);
int position = 0;
P toReplace = null;
//find placeholder position
for (Object p : template_lineList) {
List<Object> texts = getAllElementFromObject(p, Text.class);
for (Object t : texts) {
Text content = (Text) t;
if (content.getValue().equals(placeholder)) {
toReplace = (P) p;
position = template_lineList.indexOf(toReplace);
break;
}
}
}
//add paragraph into template
for (int i = 0; i < paragraphs_LineList.size(); i++) {
P para = (P) XmlUtils.deepCopy(paragraphs_LineList.get(i));
addTo.getContent().add(position + 1 + i, para);
}
// remove the placeholder on the template
((ContentAccessor)toReplace.getParent()).getContent().remove(toReplace);
}
ли я что-то отсутствует?
PS. Я отлаживаю проверку объекта шаблона. Кажется, что жирным значением в объекте P является config, равным null. (Это тип booleanTrueifNull, который я думаю.)