При попытке запуска программы unoconv выводится ошибка: $ unoconv -f pdf tests/document-example.odt Traceback (most recent call last): File "/usr/bin/unoconv", line 564, in <module> main() File "/usr/bin/unoconv", line 543, in main convertor.convert(inputfn) File "/usr/bin/unoconv", line 449, in convert doc = self.desktop.loadComponentFromURL( inputurl , "_blank", 0, inputprops ) AttributeError: loadComponentFromURL В багзилле Debian есть аналогичная проблема: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=491456 Сам пакет unoconv есть в Сизифе.
Дело в том, что unoconv запускает soffice примерно такой коммандой: soffice.bin -nologo -nodefault -accept="socket,host=localhost,port=2002;urp;StarOffice.ComponentContext" Если делать это вручную перед запуском unoconv, то будут сообщения, как в описано выше. Если просто запустить unoconv: unoconv -f pdf test.doc Missing vcl resource. This indicates that files vital to localization are missing. You might have a corrupt installation. terminate called after throwing an instance of 'com::sun::star::uno::RuntimeException' Missing vcl resource. This indicates that files vital to localization are missing. You might have a corrupt installation. terminate called after throwing an instance of 'com::sun::star::uno::RuntimeException' Error: Unable to connect or start own listener. Aborting. Возможно, это как-то связано с работой openoffice?
запускайте soffice, а не soffice.bin
(В ответ на комментарий №2) > запускайте soffice, а не soffice.bin К сожалению, не помогло. Те же проблемы, что и с soffice.bin
Created attachment 4079 [details] Тестовый скрипт Тестовый скрипт, демонстрирующий ошибку. Перед запуском надо вручную запустить: soffice "-accept=socket,host=localhost,port=2002;urp;" Взят по упомянутой выше ссылке на багзилу Debian.
Что-то и я пока решения на горизонте не разглядел. А у других-то всё не так плохо, даже unoconv --listener работает.... Вот кто мне про листенер объяснил, вдруг, и мне откроется частичка истины, как чинить этот (не будем скрывать) около года назад продукт.
Я вообще-то не против пыток. Ради дела. Предлагаю поймать хотя бы одного юзера, у которого работает unoconv, и.... ну... по-максимуму, чтобы отмолчаться не смог ;)
Кстати, как советовал lav@, я сделал apt-get install java-1.6.0-sun mozilla-plugin-java-1.6.0-sun Ноль реакции.
от lav@: "Там ошибка в OOo, по крайней мере я пробовал тест работы с UNO из C++, и он тоже не заработал. Надо что-то сделать." Может быть, нужно перевесить на openoffice.org?
> Может быть, нужно перевесить на openoffice.org? Я за. Мне тоже кажется, что openoffice.org ведет себя не совсем правильно.
Перевешиваю.
"кажется", "мерещится" и т.п. не мой профиль
(In reply to comment #11) > "кажется", "мерещится" и т.п. не мой профиль Приведенный выше тестовый скрипт на Debian отрабатывает без ошибок. Только надо переменной FILE присвоить путь до существующего файла. Значит проблема либо в питоновском модуле uno, либо в openoffice.
Проверил: Модуль uno относится к пакету openoffice.org
По ссылке, кстати, есть и проверка, что в НАШЕМ openoffice.org компонент UNO не работает (а вот в CentOS работает), ругается "AttributeError: loadComponentFromURL" Could you try the following script: [testunoconv.py (text/x-python, inline)] #!/usr/bin/env python FILE='file:///home/philippe/data/cv/philippe_bourcier.rtf' import uno From com.sun.star.beans import PropertyValue localContext = uno.getComponentContext() resolver = localContext.ServiceManager.createInstanceWithContext( "com.sun.star.bridge.UnoUrlResolver", localContext) ctx = resolver.resolve( "uno:socket,host=localhost,port=2002;urp;StarOffice.ComponentContext" ) smgr = ctx.ServiceManager desktop = smgr.createInstanceWithContext( "com.sun.star.frame.Desktop",ctx) inputprops = ( PropertyValue( "Hidden" , 0 , True, 0 ), ) doc = desktop.loadComponentFromURL( FILE , "_blank", 0, inputprops ) [Message part 3 (text/plain, inline)] You need to start OpenOffice with the following command before: soffice "-accept=socket,host=localhost,port=2002;urp;"
"You need to start OpenOffice with the following command before: soffice "-accept=socket,host=localhost,port=2002;urp;"" Поправка: в НАШИХ [= сизиф] условиях я запускал листенер вот так: /usr/lib/openoffice.org/program/soffice.bin "-accept=socket,host=localhost,port=2002;urp;"
патчи приветствуются
Сейчас в сизифе не воспроизводится. Закрываю.