Existe um projeto no sourceforge chamado duplexpr que pode fazer o que você quiser.
link
Eu escrevi há muito tempo e não pude gerar nenhum interesse nele, então não o atualizei. Se eu conseguir uma base de usuários ativa de > 0, ou alguém interessado em ajudar a desenvolver ou testar, vou trabalhar nisso de novo. Eu até tenho um código de desenvolvimento mais novo que possui alguns recursos adicionais. Eu também estou brincando com a habilidade de guiá-lo para que ele possa ser usado na área de trabalho sem ir para a linha de comando.
É um conjunto de scripts bash que emulam a impressão duplex para impressoras não duplex. Eu usei todos os dias - há muitos anos.
Uma característica única é permitir a impressão em frente e verso em lote, para que você possa imprimir vários trabalhos de uma só vez e só precisa inverter e reinserir toda a pilha de papel uma vez para cada trabalho.
A versão atual (no sourceforge) tem alguns problemas. A primeira é que eles mudaram de festa. Para que os scripts atuais funcionem (depois de baixá-los), a primeira linha de cada script deve ser alterada de #! / Bin / sh para #! / Bin / bash
O outro problema é um problema de design. Impressoras variam em como eles lidam com papel. Alguns colocam páginas com o lado impresso voltado para cima e outras com o lado impresso voltado para baixo, etc. Isso significa que deve haver mais de um algoritmo de impressão duplex. O duplexpr atualmente suporta apenas um algoritmo. Funciona perfeitamente em impressoras como a HP Deskjet 720 e 895 (antiga) e a HP C4480 (mais recente). Quase funciona nas minhas HP Laserjets (1006 e 1020). Nessas, todas as páginas impressas estão corretas e na ordem correta, mas cada página precisa ser virada manualmente depois que o trabalho terminar de imprimir (elas são exibidas em 2/1, 4/3 ... em vez de 1/2 3/4).
Dê uma olhada e volte para mim se você estiver interessado em usá-lo. Você pode me enviar e-mail através da página do projeto sourceforge (url acima).
Mais alguns pensamentos:
O duplexpr realmente não aborda os intervalos de impressão de páginas. Você pode fazer isso usando as opções "imprimir para arquivo" e "intervalo de páginas" disponíveis na maioria das caixas de diálogo de impressão de aplicativos.
Uma vez que você tenha a saída em um arquivo (no formato postscript padrão (pelo menos para Linux)), você tem várias opções. Você pode então executá-lo através do duplexpr (que, a propósito, lida com o número ímpar de problemas de páginas mencionados por outros pôsteres).
Se você pode manipular usando a interface de linha de comando (cli), então o comando lp - ou lpr, o que você instalou, tem opções que você pode especificar apenas para páginas ímpares, páginas pares e até mesmo intervalos de páginas se necessário. Se isso não é do seu agrado, há um utilitário de gui pouco surpreendente chamado xpp que fará tudo isso e muito mais. Ele permite até criar um alias para uma das suas impressoras existentes, que imprimirá apenas páginas pares ou ímpares. Eu uso o tempo todo para recuperar de atolamentos de papel e alimentação de várias páginas durante a segunda passada da impressão duplex (os segundos lados) para que eu possa terminar a impressão de páginas unilaterais que não foram lixadas sem começar do zero.
Com qualquer um desses métodos manuais, se você tiver um número ímpar de páginas, basta enviar um formfeed para a impressora para ejetar a última página:
echo -n $ '\ f' | lp
vai fazer isso ou você pode criar um arquivo com apenas um formfeed nele e enviá-lo para lp. Isso funciona em todas as impressoras que tentei até agora.
De qualquer forma, é muito mais fácil do que lembrar de não reinserir a última página, etc.
HTH
Joe