De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Aurélio Marinho Jargas
Data de Publicação: 30 de abril de 2021
olás. já se deparou com o dilema de ter que imprimir algumas páginas de
texto e acabar recorrendo ao X para fazer isso? ou mandar seu texto
direto para o lpr
e perceber que ele saiu todo cortado? ou ainda, você
tem poucas folhas disponíveis e quer espremer o texto pra caber nelas?
seus problemas acabaram!
o mpage é um utilitário
de linha de comando presente na maioria das distribuições de linux que
converte texto para páginas em postscript
, a linguagem que as
impressoras entendem, e tem diversas opções úteis que veremos agora.
a sintaxe é simples, sendo o texto convertido jogado na saída padrão e esta pode ser direcionada para o servidor de impressão:
$ mpage [OPÇõES] arquivo.txt | lpr
chamado sem opções, imprime no tamanho A4, com 4 páginas por folha. isso
mesmo! quatro páginas colocadas numa só folha. daí o nome do programa
"M(ultiple)Page". as opções -1
, -2
-4
e -8
definem quantas
páginas por folha serão impressas.
para definir o tamanho da folha, caso diferente de A4, a opção -b
aceita
os parâmetros A3, Letter ou Legal. também podemos mudar a orientação do
papel com a opção -l
, imprimindo como "paisagem", ou seja, com a folha
deitada.
então para imprimir o arquivo de serviços da máquina (que tem mais de 300 linhas) numa só folha tamanho Letter, contendo oito mini-páginas:
$ mpage -8 -b Letter /etc/services | lpr
note que para oito páginas (bem como para duas), a orientação "paisagem"
é escolhida automaticamente. adicionando a opção -a
, vemos que as
páginas são colocadas primeiro preenchendo a largura e depois a altura.
e ainda, o -R
começa o preenchimento a partir do pé da folha.
todas estas orientações automáticas e preenchimento confundem, então
aqui vai uma tabela esperta que resume como ficarão dispostas as
páginas. note que "ori." é a orientação, sendo |
e -
a representação da
página: em pé ou deitada.
n° ori. normal -a -R -a e -R --------------------------------------------------------- 1 | 1 1 1 1 2 - 1 2 1 2 1 2 1 2 4 | 1 3 1 2 3 4 2 4 2 4 3 4 1 2 1 3 8 - 1 3 5 7 1 2 3 4 5 6 7 8 2 4 6 8 2 4 6 8 5 6 7 8 1 2 3 4 1 3 5 7
sabe esta linha separadora que está desenhada em volta das páginas? você
pode tirá-la com a opção -o
(de "outline"). e caso você não goste da
fonte monoespaçada Courier
que é a padrão, pode utilizar outra com a
opção -F
. eu não aconselho, mas como tem gente que gosta...
$ mpage -8 -o -F Times /etc/services | lpr
outras opçõezinhas que podem ser úteis são o -H
("header") para incluir
cabeçalho em todas as páginas (data, nome do arquivo e número da página)
e o -s
que define o número de espaços em branco que o TAB vai ocupar, o
padrão é 8. outra que pode ajudar é o -c
que concatena vários arquivos
num só. então, num exemplo com cabeçalho, TAB de 4 espaços e juntando
dois arquivos, temos:
$ mpage -8 -H -s 4 -c /etc/passwd /etc/services | lpr
calma que se ainda sobrou folhas na sua impressora temos as margens pra
brincar. temos o -m
para definir as margens da folha e o -M
para as
margens de cada página. a sintaxe é a mesma para ambas as opções e pode
assustar numa primeira olhada.
o tamanho padrão de cada margem é de 20 pontos, ou seja, -m20
. note
que NÃO podem haver espaços entre a opção e os seus argumentos! para
especificar individualmente cada margem, temos as letras identificadoras
rltb
, sendo:
r (right) | direita |
l (left) | esquerda |
t (top) | superior |
b (bottom) | inferior |
então -m60rl40t10b
define tamanhos de: 60 pontos para margens direita
e esquerda, 40 para o topo e 10 para o pé. variando os números das
margens pode-se fazer coisas legais como centralizar o texto num
quadrado no meio da página. cuidado para não confundir, pois o -m
é a
margem da folha, então independente se orientação está normal ou em
paisagem, o topo é o topo.
mas como papel não é barato e ficar imprimindo cada teste desse também
vai gastar tempo e tinta, vamos usar a cabeça, ou melhor, o linux.
lembra que o mpage
gera um arquivo em postscript para a impressora?
então basta pegar um dos bilhares de visualizadores de postscript
existentes e ver como ficará a impressão:
$ mpage -8 -H -m60rl40t10b -F Times /etc/services > arquivo.ps $ meu-visualizador arquivo.ps $ lpr arquivo.ps
infelizmente, os visualizadores bons são todos para X... o único que
conheço pro console é o gs -sDEVICE=vgalib
, que vem no pacote do
ghostscript
(http://www.cs.wisc.edu/~ghost), mas ele apenas lhe dá
"uma idéia" de como o arquivo ficará &:) nesse mesmo pacote tem o gv
(para eca-X) que quebra o galho.
— este texto pode ser copiado livremente na íntegra ou em parte, desde que indicado o endereço do original: http://aurelio.net/doc/coluna
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários