Что-то вроде параметров командной строки? [РЕШЕНО]

Автор Alex, 6 ноября 2010, 15:12

0 Пользователи и 1 гость просматривают эту тему.

Alex

Можно ли как-то вызвать Writer с параметрами командной строки, в которых указать бы имя открываемого документа, имя макроса, запускаемого после открытия, а также дополнительные опции? И чтоб этот макрос получил бы потом доступ к параметрам, введённым в этой командной строке (ну или хотя бы просто к её тексту)?
Или это я слишком раскатал губу, и такого не существует?

Рыбка Рио

Ну, не знаю, но можно загружать (или сохранять)  документ с параметрами, описанными тут: Handling Documents — OpenOffice.org Wiki

Например,
Sub Main
sTempFileURL=convertToUrl("/home/user/Рабочий стол/Без имени 1.odt")
Dim Arr(10) As new com.sun.star.beans.PropertyValue
'Arr(0).Name="AsTemplate"
'Arr(0).Value=True
'Arr(1).Name="Hidden"
'Arr(1).Value=False
'Arr(2).Name="ReadOnly"
'Arr(2).Value=True
'Arr(3).Name="MacroExecutionMode"
'Arr(3).Value=4
'Arr(4).Name="Preview"
'Arr(4).Value=True
Arr(5).Name="OpenNewView"
Arr(5).Value=True
Newd=StarDesktop.loadComponentFromURL(sTempFileURL, "_blank", 0, Arr())
End Sub
ubuntu 12.04 + LibO3.6.0


dr.Faust

запустить макрос можно так: "macro:///MyLib.MyModule.MyMacro" а вот как дать ему параметры недопетрил...
Свобода информации - свобода личности!

Alex

Цитата: dr.Faust от  7 ноября 2010, 00:54запустить макрос можно так: "macro:///MyLib.MyModule.MyMacro" а вот как дать ему параметры недопетрил...

А можно с этого места поподробнее я наверно что-то не так понял. Написал макрос:

Sub MyTest
  print "Привет, макрос!"
End Sub

И хочу указать его в командной строке. Набираю:

swriter MyDoc.odt "macro:///Standart.Module1.MyTest"

Документ MyDoc.odt нормально открывается, но чтоб потом ещё отрабатывал макрос - не вижу.

Выше там народ советует сохранять документ с параметрами (что запустить по какому событию). Это мне понятно. Но вопрос не об этом совсем. Вот например, копируя файл, я набираю в командной строке:
copy Файл1 Фай2 <Enter>
Т.е. я указываю команде copy, какой файл взять и куда его скопировать. И могу я это сделать как вручную, так и сформировав эту строку программно - так, как мне нужно.
Вот и тут я хочу что-то вроде
swriter ИмяФайла.otd ИмяМакроса [Опции]
После чего файл ИмяФайла.otd откроется в редакторе, управление будет передано макросу ИмяМакроса, а тот, в свою очередь, прочитает Опции и в зависимости от них что-то сделает.
Вот такой что-нибудь возможно?
Извиняюсь за возможно дурацкий вопрос - ну новичок я в этом...

dr.Faust

Нет - вопрос понятен.
То что не запускается макрос из документа - нормально - там хитрость какая-то.. Кажется надо полный путь к макросу указывать включая путь к документу - так как я написал запускаются только файлы из самого офиса.
Что-то типа "macro:///home/user/Docs/MyDoc/Standart.Module1.MyTest"
А про параметры макроса не могу ответить - у меня не получилось...
Свобода информации - свобода личности!

convas

Так можно передать строку параметров в макрос.
soffice.exe C:\examples2.odt "macro://./Standard.Module1.MainA(параметры)"

В файле examples2.odt макрос имеет вид:
Sub MainA(arguments)
MsgBox arguments
End Sub


Результат вызова макроса:

[вложение удалено Администратором]

prof-alex

#7
Смутно помню, что подобный вопрос поднимался на "альтернативном форуме". И тогда ответа не нашли, если меня память не подводит.
Тут есть один момент. Что нужно автору?

  • Подправить шаблон перед редактированием;
  • Получить готовый документ из шаблона, и сразу напечатать;
  • Или хочется как в M$O, поковыряться с VBA.
В случае с форматом doc и xls, только третий вариант допустим, т.к., формат настолько трудно воспроизводим, что только методы реализованные в M$ могут давать верный результат (и то бывают ляпы). Для первых двух вариантов сам ООо не нужен, т.к., открытый формат имеет несколько реализаций, довольно качественных.

Готовить документы в формате ODF можно разными инструментами!

Выберите себе такой, который Вас устроит: http://opendocumentfellowship.com/applications
Или возьмите библиотеку и наваяйте свой вариант подготовки документов: http://opendocumentfellowship.com/projects http://odftoolkit.org/

«Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации» Э. Дейкстра

Alex

Спасибо за интересные ссылки, но я пока справился своими силами (на том самом бэйсике, после которого невозможно обучить хорошему программированию и всё такое :-)  )

VlhOwn

[offtop]Бейсик, о котором говорит Дийкстра, отличается от нынешнего приблизительно так же, как киноаппараты братьев Люмьер отличаются от современных.[/offtop]

smaharbA

#10
капец, и профалекс за умного канает, компаунд и описаные секции ему трудны
ты хоть читай что написал

+ пока есть такие приверженцы СПО Балмер может спать спокойно

(кроме копипастов обернутых в якобы русскую речь и пустых параграфов - абсолютно ничего)
Я конечно далек от мысли... (с)

dr.Faust

Опять [censored]?
Или будет предложено решение?
Свобода информации - свобода личности!

prof-alex

#12
Цитата: smaharbA от 14 ноября 2010, 22:11
капец, и профалекс за умного канает, компаунд и описаные секции ему трудны
ты хоть читай что написал
Оценивать сложность форматов M$O по компаундам, это то же самое, что ставить знак равенства между zip и OpenXML. Моё мнение основывается на словах Джоэля Спольски приведённых здесь: http://local.joelonsoftware.com/mediawiki/index.php/Почему_форматы_Microsoft_Office_такие_сложные%3F_(И_как_это_обойти)
ЦитироватьВо многих ситуациях проще будет использовать код Office, чем пытаться реализовать его с нуля.

Цитата: smaharbA от 14 ноября 2010, 22:11
(кроме копипастов обернутых в якобы русскую речь и пустых параграфов - абсолютно ничего)
Кроме неумных попыток обозвать окружающих дураками есть что сказать?

«Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации» Э. Дейкстра