
Criei um script CLI para imprimir artigos da Wikipedia:
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 no sentido de que se você escrever./print Shane_Mosley
Este artigoé impresso.
Mas, comparado ao uso do Firefox --- navegar até o site e imprimir a partir dos menus --- o resultado impresso é inferior: layout muito menos compacto (especialmente tabelas), sem imagens e não suporta caracteres "incomuns".
Então, minha pergunta: o Firefox é "monolítico" ou na verdade é composto de ferramentas modulares, que posso replicar? Ou eu poderia usar o Firefox como servidor, para poder alimentar comandos (como ir lá e imprimir)?
Se não: existem maneiras de usar melhor minhas ferramentas ou existem outras ferramentas que melhorariam o resultado?
Responder1
Como você descobriu, esse método é, na melhor das hipóteses, abaixo do ideal. 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á toda a questão de renderizar essa bagunça.
Mas para você há boas notícias na forma de umImpressão de linha de comandoextensão 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.
Responder2
Eu sugiro que você vá ao grep
var $HTML
e encontre qualquer <img src=..
elemento e, em seguida, substitua cada src
atributo 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 de CSS. Isso resolverá o problema da imagem em suas impressões, porém outros detalhes do elemento CSS ainda podem estar faltando.
Uma alternativa wget
seria usar um script Perl rápido.