Odftoolkit Вставить документ с TextUserFieldDeclElement

Я использую библиотеку Odtftoolkit в Java, и у меня есть процесс, который использует шаблон документа с TextUserFieldDeclElement, Мой процесс создает два разных документа из одного шаблона, и мне нужно показать обе страницы в одном документе. Моя проблема в том что TextUserFieldDeclElement первой страницы показывает то же значение, что и вторая страница.

Мой код такой:

1: Создайте каждый документ (я вызываю этот метод сначала с помощью объекта "плантилла", а затем с другим объектом "плантилла").

TextDocument outputOdt = TextDocument.loadDocument(new File(plantilla));

OdfElement contenedor = outputOdt.getVariableContainerElement();

org.w3c.dom.NodeList nodos = contenedor
        .getElementsByTagName("text:user-field-decl");

for (int i = 0; i < nodos.getLength(); i++) {

    if (nodos.item(i) instanceof TextUserFieldDeclElement) {

        TextUserFieldDeclElement txt = (TextUserFieldDeclElement) nodos
                .item(i);

        if (txt.getTextNameAttribute() != null) {

            // Consultamos si el atributo está en el hash
            if (poGlobal.containsKey(txt.getTextNameAttribute())) {
                outputOdt.getVariableFieldByName(
                        txt.getTextNameAttribute()).updateField(
                        poGlobal.get(txt.getTextNameAttribute()),
                        null);
            }

        }
    }
}

File ficTmp = Fichero.dameFicheroTemporal(".odt");

// Volcamos al fichero temporal
outputOdt.save(ficTmp);

arDocumentos.add(ficTmp);

2: я работаю с массивом arDocuments и пытаюсь скопировать все документы так же, как:

try {

    TextDocument target = TextDocument.loadDocument(this.arDocumentos
            .get(0));

    // Por cada documento, copiamos y pegamos en el destino
    for (int i = 1; i < this.arDocumentos.size(); i++) {
        Paragraph parrafo = target.addParagraph(null);
        TextDocument src = TextDocument.loadDocument(this.arDocumentos
                .get(i));

        target.insertContentFromDocumentAfter(src, parrafo, false);

    }

    target.save(new File(destino));
} catch (Exception ex) {
    throw new CtrError("Error al cerrar el documento.", ex);
}

0 ответов

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