Salve sono uno sviluppatore Java ed attualmente stò programmando un utility che deve permettermi di aggiungere alcuni campi(testo) provenienti da un server in documenti OpenOffice.Se inserisco i campi nel documento tutto funziona correttamente.Il problema nasce quando creo una tabella e voglio inserire il campo al suo interno(nella cella in cui risiede il cursore di testo).
Di seguito riporto il codice che uso per inserire il campo:
public void inserisciCampo(XTextDocument Doc, String nomeCampo, XPropertySet xMasterPropSet)throws java.lang.Exception
{
XMultiServiceFactory docFactory = (XMultiServiceFactory)
UnoRuntime.queryInterface(XMultiServiceFactory.cla ss, Doc);
xUserField = (XDependentTextField) UnoRuntime.queryInterface(
XDependentTextField.class,
docFactory.createInstance("com.sun.star.text.TextF ield.User"));
xMasterPropSet = (XPropertySet) UnoRuntime.queryInterface(
XPropertySet.class, docFactory.createInstance(
"com.sun.star.text.FieldMaster.User"));
// Per settare il nome del campo utente
xMasterPropSet.setPropertyValue("Name", nomeCampo);
// SE vuoi settare il valore..
//xMasterPropSet.setPropertyValue("Value", valoreCampo);
xUserField.attachTextFieldMaster(xMasterPropSet);
// NEW
XDesktop xDesktop = (XDesktop)UnoRuntime.queryInterface(
XDesktop.class, desktop);
XComponent xCurrentComponent = xDesktop.getCurrentComponent();
XModel xModel = (XModel)UnoRuntime.queryInterface(XModel.class,
xCurrentComponent);
XController xController = xModel.getCurrentController();
XTextViewCursorSupplier xViewCursorSupplier =
(XTextViewCursorSupplier)UnoRuntime.queryInterface (
XTextViewCursorSupplier.class, xController);
XTextViewCursor xViewCursor = xViewCursorSupplier.getViewCursor();
XText xDocumentText = xViewCursor.getText();
XTextCursor xModelCursor =
xDocumentText.createTextCursorByRange(xViewCursor. getStart());
XTextCursor xParagraphCursor =
(XTextCursor)UnoRuntime.queryInterface(
XTextCursor.class, xModelCursor);
Doc.getText().insertTextContent(xParagraphCursor, xUserField,
false);
System.out.println("INS OK");
}
Non sono molto pratico di OpenOffice e non sono riuscito a trovare molte indicazioni in rete.Se qualcuno ha delle idee o può indicarmi dei link utili mi farebbe un grande favore.
![]()

Rispondi quotando
