与在网页上呈现单个图像无关。目标是渲染整个网页,并将其保存为屏幕截图。想要向用户显示 HTML 文件的缩略图。我将截取的 HTML 文件将是 MIME 电子邮件消息中的 HTML 部分 - 理想情况下,我想截取整个 MIME 文件,但如果我可以对 HTML 文件执行此操作,我将处于良好状态。
API 将是理想的,但可执行文件也很好。
与在网页上呈现单个图像无关。目标是渲染整个网页,并将其保存为屏幕截图。想要向用户显示 HTML 文件的缩略图。我将截取的 HTML 文件将是 MIME 电子邮件消息中的 HTML 部分 - 理想情况下,我想截取整个 MIME 文件,但如果我可以对 HTML 文件执行此操作,我将处于良好状态。
API 将是理想的,但可执行文件也很好。
您需要 html2ps,并从 ImageMagick 包中转换:
html2ps index.html index.ps
convert index.ps index.png
第二个程序为长 html 页面每页生成一个 png - 页面布局由 html2ps 完成。
找到了一个程序evince-thumbnailer,报如下:
apropos postscript | grep -i png
evince-thumbnailer (1) - create png thumbnails from PostScript and PDF documents
但它不适用于简单的第一次测试。
如果您想将多个页面组合成一个更大的图像,convert 肯定会帮助您。
现在我看到了,convert 直接对 html 进行操作,所以
convert index.html index.png
也应该工作。我看不出输出有什么不同,而且图像的大小几乎相同。
如果你有一个多部分的 mime 类型的电子邮件,你通常有一个邮件标题,可能是一些 pre-html-text、html 和附件。
您可以提取 html 并单独对其进行格式化 - 但将其嵌入嵌入可能并不容易。
这是我测试的一个文件,它是从 4 月 14 日开始的,所以我从邮件文件夹中提取了一封邮件:
sed -n "/From - Sat Apr 14/,/From -/p" /home/stefan/.mozilla-thunderbird/k2jbztqu.default/Mail/Local\ Folders-1/Archives.sbd/sample | \
sed -n '/<html>/,/<\/html>/p' | wkhtmltopdf - - > sample.pdf
然后我只提取其中的 html 部分。
wkhtmltopdf 需要- -
读取标准输入/写入标准输出。PDF 已渲染,但我不知道如何将其集成到您的工作流程中。
您可以替换wkhtml ...
为
convert - sample.jpg
我要使用 wkhtmltoimage。这在正确设置 xvfb 后起作用。后记建议未正确呈现,我们需要 img 而不是 pdf。