【问题标题】:Convert .html file to image [closed]将.html文件转换为图像[关闭]
【发布时间】:2013-10-02 21:07:42
【问题描述】:

我正在寻找任何可以忠实地将 .html 文件转换为图像格式的实用程序——最好是 png 或 jpeg。我已经用谷歌搜索了几个小时并下载了十几个免费试用版,但似乎没有任何效果。 Adobe Acrobat Pro 几乎可以工作,但它决定缩小表格单元格以适应页面而不是缩小整个表格。

感谢任何建议。

问候。

【问题讨论】:

  • 假设您尝试处理太多页面以简单地将它们全部打印在一起?
  • this 这样的东西会起作用吗?
  • 我使用 Firefox 的 Screengrab 扩展。 Chrome 也有一些类似的。
  • 也许this thread 可以提供帮助。
  • 有许多 Firefox 插件可以做到这一点。你的用例到底是什么?

标签: html image


【解决方案1】:

我正在使用 wkhtmltoimage。

它是一个快速的命令行工具,它使用 webkit 库来渲染任何网站。 有两个版本,一个是生成pdf,一个是生成图片。

wkhtmltoimage 适用于 Windows、Linux 和 Mac。

http://code.google.com/p/wkhtmltopdf/

/wkhtmltoimage-i386 -H
Name:
  wkhtmltoimage 0.10.0 rc2

Synopsis:
  wkhtmltoimage [OPTIONS]... <input file> <output file>

Description:
  Converts an HTML page into an image, 

General Options:
      --allow <path>                  Allow the file or files from the specified
                                      folder to be loaded (repeatable)
      --checkbox-checked-svg <path>   Use this SVG file when rendering checked
                                      checkboxes
      --checkbox-svg <path>           Use this SVG file when rendering unchecked
                                      checkboxes
      --cookie <name> <value>         Set an additional cookie (repeatable)
      --cookie-jar <path>             Read and write cookies from and to the
                                      supplied cookie jar file
      --crop-h <int>                  Set height for croping
      --crop-w <int>                  Set width for croping
      --crop-x <int>                  Set x coordinate for croping
      --crop-y <int>                  Set y coordinate for croping
      --custom-header <name> <value>  Set an additional HTTP header (repeatable)
      --custom-header-propagation     Add HTTP headers specified by
                                      --custom-header for each resource request.
      --no-custom-header-propagation  Do not add HTTP headers specified by
                                      --custom-header for each resource request.
      --debug-javascript              Show javascript debugging output
      --no-debug-javascript           Do not show javascript debugging output
                                      (default)
      --encoding <encoding>           Set the default text encoding, for input
  -H, --extended-help                 Display more extensive help, detailing
                                      less common command switches
  -f, --format <format>               Output file format (default is jpg)
      --height <int>                  Set screen height (default is calculated
                                      from page content) (default 0)
  -h, --help                          Display help
      --htmldoc                       Output program html help
      --images                        Do load or print images (default)
      --no-images                     Do not load or print images
  -n, --disable-javascript            Do not allow web pages to run javascript
      --enable-javascript             Do allow web pages to run javascript
                                      (default)
      --javascript-delay <msec>       Wait some milliseconds for javascript
                                      finish (default 200)
      --load-error-handling <handler> Specify how to handle pages that fail to
                                      load: abort, ignore or skip (default
                                      abort)
      --disable-local-file-access     Do not allowed conversion of a local file
                                      to read in other local files, unless
                                      explecitily allowed with --allow
      --enable-local-file-access      Allowed conversion of a local file to read
                                      in other local files. (default)
      --manpage                       Output program man page
      --minimum-font-size <int>       Minimum font size
      --password <password>           HTTP Authentication password
      --disable-plugins               Disable installed plugins (default)
      --enable-plugins                Enable installed plugins (plugins will
                                      likely not work)
      --post <name> <value>           Add an additional post field (repeatable)
      --post-file <name> <path>       Post an additional file (repeatable)
  -p, --proxy <proxy>                 Use a proxy
      --quality <int>                 Output image quality (between 0 and 100)
                                      (default 94)
      --radiobutton-checked-svg <path> Use this SVG file when rendering checked
                                      radiobuttons
      --radiobutton-svg <path>        Use this SVG file when rendering unchecked
                                      radiobuttons
      --readme                        Output program readme
      --run-script <js>               Run this additional javascript after the
                                      page is done loading (repeatable)
  -0, --disable-smart-width           Use the specified width even if it is not
                                      large enough for the content
      --stop-slow-scripts             Stop slow running javascripts (default)
      --no-stop-slow-scripts          Do not Stop slow running javascripts
                                      (default)
      --transparent                   Make the background transparent in pngs
      --use-xserver                   Use the X server (some plugins and other
                                      stuff might not work without X11)
      --user-style-sheet <url>        Specify a user style sheet, to load with
                                      every page
      --username <username>           HTTP Authentication username
  -V, --version                       Output version information an exit
      --width <int>                   Set screen width (default is 1024)
                                      (default 1024)
      --window-status <windowStatus>  Wait until window.status is equal to this
                                      string before rendering page
      --zoom <float>                  Use this zoom factor (default 1)

Specifying A Proxy:
  By default proxy information will be read from the environment variables:
  proxy, all_proxy and http_proxy, proxy options can also by specified with the
  -p switch

  <type> := "http://" | "socks5://"
  <serif> := <username> (":" <password>)? "@"
  <proxy> := "None" | <type>? <sering>? <host> (":" <port>)?

  Here are some examples (In case you are unfamiliar with the BNF):

  http://user:password@myproxyserver:8080
  socks5://myproxyserver
  None

Contact:
  If you experience bugs or want to request new features please visit 
  <http://code.google.com/p/wkhtmltopdf/issues/list>, if you have any problems
  or comments please feel free to contact me: <uuf6429@gmail.com>

演示:

./wkhtmltoimage-i386 "http://stackoverflow.com/questions/11907986/convert-html-file-to-image/11908055#11908055" demo.png

【讨论】:

【解决方案2】:

如果你需要一个命令行程序,试试IECapt。它使用 Internet Explorer 渲染引擎。还有一个名为CutyCapt 的跨平台实用程序——我没有尝试过。 IECapt 的文件参数的一个注意事项:它只能通过指定文件的完整路径来工作。似乎无法识别相对路径。路径中的引号是允许的,例如:--file:"C:\....."

【讨论】:

    【解决方案3】:

    还有 PhantomJS(参见http://phantomjs.org)。 我在用 PHP 编写的搜索引擎中使用它来生成网站缩略图。 和wkhtmltoimage一样,它是一个基于WebKit的命令行程序,可以生成图片和PDF。但由于它是一个完整的浏览器,它使用 JavaScript 来进行处理。

    编辑:有关图像渲染的具体示例,请参阅 https://github.com/ariya/phantomjs/wiki/Screen-Capture

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-01
      • 2010-10-12
      • 2012-08-07
      • 1970-01-01
      • 1970-01-01
      • 2013-12-21
      • 1970-01-01
      相关资源
      最近更新 更多