1
이전에 .odt 문서에 삽입 한 텍스트 필드를 삭제하고 싶습니다.오픈 오피스에서 필드 삭제 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 읽은로, 이후() 메소드 나는 다음과 같은 코드를 시도 :은 content.xml에서 그들은처럼
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 예외가 throw됩니다.
java.lang.ClassCastException: com.sun.star.uno.Any cannot be cast to com.sun.star.lang.XComponent
마지막 줄에 예외가 발생합니다. 그렇다면 어떻게 필드를 삭제할 수 있습니까?