Упражнения на пресс чтобы он болел

Печать в Linux с помощью PSutils

Недавно на ABCLinux была опубликована статья с инструкциями по двусторонней печати в Linux. Статья не исчерпала всех возможностей, которые могут возникнуть, поэтому я решил ее дополнить.

Аннотация

Решаем задачу, как максимально удобно печатать двустороннюю в Linux на принтере, который не может этого делать сам по себе. Далее мы рассмотрим, как распечатать несколько уменьшенных страниц на одном листе бумаги и, наконец, как напечатать рабочую книгу. Будем считать, что материал для печати подготовлен в файле postscript. Это допущение не является ограничительным, поскольку PostScript можно извлечь из большинства приложений. Мы будем использовать пакет psutils, который, вероятно, есть во всех дистрибутивах.

Пакет psutils

Пакет psutils представляет собой набор программ, которые могут проделывать различные трюки с файлами postscript. Среди прочего, объединение нескольких файлов в один (psmerge, работает в очень особых случаях, у меня пока не получилось), выделение некоторых страниц (psselect), уменьшение и размещение нескольких страниц на одном листе бумаги (psnup) и перестановка страниц для печати блокнота ( psbook , см. ниже).

Отдельные программы из пакета psutils могут быть связаны конвейерами. Если не указать выходной файл, то результат сбрасывается на стандартный вывод, если также не указать входной файл, данные берутся со стандартного ввода. Объединив несколько программ в колонку, можно добиться многого.

Двусторонняя печать — теория

Здесь мы сосредоточимся на практической стороне дела. Мы возродим интерпретацию сухой теории и дадим решения для разных ситуаций. Мы предполагаем, что принтер соответствует следующим условиям:

  1. Принтер берет верхнюю бумагу из лотка.
  2. На выходе из принтера бумага падает на ранее напечатанную (т.е. на верх стопки).

Если ваш принтер работает по-другому, все равно читайте дальше.

Ответьте на следующие 2 утверждения, относящиеся к конструкции принтера.

  1. Печать на той стороне бумаги, которая находится вверху лотка. Если принтер не соответствует пункту а.), отрицайте ответ и везде, где пункты с i.) по iv.) обратитесь к лотку для бумаги, переверните верхнюю и нижнюю страницы.
  2. Бумага выходит из принтера стороной для печати вверх. Если принтер не соответствует пункту b.), отмените ответ.
Читайте также:  Упражнения для мышц груди грудная мышца

Может быть 4 случая ответов. Мы опишем, как, наконец, отсортировать двусторонние печатные страницы в правильном (т.е. по возрастанию) порядке.

  1. Ответы (да, да) — это самый простой случай. Мы печатаем нечетные страницы, возвращаем распечатанные листы в лоток, распечатывая их вниз, и печатаем четные страницы. Если нечетных страниц было больше, чем четных, последняя остается в стеке, поэтому ее нужно снова вытащить или вообще туда не класть.
  2. Ответы (нет, нет) — это все еще простой случай. Мы печатаем четные страницы, возвращаем распечатанные листы в лоток отпечатком вверх и печатаем нечетные страницы. Если нечетных страниц было больше, чем четных, принтер возьмет из лотка на один лист больше, чем мы ранее вернули в него.

Оба предыдущих варианта просты в том смысле, что они не требуют печати страниц в обратном порядке. В этих случаях достаточно, например, программы gv .

  • Ответы (да, нет) — сначала мы печатаем четные страницы в обратном порядке (отпечатанные листы возвращаем в лоток, распечатывая их вниз), а затем нечетные страницы (в обычном порядке). Если нечетных страниц больше, принтер возьмет из журнала на один лист больше, чем мы ему ранее вернули.
  • Ответы (нет, да) — сначала мы печатаем нечетные страницы в обратном порядке (отпечатанные листы возвращаем в лоток, распечатывая их вверх), а затем четные страницы (в обычном порядке).заказ). Если нечетных страниц больше, принтер возьмет из журнала на один лист больше, чем мы ему ранее вернули.
  • Мы не имеем дело с тем, как вращаются листья. Это зависит от желаемого результата (будем ли мы печатать в портретной или альбомной ориентации). Если пользователь немного подумает, он разберется. Это еще не все.

    Случаи (да, да) и (нет, нет) и аналогичны. Однако их нельзя комбинировать, потому что в одном из двух случаев напечатанные страницы всегда будут в неправильном (убывающем) порядке. То же самое относится и к случаям (да, нет) и (нет, да).

    Двусторонняя печать — практика

    Одним из способов двусторонней печати является использование программы psselect из пакета psutils. Программа psselect имеет несколько способов указать, какие страницы мы хотим выбрать. Само собой разумеется, что выбираются четные (параметр -e) и нечетные (-o) стороны. Кроме того, стороны могут быть указаны перечислением и диапазоном (-p). Порядок страниц также может быть обратным (-r). Отдельные варианты можно комбинировать.

    Читайте также:  Упражнения для пресса и ляшек и ягодиц

    Следующий скрипт печатает (с небольшой помощью пользователя) двусторонний файл postscript. Мы предполагаем, что скрипт используется для печати на одном принтере, поэтому соответствующие параметры будут заданы непосредственно в скрипте, а в качестве параметра будет передано только имя файла. Мы не рассматриваем случай принтеров с несколькими лотками и выходными путями, когда ответы на утверждения 1.) и 2.) различны для разных лотков и выходных путей. Такие принтеры могут сами печатать на обеих сторонах, а если нет, то сценарий можно изменить.

    #!/bin/bash
    #Использование: $0 print_file.ps
    #Начало настроек
    #На какой стороне бумаги в лотке выполняется печать . 1=сверху, 0=снизу
    input=
    #На какой стороне бумаги выводится печать. 1=верхний, 0=нижний
    output=
    printcommand=’lpr’
    psselect=’psselect’
    #Конец настроек
    #Настройка операторов ипеременных
    file=$1
    messagedown=»По окончании печати верните распечатанные листы в лоток, нажав кнопку вниз\n и нажмите Enter.»
    messageup=»По окончании печати верните распечатанные листы в лоток, нажав вверх\n и нажмите Enter.»
    odd=»Печать нечетных страниц.»
    oddreverse=»Нечетные страницы печатаются в обратном порядке.»
    even=»Четные страницы будут напечатаны.»
    evenreverse=»Печать четных страниц в обратном порядке.»
    done=»Done»
    #start custom script
    if [ $input -eq 1 ]
    then
    if [ $output -eq 1 ]
    then
    echo $ раздел
    $psselect -o $fileлист бумаги и решает для себя, как разместить их на странице, чтобы наилучшим образом использовать пространство. Иногда он использует альбомную бумагу. Если он признает, что не может использовать рабочий стол, он объявит об этом и ничего не сделает. С ним нет возможности договориться. На практике это означает, что мы не можем разместить на одном листе 7, 11, 13, 17 страниц. Он обрабатывает другие числа. Также можно задать размер бумаги (на входе и выходе), поля бумаги (-m), поля логической страницы (-b), способ размещения отдельных страниц (столбцы -c или строки — стандарт), линии между страницами (- г) и т.д., см. man psnup .

    Пример 1: мы хотим поместить четыре страницы из файла input.ps и сохранить их в файл output.ps, делаем это так:

    psnup -4 input.ps > output.ps

    Распечатать книгу

    Иногда бывает полезно распечатать текст, сделав из него блокнот, т.е. распечатать с двух сторон, сложить пополам и скрепить степлером (подходит для коротких статей, руководств и т.п.). Чтобы правильно оформить страницы, нужно немного подумать. Например, если у нас 12 логических страниц, то на первом листе печатаем 12 и 1 на одной стороне страницы и 2 и 11 на другой, на втором листе 10+3 и 4+9 и т.д. В принципе , это можно было бы сделать и программой psselect, но psbook подходит лучше.

    Читайте также:  Упражнения для подтяжки ягодиц и пресса

    psbook используется в сочетании с программой psnup, так что вывод psbook проходит через psnup -2 и результат печатается на обеих сторонах. Если вы посмотрите на переплет старой книги, то увидите, что она переплетена из множества маленьких блокнотов (в английском языке используется слово подпись). psbook также запоминает это с помощью параметра -s, где число, кратное 4 и означающее, что перед ним должно стоять число страниц в одной записной книжке. Если мы ничего не укажем, он поместит весь файл в одну книгу. Если количество страниц в файле не кратно количеству страниц в блокноте, он будет заполнен пустыми страницами.

    Пример2: Я использую скрипт kniha.sh для экономичной печати, который уменьшает размер страниц формата А4 и размещает их по две на листе бумаги. Распечатаю вывод скрипта с обеих сторон и получу блокнот. Использование выглядит следующим образом:

    book.sh entry.ps > output.ps
    #!/bin/sh файл=$1
    psbook $fileбумаги, но мы намерены связать их в папку на кольцах, сшив их на более длинной стороне бумаги. Это значит, что при просмотре бумаги лежат перед нами и мы их переворачиваем. Это полезно, если вы копируете книгу на двойных листах. В этом случае листы вращаются вокруг более длинной стороны листа.

    Перед началом печати убедитесь, что принтер не вращает бумагу сам по себе. Например, если бумага подается в принтер спереди и выходит заранее, она уже развернута по более короткой стороне. Если вы не уверены, вы должны пожертвовать одним листом бумаги для тестирования.

    Вывод

    Продемонстрированная процедура имеет то преимущество, что двусторонняя печать не требует участия системного администратора. Достаточно, если (односторонняя) печать работает. Пользователь сохраняет соответствующие сценарии в своем собственном каталоге сценариев (обычно это

    ).

    /bin и где-то в .bashrc добавьте этот каталог в путь).

    Поделиться с друзьями
    Фитнес от Алены