Вопрос:

Новая строка в поле с jOpenDocument в документе ODT

java odt opendocument jopendocument

304 просмотра

1 ответ

0 Репутация автора

Я пытаюсь заполнить шаблон из Java с библиотекой jOpenDocument.

Я хочу начать новую строку в поле. Обычный знак новой строки (\ n) не работает.

Когда я делаю это вручную в документе и просматриваю файл xml (content.xml), я понимаю, почему это не работает. Для каждой новой строки в поле есть отдельный абзац.

Поэтому, возможно, есть способ объединить несколько абзацев в одном объекте, а затем вызвать setField () с объектом нескольких абзацев. Но до сих пор я не нашел никакого решения.

Пример кода:

EngineTemplate template = new RhinoTemplate(templateFile);
template.setField("nameField", "this is the content\nI wish to be multilined"); 
Автор: user7732300 Источник Размещён: 18.03.2017 04:49

Ответы (1)


0 плюса

1408 Репутация автора

Решение

По \nумолчанию они пропускаются, но вы можете изменить его, начав имя поля в шаблоне с %enc:.

Вот объяснение из org.jopendocument.dom.template.engine.Processorдокументации класса:

Создает окончательное содержимое документа из предварительно обработанного содержимого шаблона. Поведение подстановки полей можно контролировать с помощью префиксов:

AS_STR следующее выражение будет подставлено как строка. Для элемента XML его дерево будет выведено.

ENCODE следующее выражение будет преобразовано в строку с помощью toString (), а затем закодировано с использованием org.jopendocument.dom.OOXML.encodeWS (java.lang.String).

OO_XML следующее выражение будет преобразовано в строку с помощью toString (), а затем проанализировано как OO XML.

Если ни один из них не указан, элемент XML будет обрабатываться как OO XML для прививки (только его дочерние элементы), в противном случае значение будет просто задано как текст поля.

И ENCODEполе объявлено:

public static final String ENCODE = "%enc:";
Автор: glw Размещён: 18.03.2017 05:13
Вопросы из категории :
32x32