4

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

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

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

1 回答 1

13

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

开发安装:MAC OSX

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

生产安装:Ubuntu 10.04 LTS

  1. '宝石安装 imgkit'
  2. '捆绑安装'
  3. 'sudo imgkit --install-wkhtmltoimage' 没有飞。wkhtmltoimage 有 AMD64 和 i386 版本。我曾经cat /proc/cpuinfo发现我的服务器 CPU 是 Intel 所以手动将 i386 版本安装到 /usr/local/bin。我更改了 wkhtmltoimage-i386 文件的权限以允许执行。此外,为了让 IMGKit 识别文件,我必须重命名文件,去掉“-i386”。

调用 IMGKit 函数的控制器。

  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

“小程序”控制器

此视图永远不会在浏览器中呈现。专供 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>
于 2012-04-14T04:47:14.447 回答