взаимодействие open office с внешними устройствами и com портами

Автор konstan_tin, 29 апреля 2020, 13:06

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

konstan_tin

Добрый день . Подскажите , на уровне basic можно работать с поключенными к компу устройсвами ?(к примеру сканерами ,... )  ну и обращение к com портам  для передачи данных . Искал , да не нашел . Подскажите куда копать ? что почитать ? Заранее спасибо всем откликнувшимся.

Yakov

#1
Получить изображение со сканера возможно:
* Вставка-> Медиа-> Сканировать -> Выбрать источник
* Вставка-> Медиа-> Сканировать -> Управление сканером,
следовательно, это можно вызвать uno командами через диспетчер.

economist

Для работы с железом и COM-портами перспективен Python, все нужное, скорее всего, уже написано и полно примеров кода. Данные помещать в OpenOffice|LibreOffice можно как через UNO/COM, так и c помощью библиотек, пишуших данные прямо в DOC/ODT/ODS/XLS...

Сканеры с COM-портам перестали подключать с 90-х гг, к портам SCSI - c середины 2000х. Сейчас для каких-то изощренных скан-сценариев написана куча свободных утилит, и изобретать свой велосипед м.б. очень непродуктивно.

Если нужна обработка скан-графики (повернуть, склеить, пронумеровать итп) - то тот же ImageMagick в 100 раз проще дергать из Питона (или использовать его мощные библы для работы с PDF итп), чем что-либо делать из StarBasic. Одно только экранирование кавычек в путях и аргументах может забрать (и забирает регулярно) из жизни несколько дней.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

konstan_tin

Спасибо за ответы , понял немного , но наверное надо обьяснить причину вопроса . У меня написана на Open Office basic  макросы , которые позволяют вести учет в магазине , со всеми необходимыми процедурами . Сама база данных на Postgress SQL . создан сайт , который через макросы синхронизирует номенклатуру и цены. Прога вылизана(много лет дописывал и исправлял) и работает без сбоев . Но в 21 году надо номенклатуру в чеке писать , да еще бы и сканер прицепить для облегчения работы . Протоколы по кассовым аппаратам описаны и общедоступны ,на управляющую программу вроде лицензия не требуется . Вот и бродят мысли  либо дяде заплатить  , либо поднапрячь мозги и радоваться своим детищем . Вот и спросил , решаема ли такая задача и как можно (по вашему мнению) это сделать .

economist

Теперь и я понял больше, сканеры имелись ввиду "штрих-кодов". Но удивляет вот-что:

Есть 1С за 5-15 тыс. руб., которая умеет всё что выше написано, и даже больше: бухотчетность, декларации с/без НДС для всех режимов налогообложения, интеграцию со всеми шк-сканерами и онлайн-кассами. Зачем тут офисный пакет OpenOffice|LibreOffice? Ведь он нужен для всего остального, выдумываемого властью и самими директором - пропуска, приказы, служебки, договоры итд.

Так что ответ таков, ни дяде не платить, ни OO дорабатывать, а купить типовое коробочное решение и под него подстроиться (громадные комбинаты с тысячами людей так сделали - и нечего, "терпють").   
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

konstan_tin

Добрыйдень economist .Извиняюсь за задержку с ответом , так как выпал из жизни на праздники Такие мысли по поводу 1с у меня есть , как крайний вариант По поводу моей проги , она умеет больше , чем я описал , так как дорабатывал по мере возникновения потребностей. Мой вопрос стоял так - как ОО взаимодействует с внешними устройствами . Когда я пишу оператор print ,данные уходят на принтер . Я хотел поизучать эту тему , могу ли я написать такую хренотень , чтобы данные уходили на кассовый аппарат (по сути принтер). Где  и как это пишется . Можно и по другому сформулировать задачу- мне это интересно . По поводу ОО , я пожалел , что начал писать на ОО basic  Надо было писать на СИ .Но это было давно , и уже переписывать смысла не было.

Yakov

Зачем напрямую обращаться к портам, если можно задействовать драйвера, которые поставляются с устройством в виде dll библиотек:
https://help.libreoffice.org/3.3/Basic/Declare_Statement_Runtime

konstan_tin

Спасибо Yakov за наводку .Пороюсь в данном направлении , но похоже оно верное .