Imprimir como o Firefox

2

Feito um script CLI para imprimir artigos da Wikipédia:

WIKI='https://en.wikipedia.org/w/index.php?title='
TITLE=$1
PRINTABLE='&printable=yes'

SRC=$WIKI$TITLE$PRINTABLE

HTML=$1".html"
PS=$1".ps"

wget $SRC

mv index* $HTML

html2ps $HTML > $PS

lpr -P pr1444 $PS

Funciona respeitando que, se você escrever ./print Shane_Mosley este artigo é impresso.

Mas, comparado ao uso do Firefox --- navegue até o site e imprima a partir dos menus --- o resultado impresso é inferior: muito menos layout compacto (especialmente tabelas), sem fotos, e não consegue lidar com caracteres "incomuns" .

Então, minha pergunta: o Firefox é "monolítico" ou na verdade é composto de ferramentas modulares, que eu posso replicar? Ou eu poderia usar o Firefox como um servidor, que eu posso alimentar comandos (como ir lá e imprimir)?

Se não: existem maneiras de usar minhas ferramentas de uma maneira melhor, ou existem outras ferramentas que melhorariam o resultado?

    
por Emanuel Berg 16.07.2012 / 23:12

2 respostas

4

Como você descobriu, esse método é, na melhor das hipóteses, insatisfatório. Além do HTML, você precisará, no mínimo, de todas as imagens e CSS. Você também pode precisar de todo o Javascript. E depois há todo o negócio de renderizar essa bagunça.

Mas, para você, há boas notícias na forma de uma extensão Impressão de linha de comando que você pode instalar no Firefox .

Então:

firefox -print http://www.example.com/index.html

Existem mais exemplos na página de documentação da extensão.

    
por 17.07.2012 / 02:31
0

Sugiro que você use grep the $HTML var, encontre o elemento <img src=.. e substitua cada atributo src pelo caminho completo da imagem, como https://en.wikipedia.org/wiki/File:Uncle_Tupelo.jpg . Por padrão, a tecnologia de páginas do servidor mantém a origem da imagem no caminho relativo dos servidores, como neste caso <img src="File:Uncle Tupelo.jpg"> . A maioria desses valores é derivada do CSS. Isso resolverá o problema de imagem em suas impressões, no entanto, outros detalhes do elemento CSS ainda podem estar faltando.

Uma alternativa para wget seria usar um script Perl rápido.

    
por 16.07.2012 / 23:41