7

Мои принтеры не поддерживают автоматическую двустороннюю печать. Я ищу решение для моих компьютеров Mac и Linux, которое я видел с большинством драйверов принтеров Windows:

  • Отметьте "Ручной дуплекс" на экране принтера.
  • Принтер начинает печатать на одной стороне
  • Появится диалоговое окно с просьбой перевернуть страницы
  • Принтер печатает на другой стороне.

Единственное, что я могу сделать, это print odd pages , затем снова открыть диалоговое окно и print even pages , но это очень неудобно, особенно когда я хочу печатать только определенный диапазон страниц документа, поскольку диалог Mac каждый раз забывает мой предыдущий диапазон страниц. время. Это становится еще более неудобным при печати двухсторонней печати или при изменении дополнительных настроек для этой распечатки.

Есть ли какой-нибудь инструмент, который может это сделать? Или, может быть, "виртуальный драйвер принтера", который может находиться где-то между диалогом и фактическим драйвером принтера, который управляет этими шагами? (Инструмент Windows http://en.wikipedia.org/wiki/FinePrint может сделать что-то подобное, но мне не нужны все его функции, и он мне нужен в Mac/Linux.)

Или кто-то может знать хитрость, как заставить диалог печати оставаться открытым, то есть «Печатать, но не закрывать»?

Обновить

Кажется, что такой инструмент еще не существует. Насколько сложно было бы реализовать что-то подобное? Где он должен быть интегрирован - как драйвер принтера CUPS или как ловушка для действия печати диалога? Может ли он работать кроссплатформенно, или он должен быть специфичным для Mac/Linux?

Может ли кто-то с опытом в Mac/Linux/ программировании драйверов пролить свет на это?

Решение

Текущее решение:

Создайте скрипт Apple Automator:


Действие: Извлечение нечетных и четных страниц [Все страницы в отдельных файлах]


Действие: Запустить сценарий оболочки [Передать ввод в качестве аргументов]

mv "$1" /tmp/odd.pdf
mv "$2" /tmp/even.pdf
lpr /tmp/odd.pdf

Действие: запросите подтверждение ["Пожалуйста, переверните страницы"]


Действие: Запустить сценарий оболочки [Передать ввод в качестве аргументов]

lpr /tmp/even.pdf

Это еще не идеально. Предложения по улучшению и альтернативы приветствуются!

8 ответов8

3

ПОЧТИ, но сигары еще нет: 4-й шаг только получает нечетные страницы с 1-го шага, а затем берет четные страницы из этого набора ... Это не хорошо. Я удалю это через некоторое время, если я не придумаю что-нибудь умное. (1-й шаг также можно сделать, чтобы сразу создать два файла, но вам нужен диалог подтверждения. Может быть, в Automator есть некоторая "перезагрузка" или параллельная обработка.


Для Mac Automator - ваш друг:

  • Открыть Автоматор

  • Выберите "Плагин печати" (Плагины печати - это рабочие процессы, доступные в диалоговом окне печати. Они принимают PDF-версии документа для печати. До версии 10.6 Snow Leopard у вас может не быть этого выбора, пока вы не собираетесь сохранить рабочий процесс, а не при создании пустого рабочего процесса. Должен работать так же.)

  • Перетащите следующие элементы в рабочий процесс справа:

    1. "Извлечь нечетные и четные страницы" и выберите "Нечетные"

    2. "Print Finder Items"

    3. "Запросите подтверждение", напишите несколько инструкций

    4. "Извлечь нечетные и четные страницы" и выберите "Четные"

    5. "Print Finder Items"

  • Сохрани это. В конечном итоге он окажется в ~/Library/PDF Services/ и, следовательно, будет частью меню PDF в диалоговом окне "Печать".


Автоматизатор на помощь


Меню PDF в диалоге печати

Когда общее количество страниц нечетное, вам придется немного поиграться с первой или последней страницей первого запуска. (Если вы положите всю стопку обратно в принтер, тогда последняя страница может остаться в лотке для бумаги, когда вы закончите. Просто попробуйте и отрегулируйте инструкции в шаге 3.)

3

На sourceforge есть проект duplexpr, который может делать то, что вы хотите.

http://sourceforge.net/projects/duplexpr/

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

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

Уникальная особенность заключается в том, что она позволяет выполнять двустороннюю печать в пакетном режиме, поэтому вы можете печатать сразу несколько заданий, и вам нужно всего лишь перевернуть и заново вставить всю стопку бумаги один раз, а не один раз для каждого задания.

Текущая версия (на sourceforge) имеет несколько проблем. Во-первых, они изменили Bash. Чтобы заставить работать текущие сценарии (после их загрузки), необходимо изменить первую строку каждого сценария с #!/bin/sh to #!/ Бен / Баш

Другая проблема - это проблема дизайна. Принтеры различаются по тому, как они обращаются с бумагой. Некоторые раздают страницы напечатанной стороной вверх, другие - напечатанной стороной вниз и т.д. Это означает, что должен быть более одного алгоритма дуплексной печати. duplexpr в настоящее время поддерживает только один алгоритм. Он отлично работает на принтерах, таких как HP Deskjet 720 и 895 (старые) и HP C4480 (более новые). Это почти работает на моих HP LaserJet (1006 и 1020). На них все распечатанные страницы правильные и в правильном порядке, но каждую страницу необходимо перевернуть вручную после завершения печати задания (они выходят 2/1, 4/3 ... вместо 1/2 3/4).

Проверьте это и свяжитесь со мной, если вы заинтересованы в его использовании. Вы можете отправить мне электронное письмо через страницу проекта sourceforge (URL выше).

Еще несколько мыслей:

duplexpr на самом деле не касается диапазонов печати страниц. Это можно сделать с помощью параметров "Печать в файл" и "Диапазон страниц", доступных в большинстве диалоговых окон печати приложения.

Если у вас есть вывод в файле (в стандартном (по крайней мере, для Linux) формате PostScript), у вас есть несколько вариантов. Затем вы можете запустить его через duplexpr (который, кстати, решает проблему с нечетным количеством страниц, упомянутую другими авторами).

Если вы можете работать с помощью интерфейса командной строки (cli), то команда lp - или lpr, в зависимости от того, что вы установили, имеет параметры, которые вы можете указать только для нечетных страниц, даже для четных страниц, и даже при необходимости можете указать для них диапазон страниц. Если вам это не нравится, есть замечательная небольшая графическая утилита под названием xpp, которая сделает все это и даже больше. Это даже позволит вам создать псевдоним для одного из существующих принтеров, который будет печатать только четные или нечетные страницы. Я использую его все время для устранения застревания бумаги и многократной подачи страниц во время второго прохода двусторонней печати (вторые стороны), чтобы я мог закончить печать на любых односторонних страницах, которые не были уничтожены, не начав с нуля.

С помощью любого из этих ручных методов, если у вас нечетное количество страниц, вы можете просто отправить форму на принтер, чтобы извлечь последнюю страницу:

echo -n $ '\f' | Л.П.

будет делать это, или вы можете создать файл только с формой подачи и отправить его в lp. Это работает на каждом принтере, который я пробовал до сих пор.

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

НТН

Джо

2

Посмотрите на ПО HP для двусторонней печати.

1

Основываясь на комментариях здесь и на других форумах, я сделал какое-то объединенное решение, объединяющее функции Automator и Shell Scripts. Как я уже видел, такое решение еще не опубликовано, так что это может пригодиться.

Единственный пакет, который вам нужно получить - это сервер pdftk, который можно скачать с официального сайта pdftk. Устанавливая сервер pdftk, вы устанавливаете только один пакет, который дает вам возможность редактировать PDF-файлы с помощью сценариев оболочки. Позвольте мне процитировать текст с официального сайта о сервере pdftk:

После установки откройте Терминал, введите pdftk и нажмите Return. Pdftk ответит отображением краткой информации об использовании. Получите доступ к документации по pdftk, запустив man pdftk.

Этот установщик создает каталог на вашем Mac: /opt /pdflabs /pdftk /. Он будет содержать каталог bin, в котором находится программа pdftk, и каталог docs, в котором содержится полное руководство по PDFtk.

С помощью pdftk мы сможем извлечь нечетные и четные страницы PDF-файла (что очень быстро по сравнению со встроенным в Automator экстрактором), изменить порядок и повернуть страницы. Изменение порядка и поворота удобно в зависимости от используемого принтера: вам не нужно переупорядочивать страницы вручную между нечетными и четными страницами. К вашему сведению: в моем примере я использовал принтер Samsung ML-2165W (на тот случай, если вы хотите понять, как течет бумага внутри принтера).

Основание приходит из топа ответа Арьян в:

  • Открыть Автоматор
  • Выберите "Плагин печати" (как ранее писал Арджан: «... плагины печати принимают PDF-версии документа, который печатается ...», что означает, что входом первого элемента (вы перетаскиваете в рабочий процесс) будет этот PDF)
  • Перетащите следующие элементы:

    1. Установите значение переменной. В раскрывающемся меню выберите « Путь».
    2. Run Shell Script: это та часть, где мы реализуем pdftk.

      source ~/.bash_profile
      
      while read -r p; do
          pdftk A="$p" cat Aodd output /tmp/odd.pdf
      done
      
      lpr /tmp/odd.pdf
      

      Объяснение: источник .bash_profile необходим, потому что иначе команда pdftk не будет доступна. Цикл while написан на основе справочной страницы pdftk: все, что вам нужно знать, - это то, что он извлекает нечетные страницы входного pdf в odd.pdf, который будет помещен в /tmp. После создания odd.pdf мы распечатаем его с настройками по умолчанию, используя команду оболочки lpr.

    3. Запросите подтверждение: введите текст инструкции. ВАЖНО: при использовании этого рабочего процесса вы должны дождаться завершения процесса печати нечетных страниц, затем положить их обратно во входной лоток, и затем вы можете нажать ОК. Кроме того, предстоящий сценарий оболочки (который также включает в себя печать, очевидно) будет выполнен до того, как вы сможете вернуть бумаги обратно.

    4. Получить значение переменной. Установите Переменная в Путь. Это сложная часть: в раскрывающемся меню опций выберите Игнорировать ввод этих действий. Это вернет вам исходный путь PDF, так что вы не будете больше извлекать только что извлеченные нечетные страницы (что было проблемой в комментариях выше).

    5. Run Shell Script: печать четных страниц (в обратном порядке, а также в повернутой ориентации).

      source ~/.bash_profile
      
      while read -r p; do
          pdftk A="$p" cat Aeven output /tmp/even.pdf
          pdftk /tmp/even.pdf cat end-1 output /tmp/even_backwards.pdf
          lpr -o orientation-requested=6 /tmp/even_backwards.pdf
      done
      

      Объяснение: После извлечения четных страниц из исходного файла PDF использование параметра end-1 с pdftk дает нам обратную версию PDF. Поворот будет производиться с использованием параметров команды lpr (я пытался повернуть его с помощью pdftk, что прошло гладко, но почему-то с помощью команды lpr с начальными параметрами повернул этот pdf обратно, я полагаю, из-за настроек принтера). -o Ориентирование-запрошено = 6 дает нам поворот на 180 градусов (подробнее см. man lpr).

Этот скриншот обобщает весь рабочий процесс.

1

Gnome Manual Duplex - ваш друг. GUI'ified, виртуальный принтер, CUPS-совместимый ...

1

В духе "драйвера виртуального принтера" вы можете попробовать печатать в Postscript или PDF из своего приложения. Это особенно помогло бы при печати определенного диапазона или сложной нумерации по 2 строчки.

Основная идея заключается в том, чтобы "напечатать" из приложения нужные параметры (диапазоны страниц, страницы на листе и т.д.), Но отправить результаты в PS/PDF. Затем используйте стандартное средство печати PS/PDF вашей операционной системы для обработки фактической двусторонней печати.

Поочередно, запустите два задания печати из приложения. Установите первый для генерации PS/PDF ваших обращенных страниц, а второй для генерации второго PS/PDF ваших нижних страниц. Затем двусторонняя печать уже завершена, и все, что вам нужно сделать, это распечатать первый файл, перевернуть страницы и положить их обратно в лоток принтера, а затем распечатать второй файл.

Это, конечно, не самый красивый и не самый удобный метод, но его можно реализовать, изменив рабочий процесс - никакого дополнительного программного обеспечения не требуется. (Я полагаю, что в OSX функция печати в PDF встроена; в Linux довольно просто настроить ее, если она недоступна в вашем дистрибутиве.)

0

Сначала откройте принтер и найдите значок, который указывает, как загружать фирменные бланки. Если он загружен лицевой стороной вверх, используйте этот скрипт:

#!/bin/sh

if [ "$1" = "--help" ]; then
  echo '
twosidedu - print a PDF document two-sided, using a single-sided printer 
that needs letterhead paper loaded face up.

USAGE:   twosidedu foo.pdf

The even numbered pages will be printed in reverse order.  When
prompted, re-insert the pages with printed side down and the top edge
according to the icon, and type <enter>.  Then, the odd-numbered pages
will be printed in normal order.'
  exit 0
fi

pdftk "$1" cat end-1even output - | lp
read -p "please re-insert the pages into the printer then hit <enter>" junk
pdftk "$1" cat 1-endodd output - | lp 

В противном случае используйте этот скрипт:

#!/bin/sh

if [ "$1" = "--help" ]; then
  echo '
twosidedd - print a PDF document two-sided, using a single-sided printer
that needs letterhead paper loaded face down.

USAGE:   twosidedd foo.pdf

The even numbered pages will be printed in normal order.  When
prompted, re-insert the pages with printed side up and the top edge
according to the icon, and type <enter>.  Then, the odd-numbered pages
will be printed in normal order.'
  exit 0
fi

pdftk "$1" cat 1-endeven output - | lp
read -p "please re-insert the pages into the printer then hit <enter>" junk
pdftk "$1" cat 1-endodd output - | lp 
-1

Программное обеспечение HP для двусторонней печати. Я просто использовал его, он работает легко и отлично. Конечно, вам нужен принтер HP, который у меня есть.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .