powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / libreoffice sdk - создать комментарий
15 сообщений из 15, страница 1 из 1
libreoffice sdk - создать комментарий
    #38111201
newkib
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Необходимо создать документ. Использую Libreoffice SDK. Сделал все кроме комментария, не понятно как его создавать. В прикрепленном файле пример того, что пытаюсь сделать. Может кто то знает как сделать? Заранее благодарен.
...
Рейтинг: 0 / 0
libreoffice sdk - создать комментарий
    #38111664
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
newkib,

Сам не пробовал, но посмотрите в Simple ODF API метод Paragrath.addComment
http://incubator.apache.org/odftoolkit/simple/document/javadoc/org/odftoolkit/simple/text/Paragraph.html#addComment(java.lang.String, java.lang.String)
...
Рейтинг: 0 / 0
libreoffice sdk - создать комментарий
    #38111863
newkib
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хотелось бы найти решение именно с Libreoffice SDK.
...
Рейтинг: 0 / 0
libreoffice sdk - создать комментарий
    #38111880
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
newkibХотелось бы найти решение именно с Libreoffice SDK.
Найдите как именно эта хрень называется в терминах Libreoffice. Tooltip, Note или Comment. Тогда будет проще найти в документации.
Вот это может?
http://api.libreoffice.org/docs/common/ref/com/sun/star/text/Footnote.html
...
Рейтинг: 0 / 0
libreoffice sdk - создать комментарий
    #38111966
newkib
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В документации искал, но безрезультатно. Footnote - не то, его результат показываю во вложенном файле.
...
Рейтинг: 0 / 0
libreoffice sdk - создать комментарий
    #38111977
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как вы в офисе создаёте эти свои "comments". Это случайно не режим редактирования, где к каждому изменению пишется коментарий?
...
Рейтинг: 0 / 0
libreoffice sdk - создать комментарий
    #38111986
newkib
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот так:
...
Рейтинг: 0 / 0
libreoffice sdk - создать комментарий
    #38112014
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте записать макрос с созданием коментария и посмотрите его код. Подобный код можно будет найти и в SDK.
...
Рейтинг: 0 / 0
libreoffice sdk - создать комментарий
    #38112289
newkib
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Макрос получился следующий:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
sub Main
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
rem dispatcher.executeDispatch(document, ".uno:InsertAnnotation", "", 0, Array())


end sub
...
Рейтинг: 0 / 0
libreoffice sdk - создать комментарий
    #38112320
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда скорее всего вот это
http://api.libreoffice.org/docs/common/ref/com/sun/star/office/XAnnotation.html
странно что в доке SDK нет InsertAnnotation.
Примеры есть для SpreadSheet, нужно только переделать на Writer.
...
Рейтинг: 0 / 0
libreoffice sdk - создать комментарий
    #38112329
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://api.libreoffice.org/docs/common/ref/com/sun/star/text/textfield/Annotation.html
Вот код на васике. Сделайте примерно тоже самое.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Add a note at the cursor.
Sub AddNoteAtCursor
  Dim vDoc, vViewCursor, oCurs, vTextField
  Dim s$
 
  'Lets lie and say that this was added ten days ago!
  Dim aDate As New com.sun.star.util.Date
  With aDate
    .Day   = Day(Now - 10)
    .Month = Month(Now - 10)
    .Year  = Year(Now - 10)
  End With

  vDoc = ThisComponent
  vViewCursor = vDoc.getCurrentController().getViewCursor()
  oCurs=vDoc.getText().createTextCursorByRange(vViewCursor.getStart())
  s = "com.sun.star.text.TextField.Annotation"
  vTextField = vDoc.createInstance(s)
  With vTextField
    .Author  = "AP"
    .Content = "It sure is fun to insert notes into my document"
    'Ommit the date and it defaults to today!
    .Date    = aDate
  End With
  vDoc.Text.insertTextContent(oCurs, vTextField, False)
End Sub 
...
Рейтинг: 0 / 0
libreoffice sdk - создать комментарий
    #38113868
newkib
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Получилось! Вот так выглядит код:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
com.sun.star.lang.XMultiServiceFactory xServiceMan = (com.sun.star.lang.XMultiServiceFactory)UnoRuntime.queryInterface( com.sun.star.lang.XMultiServiceFactory.class, xTextDocument);
Object xAnnotation = xServiceMan.createInstance("com.sun.star.text.TextField.Annotation");
com.sun.star.beans.XPropertySet xPropSet = (com.sun.star.beans.XPropertySet)UnoRuntime.queryInterface( com.sun.star.beans.XPropertySet.class, xAnnotation );
xPropSet.setPropertyValue( "Author", "Programm" );
xPropSet.setPropertyValue( "Content", "Test annotation" );
                    
com.sun.star.text.XTextContent xContent = (com.sun.star.text.XTextContent)UnoRuntime.queryInterface(com.sun.star.text.XTextContent.class, xAnnotation);
xText.insertTextContent(xWordCursor.getStart(), xContent, false);



Blazkowicz , благодарю за то, что направил в нужную сторону. Осталось решить как скрыть окно, когда создается документ...
...
Рейтинг: 0 / 0
libreoffice sdk - создать комментарий
    #38113919
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
newkib, я смотрю этот Libreoffice от openoffice мало отличается. Поэтому рекомендую гуглить по www.oooforum.org. Там, кажется, больше всего примеров разных.
...
Рейтинг: 0 / 0
libreoffice sdk - создать комментарий
    #38113999
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicznewkib, я смотрю этот Libreoffice от openoffice мало отличается.
это же fork оо, еще бы он сильно отличался
...
Рейтинг: 0 / 0
libreoffice sdk - создать комментарий
    #38114715
newkib
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нашел следующий пример:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
        PropertyValue[] properties = new PropertyValue[2];
        properties[0] = new PropertyValue();
        properties[0].Name = "Hidden";
        properties[0].Value = true; // put true to hide OpenOffice window
        properties[1] = new PropertyValue();
        properties[1].Name = "CharacterSet";
        properties[1].Value = "Unicode (UTF-8)";

        XComponent document = null;
        try {
            document = xComponentLoader.loadComponentFromURL(fileName, "_default", 0, properties);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (IllegalArgumentException e) {
            e.printStackTrace();
        }



Как создается документ не видно, однако, видно главное окно LibreOffice, хотелось бы его как то скрыть, может даже не средствами LO SDK, а средствами самой Java... Это возможно?
Вот так выглядит это окно:
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / libreoffice sdk - создать комментарий
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]