LibreOffice

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Sergey_Afanasyev
новенький
Сообщения: 49
Зарегистрирован: 22.02.2012 19:30:27

LibreOffice

Сообщение Sergey_Afanasyev »

Как из Lazarus вызвать LibreOffice для просмотра и распечатки файла aaaaa.doc
Владимир
постоялец
Сообщения: 355
Зарегистрирован: 23.08.2007 19:48:39
Откуда: Москва

Сообщение Владимир »

В поиске набери uOpenOffice

Добавлено спустя 24 минуты 23 секунды:
Вот кусок кода

Код: Выделить всё

procedure ShowDocumen;
  templ_path, n_path, f_name: string ';
    Proc: TProcess;
begin
 templ_path - путь к файлу
 f_name - имя файла
 n_path - путь к LibreOffice (sWriter.exe)
      Proc:=TProcess.Create(nil);
      Proc.CommandLine:=Trim(n_path)+' '+templ_path+f_name//жесткий запуск пробел важен
      Proc.Options:=[poWaitOnExit];
      Proc.ShowWindow:=swoShowMaximized;
      Proc.Execute;
 
end;
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

Sergey_Afanasyev, а обязательно Libre Office?

А то проще через OpenDocument viewtopic.php?p=91579#p91579
Sergey_Afanasyev
новенький
Сообщения: 49
Зарегистрирован: 22.02.2012 19:30:27

Сообщение Sergey_Afanasyev »

Пользователь должен посмотреть и, возможно, кое-что исправить перед распечаткой. Потому был выбран Libre Office.
sign
энтузиаст
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

Сообщение sign »

Я использую для работы с документами uOpenOffice.
Беру дельфийский вариант вот отсюда - http://yuri.elmeh.ru
Преобразую средствами Лазарус модуль Дельфи в модуль Лазарус, а потом минут 10 на исправления.

Ctrl-F9 и исправляем мелкие расхождения. Практически одно - в некоторых местах вместо a := b пишем a := ord(b);
Ну ещё пара-тройка мелких моментов.
И всё, вся мощь Libre Office (я его использую) в моём распоряжении.
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

Sergey_Afanasyev писал(а):Пользователь должен посмотреть и, возможно, кое-что исправить перед распечаткой.


И? Хочешь сказать, что у тебя установлен просмоторщик офисных файлов? Если откроет в MS Word, думаю, ничего страшного не произойдет. Изменить/распечатать можно и в нем... и еще в нескольких прогах. А LibreOffice у человека может и не быть совсем.
mig-31
постоялец
Сообщения: 224
Зарегистрирован: 14.07.2011 13:46:48

Сообщение mig-31 »

Сейчас скорее наоборот. LibreOffice есть а MS Word нет. Плюс прийдется покупать лицензию.
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

mig-31, ситуация бывает разная. У меня, например, стоит три офиса. Пользуюсь постоянно Libre Office.
SSerge
энтузиаст
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Сообщение SSerge »

Лекс Айрин
Представим ситуацию: MS Office на компьютере нет, Libre, допустим, стоит.
Кто даст гарантии, что на открытие файлов .DOC не назначено что ни будь типа MS WRITER? (или как там галимая программа называется, которая есть редактор по умолчанию в XP и подобных ей).
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

SSerge, а это уже НЕ проблема программиста. Да и распечатать/исправить документ можно. И, кстати, по умолчанию на открытие doc файлов ничего не стоит.

Добавлено спустя 1 минуту 32 секунды:
Если уж так важно, то пусть пользователь сам указывает в настройках программы чем открывать эти файлы.
pupsik
энтузиаст
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13
Контактная информация:

Сообщение pupsik »

SSerge реестр в подмогу. Если нет необходимого орать благим ма... диалогом: обратитесь к админу. :mrgreen:

Лекс Айрин
а это уже НЕ проблема программиста
- спорный вопрос.

п.с.
Ведь ответили на вопрос. Зачем мусолить что да как?
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

pupsik писал(а):- спорный вопрос.


А что тут спорного? Если хочешь заставить человека открывать файлы в определенной программе, то:
1) используй ее родной формат (есть некоторые нюансы отображения, которые неродной прогой могут игнорироваться/неправильно использоваться. Например, у меня пара файлов открываются в LO с ошибками отображения)
2) надо предупреждать о зависимости. Но это уже повод программу не использовать.
pupsik
энтузиаст
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13
Контактная информация:

Сообщение pupsik »

Лекс Айрин ситуации бываю разные. Поэтому: спорный вопрос.

п.с.
и при чём тут заставить? Если уж на то пошло то идеал - и либрешка, и мелкософт. И это забота программиста. Т.е. программа должна адекватно среагировать при отсутствии необходимого, а не открывать в чём попало. Или открыть в одном из вариантов.
надо предупреждать о зависимости.
а если это требования заказчика?
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

pupsik писал(а): Если уж на то пошло то идеал - и либрешка, и мелкософт. И это забота программиста. Т.е. программа должна адекватно среагировать при отсутствии необходимого, а не открывать в чём попало.


Вообще-то, именно пользователь решает что есть "попало", а что нет. А предстать, что у него есть какой-нибудь Phoenix Office?

pupsik писал(а):а если это требования заказчика?


Тогда не вопрос. Заказчик просто гарантирует, что он у него установлен.
Аватара пользователя
wofs
постоялец
Сообщения: 379
Зарегистрирован: 05.10.2009 10:16:55
Откуда: Астрахань
Контактная информация:

Сообщение wofs »

sign писал(а):Беру дельфийский вариант вот отсюда - http://yuri.elmeh.ru
Преобразую средствами Лазарус модуль Дельфи в модуль Лазарус, а потом минут 10 на исправления.

Простите, а вы не поделитесь преобразованным модулем? А то я что-то застрял на типах при преобразовании :(
Ответить