Как я могу запустить плазменный скрипт KDE из командной строки без GUI?

диапазоны lpr

Я не уверен в бите "конца", но можно попробовать этот метод, если Вы знаете последний номер страницы в ряду:

$ lpr -P myprinter -o page-ranges=3-10

lpoptions

Можно попытаться запросить принтер для наблюдения, какие опции он должен предложить.

$ lpoptions -p  -l

Пример

$ lpoptions -p mfc-8480dn -l
OptionTrays/Number of Input Trays: 1Trays *2Trays
PageSize/Media Size: *Letter Legal Executive A4 A5 A6 Env10 EnvMonarch EnvDL EnvC5 EnvISOB5 EnvISOB6
BrMediaType/BrMediaType: *PLAIN THIN THICK THICKERPAPER2 BOND TRANSPARENCIES ENV ENVTHICK ENVTHIN
InputSlot/InputSlot: MPTRAY TRAY1 TRAY2 *AUTO
Duplex/Duplex: DuplexTumble DuplexNoTumble *None
Resolution/Resolution: 300dpi *600dpi 2400x600dpi 1200dpi
TonerSaveMode/Toner Save: *Off On
Sleep/Sleep Time [Min.]: *PrinterDefault 2minutes 10minutes 30minutes

psselect

Если у Вас есть постскриптум (PS) поток, который Вы пытаетесь отправить в lpr команда можно использовать команду psselect выбрать диапазоны страниц от потока постскриптума.

Демонстрационные данные

  • PDF: Образец файл PDF доступен здесь, названный: example.pdf
  • текст: Мы можем сделать пример .txt файлом как так:

    $ seq 1000 > example.txt
    

Примеры

текст

использование enscript

$ enscript sample.txt -o - | psselect -p3- | ps2pdf - textfile.pdf
[ 16 pages * 1 copy ] left in -
[3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] 
Wrote 14 pages, 30417 bytes

$ enscript sample.txt -o - | psselect -p3-5 | ps2pdf - textfile.pdf
[ 16 pages * 1 copy ] left in -
[3] [4] [5] Wrote 3 pages, 16329 bytes

использование каш

$ paps sample.txt - | psselect -p3- | ps2pdf - textfile.pdf
[3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] 
Wrote 17 pages, 44159 bytes
[saml@grinchy bin]$ paps sample.txt - | psselect -p3-5 | ps2pdf - textfile.pdf
[3] [4] [5] Wrote 3 pages, 15851 bytes

PDF

$ pdftops example.pdf - | psselect -p3- | ps2pdf - pdffile.pdf
[3] [4] [5] [6] [7] [8] [9] [10] Wrote 8 pages, 687796 bytes

$ pdftops example.pdf - | psselect -p3-5 | ps2pdf - pdffile.pdf
[3] [4] [5] Wrote 3 pages, 372422 bytes

Отправка в lpr

Можно изменить вышеупомянутые команды так, чтобы вместо того, чтобы передать вывод по каналу к ps2pdf, отправьте его в lpr, как так:

$ pdftops example.pdf - | psselect -p3-5 | lpr -P myprinter

Что еще?

Можно управлять числом столбцов с помощью также lpr или enscript или paps. Можно также управлять дуплексом (двухсторонний стиль) использование lpr также.

Примеры

2 столбца

$ paps --columns=2 sample.txt - | psselect -p3-5 | ps2pdf - textfile.pdf
[3] [4] [5] Wrote 3 pages, 22244 bytes

$ enscript -2 sample.txt -o - | psselect -p3-5 | ps2pdf - textfile.pdf
[ 8 pages * 1 copy ] left in -
[3] [4] [5] Wrote 3 pages, 19700 bytes

$ pdftops example.pdf - | psselect -p3-5 | lpr -o number-up=2

дуплекс

$ pdftops example.pdf - | psselect -p3-5 | lpr -o number-up=2 -o sides=two-sided-short-edge

Ссылки

4
10.07.2014, 00:41
2 ответа

Да, можете (на этот вопрос есть ссылки в нескольких местах, поэтому я отвечу здесь). Просто используйте:

qdbus org.kde.plasmashell /PlasmaShell org.kde.PlasmaShell.evaluateScript

Требуется сценарий , а не путь для него, поэтому допустимое использование, например:

qdbus org.kde.plasmashell /PlasmaShell org.kde.PlasmaShell.evaluateScript 'var foo = 1;'
1
27.01.2020, 21:02
qdbus org.kde.plasmashell /PlasmaShell org.kde.PlasmaShell.showInteractiveConsole 
0
27.01.2020, 21:02

Теги

Похожие вопросы