Crear Campos de Usuario en Open Writer

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
mibborges
Mensajes: 1
Registrado: Jue Abr 09, 2009 7:32 pm

Crear Campos de Usuario en Open Writer

Mensaje por mibborges »

Hola,

Me encuentro desarrollando en java y utilizando el API Odfdom para poder insertar campos de usuario en un documento vacío de Open Writer.

Sucede que al ingresarlos Open Writer no los detecta, quedan insertos en el archivo content.xml del archivo ODT, pero al ir al menú Insetar-> Campos -> Otros -> Predeterminaciones, no muestra los campos de usuario insertados.

Alguien sabe como dar de alta el nodo OdfUserFieldDecls en el documento? Aparentemente ese es el problema

Muchas gracias :D

Aqui esta el código:

OdfDocument doc = (OdfDocument) OdfDocument.loadDocument(pathODT);
OdfFileDom domContent = doc.getContentDom();

//Obtener los nombres de tags de XML del Documento Open Writer
XPath xpath;
xpath = XPathFactory.newInstance().newXPath();
xpath.setNamespaceContext(new OdfNamespace());

// Obtengo el objeto raiz del texto
Object obj = xpath.evaluate("//office:text", domContent, XPathConstants.NODE);
OdfText odfText = (OdfText) obj;

// Obtengo las declaraciones de campos
obj = xpath.evaluate("text:user-field-decls", odfText, XPathConstants.NODE);
OdfUserFieldDecls fieldDecls;
fieldDecls = domContent.createOdfElement(OdfUserFieldDecls.class);
odfText.appendChild(fieldDecls);

NodeList nodos = (NodeList) xpath.evaluate("/office:document-content/office:body/office:text//text:user-field-decl", domContent, XPathConstants.NODESET);
Node nodo;
String nombre;

// Inserto el nuevo ClaveAutenticacion
OdfUserFieldDecl fieldDecl = domContent.createOdfElement(OdfUserFieldDecl.class);
fieldDecl.setValueType(OdfValueType.STRING);
fieldDecl.setStringValue(claveAutenticacion);
fieldDecl.setName("ClaveAutenticacion");
fieldDecls.appendChild(fieldDecl);
Avatar de Usuario
jza
Mensajes: 142
Registrado: Vie Nov 21, 2008 1:36 am
Ubicación: Cancun, Mexico
Contactar:

Re: Crear Campos de Usuario en Open Writer

Mensaje por jza »

OOo no soporta campos extendidos es decir OOo modifica el ODF para tener solo un numero limitado de campos de usuarios. Puedes experimentar escribiendo el XML directamente.
Este libro explica bien la estructura de ODF, directamente los metadatos puedes ver su composicion.
Alexandro Colorado
http://es.openoffice.org
Responder