Установка стиля для абзаца с использованием набора инструментов 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");

Я убежден, что это ошибка, и код из исходного вопроса должен действительно работать. Поэтому я подал отчет об ошибке, который можно найти здесь. Из полученного ответа я понял, что мое предположение о том, что код в исходном примере должен работать, является правильным.

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