由于 IMGKit 的代码示例不多,我在下面发布了我的。

我研究了 IMGKit documentation ,它说你可以通过元标记将选项传递给 wkhtmltoimage 。所以我创建了一个带有以下元标记的页面,但它不起作用:

<!DOCTYPE html>
<html>
    <head>
        ...
        <meta name="imgkit-height" content="420" />
        ...
    </head>
    <body>
        ...
    </body>
</html>

最佳答案

两周内有 127 次观看,没有评论或回答,所以我努力寻找答案。此外,因为这个 gem 上的内容太少,我想我会添加我的整个过程和代码作为示例。

开发安装:MAC OSX

  • 'gem 安装 imgkit'
  • '捆绑安装'
  • 安装 wkhtmltoimage 有点棘手,因为我使用 rvm。 'rvmsudo' 安装方法对我不起作用。我最终下载了 wkhtmltoimage-OSX-0.10.0_rc2-static.tar.bz2 for Mac OSX here ,解压缩并将 wkhtmltoimage 文件复制到 usr/local/bin。我们的服务器使用 Ubuntu...希望一切顺利...我会告诉你的。
  • 我使用命令 wkhtmltoimage http://www.google.com test.jpg 测试了 wkhtmltoimage,一切正常。
  • 根据 IMGKit 文档,我为 png 和 jpeg 添加了 mime 类型。

  • 生产安装:Ubuntu 10.04 LTS
  • 'gem 安装 imgkit'
  • '捆绑安装'
  • 'sudo imgkit --install-wkhtmltoimage' 没有飞起来。 wkhtmltoimage 有 AMD64 和 i386 版本。我使用 cat /proc/cpuinfo 找出我的服务器 CPU 是 Intel,因此将 i386 版本手动安装到/usr/local/bin。我更改了 wkhtmltoimage-i386 文件的权限以允许执行。此外,为了让 IMGKit 识别文件,我必须重命名文件,去掉“-i386”。

  • 调用 IMGKit 函数的 Controller 。
      def email_profile
        ...
        filename = current_user.username + "_" + cur_date + '.jpg'
    
        kit = IMGKit.new("https://www.myapp.com/applet/?auth_token=" + token)
        img = kit.to_img(:jpg)
        file = kit.to_file(Rails.root + "public/profile_images/" + filename)
        ...
      end
    

    “小程序” Controller

    此 View 永远不会在浏览器中呈现。专供 IMGKit/wkhtmltoimage 读取。请注意,呈现了不同的 rails 布局文件:
    class AppletController < ApplicationController
        def index
            render(:layout => "layouts/applet_lo")
        end
    end
    

    布局文件

    布局文件具有调用 wkhtmltoimage 选项以通过 IMGKit gem 裁剪图像的新元标记。它仍然不起作用。 gem 的作者回信说这个功能很挑剔。我正在使用 minimagick 进行裁剪,直到修复为止。
    <!DOCTYPE html>
    <html>
        <head>
        <meta name="imgkit-crop-h" content="990">
        <meta name="imgkit-crop-w" content="635">
        </head>
        <body>
            <%= yield %>
        </body>
    </html>
    

    10-08 13:06