Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: автоматическая отправка на печать содержимого папки  (Прочитано 7116 раз)

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

Оффлайн marlic

  • Автор темы
  • Любитель
  • *
  • Сообщений: 77
    • Просмотр профиля
    • Калина 2
интересует такая вещь:

одна программулина сохраняет в определенной папке файл отчета в формате RTF. Дело в том, что следить за появлением отчетов времени нет, но есть идея отправлять все что попадает в эту папку на печать...

Такое возможно?
Если на Ubuntu нет, может есть на Windows?


Оффлайн marlic

  • Автор темы
  • Любитель
  • *
  • Сообщений: 77
    • Просмотр профиля
    • Калина 2
libreoffice+cron:
http://help.libreoffice.org/Common/Starting_the_Software_With_Parameters
http://www.opennet.ru/man.shtml?topic=crontab&category=5&russian=0
спасибо за ответ, про крон понятно. а про libreoffice - мало (
не встречали русского мана или примерного описания настройки для моих функций?
заранее спс

Оффлайн martini

  • Участник
  • *
  • Сообщений: 179
    • Просмотр профиля
Команда loffice -p ~/Documents/yourfile.rtf должна вывести файл ~/Documents/yourfile.rtf на печать на принтер по умолчанию. Принтер должен быть заранее настроен и выбран.

Если это сработает, остается только заусунуть команду в кронтаб.

Команда loffice --pt {Printername} {filename1} позволяет указать имя принтера явным образом.

Пользователь решил продолжить мысль 03 Декабря 2012, 20:40:59:
А вот еще лучше чем крон:

The incrond (inotify cron daemon) is a daemon which monitors filesystem events (such as add a new file, delete a file and so on) and executes commands or shell scripts. It’s use is generally similar to cron.

http://www.cyberciti.biz/faq/linux-inotify-examples-to-replicate-directories/
« Последнее редактирование: 03 Декабря 2012, 20:40:59 от martini »

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Вот, по-быстрому набросал скриптец, который печатает RTF-файлы из каталога DIR, отправляет в DIR_DONE и пишет ошибки в ERR_LOG:
Код: (bash) [Выделить]
#!/bin/bash

DIR="/path/to/dir"
DIR_DONE="done"
ERR_LOG="err.log"

cd "$DIR" || exit 1
mkdir -p "$DIR_DONE"
find -maxdepth 1 -iname "*.rtf" -exec bash -c "if loffice -p {} ; then mv {} \"$DIR_DONE\" ; else echo \"Unable to print {}\" >>\"$ERR_LOG\" ; fi" \;

exit 0
« Последнее редактирование: 03 Декабря 2012, 23:48:59 от arcfi »

Оффлайн marlic

  • Автор темы
  • Любитель
  • *
  • Сообщений: 77
    • Просмотр профиля
    • Калина 2
Команда loffice -p ~/Documents/yourfile.rtf должна вывести файл ~/Documents/yourfile.rtf на печать на принтер по умолчанию. Принтер должен быть заранее настроен и выбран.

Если это сработает, остается только заусунуть команду в кронтаб.

Команда loffice --pt {Printername} {filename1} позволяет указать имя принтера явным образом.

Пользователь решил продолжить мысль 03 Декабря 2012, 20:40:59:
А вот еще лучше чем крон:

The incrond (inotify cron daemon) is a daemon which monitors filesystem events (such as add a new file, delete a file and so on) and executes commands or shell scripts. It’s use is generally similar to cron.

http://www.cyberciti.biz/faq/linux-inotify-examples-to-replicate-directories/

задумка идеальная, установил все, но мой принтер капризный, нужно ему много настроек вбивать при печати, а на LibreOffice мало настроек, при отправке на печать принтер ругается, а при отправке на печать через обычный GEDIT печатается норм, но для него нет команды для отправки из консоли в печать

Оффлайн Raf73

  • Активист
  • *
  • Сообщений: 740
    • Просмотр профиля
Насколько мне известно, команда lp умеет передавать кучу всевозможных опций принтеру, но не умеет RTF. Однако, либре умеет печатать на PDF принтер, который сохраняет документ в формате pdf. Если не ошибаюсь, то lp умеет печатать pdf.
Отсюда вытекает костыльный метод печати: через либре печатаем на пдф-принтер, далее, получившуюся пдфку, печатаем через lp со всякими опциями настройки принтера.

Оффлайн 1024

  • Участник
  • *
  • Сообщений: 105
  • Abstract hip-hop|Post-hardcore|DSBM|Experimental
    • Просмотр профиля
    • 10:24|рябиновый компот - подыхающий абстракт хип-хоп проект
ArcFi, немного переписал скрипт, мне нужно, чтобы печатались все doc- и docx-файлы из загрузок, а потом удалялись.#!/bin/bash
 
DIR="~/Загрузки"
ERR_LOG="err.log"
 
cd "$DIR" || exit 1
find -maxdepth 1 -iname "*.doc*" -exec bash -c "if loffice -p {} ; then rm {} ; else echo \"Unable to print {}\" >>\"$ERR_LOG\" ; fi" \;
 
exit 0
почему не работает? libreoffice не умеет печатать таким образом вордовские файлы или я в скрипте накосячил? :idiot2: :idiot2: :-\
« Последнее редактирование: 05 Апреля 2019, 08:37:24 от Azure »
Въ начале былъ "/", и "/" былъ у root-a, и root былъ "/". (ц)

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
DIR="~/Загрузки"
Так делать нельзя.

Вместо этого
DIR="$HOME/Загрузки"а ещё лучше
DIR="$(xdg-user-dir DOWNLOAD)"

Оффлайн ReinEthernal

  • Новичок
  • *
  • Сообщений: 31
  • юнлинг
    • Просмотр профиля
Доброго времени суток! Простите за глупый вопрос - но куда пихать данный скрипт? в кроновую папку? или CUPS?

Оффлайн N@miD

  • Новичок
  • *
  • Сообщений: 21
    • Просмотр профиля
Куда угодно.
И не забудьте добавить в расписание cron запуск этого скрипта.
Сделать это можно в crontab -e

Оффлайн Nekto.Rom

  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Все файлы печатает, это классно. Но если документ в названии содержит пробелы "Документ Word.*", то в этом случае файлик даже не видит, даже если поставить фильтр "*.*". Как можно это поправить?)

Оффлайн zg_nico

  • Заслуженный пользователь
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3513
  • Nil mortalibus arduum est
    • Просмотр профиля
Nekto.Rom, например так можно попробовать:
Код: (bash) [Выделить]
    #!/bin/bash
     
    DIR="/path/to/dir"
    DIR_DONE="done"
    ERR_LOG="err.log"
     
    cd "$DIR" || exit 1
    mkdir -p "$DIR_DONE"
    find -maxdepth 1 -iname "*.rtf" -exec bash -c 'if loffice -p "{}" ; then mv "{}" "$DIR_DONE" ; else echo "Unable to print \"{}\"" >>"$ERR_LOG" ; fi' \;
     
    exit 0
Thunderobot G150-D2: Intel SkyLake Core i7-6700HQ 2.60GHz, 8Gb DDR4 2133 MHz, Intel HD530, NVidia GeForce GTX 960M 2Gb.  Ubuntu 16.04 64x [Unity], KUbuntu 18.04 64x.

Оффлайн Nekto.Rom

  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
zg_nico, Помогло с печатью документов с пробелами/знаками в названиях, но теперь они не удаляются с DIR и не переносятся в DIR_DONE. Как можно сделать, чтобы и то и то было?) У меня каждые 60 секунд этот скрипт обрабатывает папку, в которую скидываются вложения с почты через fetchmail
« Последнее редактирование: 05 Апреля 2019, 08:36:19 от Azure »

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
find -maxdepth 1 -iname "*.rtf" -exec bash -c
Код: (bash) [Выделить]
...
for doc in *.rtf ; do
    if loffice -p "$doc" ; then
        mv "$doc" "$DIR_DONE"
    else
        ...
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

 

Страница сгенерирована за 0.059 секунд. Запросов: 25.