![像火狐浏览器一样打印](https://linux22.com/image/23969/%E5%83%8F%E7%81%AB%E7%8B%90%E6%B5%8F%E8%A7%88%E5%99%A8%E4%B8%80%E6%A0%B7%E6%89%93%E5%8D%B0.png)
制作了一个 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 脚本。