19

我需要一个工具来自动将简单的 HTML 转换为图像。我将控制 HTML 输入,它由简单的文本格式标记和可能的图像链接组成——我不需要能够呈现任意 HTML。有没有一种简单的方法可以做到这一点?

我看过 Gecko 和 Webkit 之类的 HTML 布局引擎,但坦率地说,我对它们拥有的选项数量感到不知所措——我不需要完整的 Web 浏览器!是否可以以这种方式使用这些引擎?有人可以引导我朝着正确的方向前进吗?

其他可能性,如 browsershots,依赖于真实浏览器的屏幕截图,但我将在一个可能有很多用户的 Web 服务器上运行这个应用程序,所以性能很重要,我担心这种解决方案无法扩展。

想法?

编辑:抱歉忘记提及我的服务器正在运行 Linux,因此 Windows 解决方案无济于事。:)

4

7 回答 7

15

回答,我自己的问题,我发现了这个有用的工具,它使用 WebKit 来呈现页面,然后将输出捕获为图像甚至 PDF 格式!

http://cutycapt.sourceforge.net/

这个想法类似于 Jay 提到的 khtml2png,但我更喜欢这个实现。此外,为了将来参考,通过 Xvfb 运行 X 虚拟帧缓冲区并不像我担心的那样占用大量内存。

于 2008-12-09T18:51:08.640 回答
7

在它有点笨拙和臃肿之前,我已经使用过 CutyCapt - 需要 Qt。

IMO,PhantomJs(一个无头 webkit)是迄今为止最好的解决方案,快速、简单和干净。你可以用它做很多事情。

http://phantomjs.org

或者看到这个

于 2012-10-03T09:53:24.420 回答
5

如果您在 Linux 上运行并且有可用的 KDE 库,您可能会发现这很有用:khtml2png

khtml2png 是一个用于创建网页截图的命令行程序。它使用 libkhtml(在 KDE 网络浏览器 Konqueror 中使用的库)。在 khtml2png 2.0.5 到 2.5.0 中,ImageMagick 图形转换工具包中的“转换”用于创建各种图像文件格式的输出文件。2.6.0及以后的开发将使用Qt库的内置转换。

此外,为了跟进 Vilx 的建议,您可以使用html2ps将 HTML 转换为 ps 文件,然后使用gs (Ghostscript) 将 ps 文件转换为 png 或 jpg。有关一种方法,请参见http://www.karakas-online.de/myLinuxTips/ps2png.html

于 2008-12-04T20:03:29.060 回答
2

视窗?如果是,那么 HTMLayout 可能会有所帮助——它是一个免费的渲染引擎,并且它有一个简单的 API——从 C/C++ 中使用它是轻而易举的——将 HTML 转换为 BMP 并不难。

http://www.terrainformatica.com/htmlayout/

它也是免费的。

于 2008-12-04T20:03:15.707 回答
1

我一直很幸运地使用了多年来在 Ubuntu 中本地可用的wkhtmltoimage命令(并且,对于打印输出, ),并且如果我记得的话,它也总是正确且相当快地呈现。wkhtmltopdf

http://wkhtmltopdf.org/

有几个选项可用,但基本调用如下所示:

wkhtmltoimage tmp.html tmp.png
于 2015-03-28T04:10:36.077 回答
0

也许您可以将 HTML 转换为更容易转换为图像的另一种格式?在谷歌中,我发现了一些叫做 html2ps 和 html2pdf 的东西。从 PS 到 EPS 仅一步之遥,并且已经可以渲染为图像。或类似的东西。

于 2008-12-04T19:58:06.653 回答
0

您可以使用PDFCreator应用程序。此应用程序允许打印多种格式,包括各种图像。它包括一个 ActiveX / com 服务器,可让您相当轻松地自动化该过程。您几乎可以转换任何可以打印的东西。这种方法的一个缺点是,由于它使用打印框架进行转换,您一次只能转换一个文档,所以我不知道它是否适合网站。

于 2008-12-04T20:05:41.473 回答