Как отправить на печать (много) выбранных файлов в каталоге вместо одного за другим?

10

Я использую Ubuntu 12.04 и успешно установил свой Wi-Fi принтер, но у меня вопрос: как печатать много файлов одновременно? Я имею в виду, у меня есть много PDF или текстовых файлов в папке, и я хочу отправить их непосредственно на принтер вместо того, чтобы открывать их по одному в программе просмотра файлов, а затем распечатать, а затем повторить весь процесс так много раз /:

Я даже не вижу опции печати при щелчке правой кнопкой мыши на файле или в меню Файл.

Спасибо!

Оскар
источник

Ответы:

4

Создайте файл: ~ / .local / share / Applications / print.desktop Вставьте:

[Desktop Entry]
Encoding=UTF-8
Name=Print Directly
Comment=Print file directly with default printer.
Exec=lp %f
Type=Application
Icon=/usr/share/pixmaps/gnome-applets.png
MimeType=text/plain;text/pdf;application/pdf;application/x-pdf

Щелкните правой кнопкой мыши по любому файлу PDF, в разделе «Открыть с помощью ...» просмотрите расширенный список доступных приложений для файлов PDF. Найдите запись «Напечатать напрямую» и добавьте ассоциацию. Отныне вы можете щелкнуть правой кнопкой мыши любой файл PDF (или группы) и распечатать их с помощью команды lp на вашем принтере по умолчанию . Если вы хотите провести эксперимент, установите принтер CUPS-PDF и установите его по умолчанию в настройках принтеров.

sudo apt-get install cups-pdf

У вас будет тестовый файл, «напечатанный» в папке ~ / PDF.

mythsmith
источник
4

Я сделал скрипт , который будет отправлять нужные файлы на принтер по умолчанию: вы , возможно , придется изменить его , чтобы выбрать , folderчто ваши файлы и запустить его один раз , .pdfа затем для .txt:
find /home/mike/KeyGuides/ -type f -iname '*.txt' -print0 | while IFS= read -r -d '' f; do lpr "$f"; done. Это работает, как я только что проверил; просто убедитесь, что нужный принтер установлен по умолчанию.

Если у вас возникнут проблемы, я посмотрю, смогу ли я изменить их по мере необходимости. (Вы можете использовать другие опции для lpr, если вам нужно - см. man lpr). Он должен работать для большинства принтеров - он успешно работает с моим Canon IP4700.

Эта версия скрипта также перемещает каждый напечатанный документ в каталог (который вы должны были создать ранее), чтобы при запуске скрипта печатались только новые документы:

find /home/mike/Duck/ -type f -iname '*.txt' -print0 | while IFS= read -r -d '' f;
 do lpr "$f" && mv "$f" /home/mike/Duck/printed/ ; done

источник
Привет: спасибо за ваш совет, но что, если я хочу напечатать много файлов, но не все файлы в этом каталоге? Это то, что я хотел бы сделать, потому что, когда новые файлы сохраняются в этом каталоге, я печатаю только новые файлы. Надеюсь, я объяснил это хорошо :)
Оскар
Это действительно другой вопрос к оригинальному, который задают, но я посмотрю, смогу ли я что-то сделать со сценарием - может быть сложно просто напечатать те, которые еще не были напечатаны; хотя мы могли бы просто добавить команду, чтобы переместить каждый документ в указанную папку после его печати. Должно быть возможно вставить это в цикл while.
Обратите внимание, что lpr работает только с простым текстом. Вам придется использовать другой инструмент, который отправляет задание на печать в CUPS, если речь идет, например, о PDF-файлах.
Cumulus007
Привет, не такой уж и другой вопрос, поэтому я поставил «многие» и «выбранные» в названии вопроса, так что это могут быть все или некоторые из них: D Хорошо, надеюсь, вы найдете решение для достижения этой цели. Большое спасибо!
Оскар
1
lpr работает с pdfs - команда lpr bash_FAQ.pdf отлично распечатывает.
0

Это не прямое решение для операционной системы Ubuntu Linux:

  • Попробуйте воспользоваться сервисом Google : Google - Cloud Print . Не уверен, что есть опция одношаговой многозадачности, хотя

Также более сложное решение:

Установить nautilus-actionsпакет

Выполните меню Nautilus Actions Settingsfrom System> Preferencesи добавьте некоторые действия:

Вкладка «Действие»

Наутилус

Контекстная метка: печать

Отобразить элемент в контекстном меню выбора

Отображение элемента в контекстном меню местоположения (не требуется)

Свойства действия: включено

Командная вкладка

Метка профиля:

Команда по умолчанию:

Путь: LP

Параметры:% M (нажмите на кнопку легенды, чтобы увидеть дополнительную информацию)

Измените информацию о других вкладках так, как вы бы хотели, чтобы ваш nautilus вел себя.

Сохраните действие, перезапустите nautilus.

Ваше контекстное меню будет отображаться "Печать" ...

Источник: UbuntuForums

Используя простой метод:

Откройте терминал и введите lprи поставьте перед ним пробел. Затем перетащите файлы, которые хотите распечатать, на терминал.

Дэвид М. Соуза
источник
Привет, я добавил действие и команду в Nautilus, как указано, меню появляется при щелчке правой кнопкой мыши по файлу, но ничего не происходит /: Терминальный метод работал, но при печати PDF-файлов на полученной распечатанной странице были другие шрифты, а не те, что вы смотри при открытии с забралом.
Оскар
Извините, но это не мои собственные знания. Я грыз на некоторых сайтах, чтобы получить информацию, которую я только что опубликовал. Вы должны проверить, на деле Nautilus, документацию lp. Возможно, он не нацелен на ваш принтер.
Дэвид М. Соуза
0

В последних версиях CUPS добавлена ​​возможность печатать PDF-файлы напрямую. 11.10 и более новые (и, возможно, более старые) версии имеют это.

Другой подход (который я использую с пакетом эмулятора двусторонней печати) - это использовать «Печать в файл» для всех заданий на печать и помещать их в папку, которая фактически становится вашей личной очередью печати. Когда они появятся, вы можете распечатать некоторые или все из них, когда захотите, и удалить их, когда они будут готовы.

Это дает дополнительное преимущество, позволяя вам повторно запускать задания после замятия бумаги и т. Д., Не создавая их заново. Это также позволяет вам продолжать работать без остановки для управления принтером.

Если вы хотите, вы можете написать небольшой скрипт, который будет работать в фоновом режиме и начать печатать вещи, которые появляются в вашей очереди печати. Если вы сделаете что-либо из этого, вы можете назвать свои задания на печать так, чтобы они сортировались в очереди в том порядке, в котором вы хотите, чтобы они печатались. Я просто использую 00 ... 99 для имен.

Для текстовых файлов обратите внимание на те, которые могут иметь длинные строки. CUPS (по крайней мере по умолчанию) не будет переносить строки для вас или устанавливать хорошие поля страницы.

Моя система двусторонней печати делает намного больше, чем вы просите, но может дать вам некоторые идеи. Примечательно, что у него есть два небольших вспомогательных скрипта dprint и dprintm, которые берут текст и приручают его перед отправкой на принтер.

http://sourceforge.net/projects/duplexpr/
Джо
источник
0

Я знаю, что это старо, но способ сделать это теперь пересмотрен, как я обнаружил сегодня:

вам понадобится установить filemanager-actions - это уже было в моей системе

sudo apt-get install filemanager-actions

Далее наутилус-акции

sudo add-apt-repository ppa:dr3mro/nautilus-actions-extra
sudo apt-get update
sudo apt-get install nautilus-actions

Откройте FileManager-Actions и создайте новое действие, как указано выше:

Action Tab
    Nautilus Item
        Display item in selection context menu (tick)
        Display item in location context menu (tick)
        Context Label : Print
        Display item in the toolbar (tick)
        Use same label for icon in the toolbar (tick)

Command Tab
    Profile
        Label: Default profile
    Command
        Path: lp
        Parameters: %f
        Working directory: %d

Измените информацию о других вкладках так, как вы бы хотели, чтобы ваш nautilus вел себя.

Сохраните действие, перезапустите nautilus.

Ваше контекстное меню будет отображаться "Печать" ...

несколько ссылок помогли мне: LibreOffice Print Печать правой кнопкой мыши

Мэтью Хадсон
источник
-1

Или используйте Ruby :-)

sudo apt-get install ruby
irb
Dir.glob('*.*').each{ |f| `lp '#{ f }'` }
msa.im
источник