Форум сайта python.su
Вопрос о способах изучения сабжа.
В OOo Developer's Guide (есть такой PDF) по Python есть информация в основном только о том, что Python в OOo есть :). Английский, к сожалению, знаю из рук вон плохо, поэтому часто бывает очень трудно найти в инете нужную инфу.
Например, методом тыка написал макрос для Writer'а, который получает выделенный в настоящий момент текст и вставляет его в конец документа:
def GetSelection(arg): """Получает выделенный текст...""" model = XSCRIPTCONTEXT.getDocument() selection = model.getCurrentController().getSelection().getByIndex(0).getString() model.Text.End.String = selection return None
Офлайн
Соболезную ибо сам в похожем положении..
от деволоперсгайд'а я вообще в шоке.
посмотри эти ссылки может поможет что..
http://kosh.datateamsys.com/~danny/OOo/
http://www.script-coding.info/Python/OOo_Macro.html
я многие вещи нашел тупым перебором…
Офлайн
где можно найти простой пример : запустить Writer, открыть doc/rtf файл и записать в формате pdf. GUI открывать не обязательно. и чтобы работало в win/linux. или отдельно ООО конвертер в pdf. пробовал другие, но этот вроде лучше конвертирует. нужно пакетное конвертирование.
Отредактировано (Окт. 1, 2007 12:20:09)
Офлайн
RDX
Ясно :). Кстати, как исследовать уже полученные объекты в готовых примерах, я вроде бы понял. Если такой объект превратить в строку функцией str(), то все интерфейсы, которые он поддерживает, вроде видны. А зная названия этих интерфейсов, можно довольно быстро найти их на http://api.openoffice.org/.
Другой вопрос - как быстро найти способ реализации какой-то своей конкретной задачи ;).
umup
Видимо, нужно запускать ООо в режиме “слушания” из командной строки, а затем подключаться к нему, как описано по ссылке http://www.script-coding.info/Python/OOo_Macro.html. Так что без окрывания GUI наверное не получится. Как дать команду “Save As” из Питона, к сожалению, без понятия…
Офлайн
umupЯ пару месяцев назад писал скрипт, который сохраняет текст из writer в html и отправляет его в качестве тела письма через thunderbird. Посмотри, может найдешь что полезное :) В pdf, думаю, сохраняется аналогичным образом.
где можно найти простой пример : запустить Writer, открыть doc/rtf файл и записать в формате pdf. GUI открывать не обязательно. и чтобы работало в win/linux. или отдельно ООО конвертер в pdf. пробовал другие, но этот вроде лучше конвертирует. нужно пакетное конвертирование.
from com.sun.star.beans import PropertyValue from com.sun.star.io import XOutputStream from unohelper import Base tmp_html = '/tmp/ooomsg.html' class OutputStream( Base, XOutputStream ): def __init__( self ): self.closed = 0 def closeOutput(self): self.closed = 1 def writeBytes( self, seq ): sys.stdout.write( seq.value ) def flush( self ): pass def toHtml(): filterName = "HTML (StarWriter)" outProps = ( PropertyValue( "FilterName" , 0, filterName , 0 ), PropertyValue( "Overwrite" , 0, True , 0 ), PropertyValue( "OutputStream", 0, OutputStream(), 0) ) doc = XSCRIPTCONTEXT.getDocument() doc.storeToURL(u'file://' + tmp_html, outProps) os.system("thunderbird -compose body='%s'" % open(tmp_html, 'r').read()) return None
Офлайн