像火狐浏览器一样打印

像火狐浏览器一样打印

制作了一个 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

我建议您到grepvar$HTML并找到任何<img src=..元素,然后将每个src属性替换为完整图像路径,例如https://en.wikipedia.org/wiki/File:Uncle_Tupelo.jpg.默认情况下,服务器页面技术将图像源保留到服务器的相对路径,如本例所示<img src="File:Uncle Tupelo.jpg">。这些值大部分源自 CSS。这将解决打印输出中的图像问题,但其他 CSS 元素详细信息可能仍然丢失。

另一种方法是wget使用快速 Perl 脚本。

相关内容