
Wikipedia の記事を印刷するための CLI スクリプトを作成しました:
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
それは、あなたが書くと./print Shane_Mosley
この記事が印刷されます。
しかし、Firefox を使用する場合 (サイトに移動してメニューから印刷する) と比較すると、印刷結果は劣ります。レイアウトがコンパクトでなく (特に表)、画像がなく、「異常な」文字を処理できません。
そこで質問です。Firefox は「モノリシック」なのでしょうか、それとも実際には複製可能なモジュール ツールで構成されているのでしょうか。あるいは、Firefox をサーバーとして使用して、コマンド (そこに移動して印刷するなど) を入力できるのでしょうか。
いいえの場合: ツールをより効果的に使用する方法はありますか? または、結果を向上させる他のツールはありますか?
答え1
ご存知のとおり、この方法はせいぜい最適とは言えません。HTML に加えて、少なくともすべての画像と CSS が必要になります。また、すべての Javascript も必要になる場合があります。さらに、この混乱をレンダリングするという作業も発生します。
しかし、あなたにとって良いニュースがあります。コマンドライン印刷Firefox にインストールできる拡張機能。
それから:
firefox -print http://www.example.com/index.html
拡張機能のドキュメント ページにさらに多くの例があります。
答え2
grep
varにアクセス$HTML
して任意の要素を見つけ<img src=..
、すべてのsrc
属性を のような完全な画像パスに置き換えることをお勧めしますhttps://en.wikipedia.org/wiki/File:Uncle_Tupelo.jpg
。デフォルトでは、サーバー ページ テクノロジは、この場合のように、画像ソースをサーバーの相対パスに保持します<img src="File:Uncle Tupelo.jpg">
。これらの値のほとんどは CSS から派生しています。これにより、印刷時の画像の問題は解決されますが、他の CSS 要素の詳細がまだ欠落している可能性があります。
代わりに、wget
簡単な Perl スクリプトを使用することもできます。