Установка стиля для абзаца с использованием набора инструментов ODF
Я пытаюсь сгенерировать хорошо структурированный текстовый файл OpenDocument с помощью ODF-кода Apache. Я надеюсь достичь этого, используя стили для разных частей данных. Поэтому я сгенерировал файл шаблона, который содержит все стили, которые я хочу использовать.
Следующим моим шагом было попытаться использовать API Simple ODF для настройки моего документа. Видимо, это рекомендуемый способ сделать это. В целях тестирования я решил сделать все просто. Так что сейчас я просто пытаюсь придать одному абзацу предопределенный стиль.
Вот код, который я написал:
public static void main(String[] args) throws Exception {
TextDocument odt = TextDocument.loadDocument("template.ott");
// List the paragraph styles, just to check if 'Abc' is actually there.
// Which it is.
OdfOfficeStyles styles = odt.getOrCreateDocumentStyles();
for (OdfStyle e : styles.getStylesForFamily(OdfStyleFamily.Paragraph)) {
System.out.println(e.getStyleNameAttribute());
}
// Create a paragraph, and give it the style 'Abc'
Paragraph p = odt.addParagraph("Blah.");
p.setStyleName("Abc");
// Save the file
odt.save("result.odt");
}
Тем не менее, это не похоже на работу. "Бла". добавленный абзац отображается в стиле по умолчанию. Похоже, что за последние пару выпусков многое изменилось, поэтому документации довольно мало.
Возможно ли то, что я хочу, используя Simple ODF API? Или я должен посмотреть на фактический API ODFDOM? Если это так, то фрагмент кода для этого был бы очень признателен.
Благодарю.
1 ответ
Я нашел обходной путь, выполнив следующее:
Paragraph p = odt.addParagraph("Blah.");
p.getOdfElement().setStyleName("Abc");
Я убежден, что это ошибка, и код из исходного вопроса должен действительно работать. Поэтому я подал отчет об ошибке, который можно найти здесь. Из полученного ответа я понял, что мое предположение о том, что код в исходном примере должен работать, является правильным.