1
我想刪除以前插入到.odt文檔中的文本字段。在content.xml中他們看起來像:在Open Office中刪除字段UNO Java api
<text:user-field-decls>
<text:user-field-decl text:name="id" office:string-value="${baza.id}" office:value-type="string"/>
...
</text:user-field-decls>
因爲,因爲我讀過Here刪除東西的方式是將它轉換爲具有配置接口()方法我都試過下面的代碼:
XTextFieldsSupplier xTextFieldsSupplier = (XTextFieldsSupplier) UnoRuntime.queryInterface(
XTextFieldsSupplier.class, xDoc);
XNameAccess xNamedFieldMasters = xTextFieldsSupplier.getTextFieldMasters();
Object fieldMaster = xNamedFieldMasters.getByName("com.sun.star.text.fieldmaster.User."+name);
((XComponent)fieldMaster).dispose()
其中name是我想要刪除的字段的名稱。我假定該字段除了聲明之外不在文檔的任何地方使用。然而,拋出ClassCast例外:
java.lang.ClassCastException: com.sun.star.uno.Any cannot be cast to com.sun.star.lang.XComponent
在最後一行。如果是這樣的話,我該如何刪除該字段?