Rails 3应用程序中的IMGKit/wkhtmltoimage.元标记选项不起作用.包括完整的代码示例

Jay*_*Jay 4 image ruby-on-rails-3

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

我研究过IMGKit文档,说明你可以通过元标记将选项传递给wkhtmltoimage.所以我创建了一个包含以下元标记的页面:

<!DOCTYPE html>
<html>
    <head>
        ...
        <meta name="imgkit-height" content="420" />
        ...
    </head>
    <body>
        ...
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

Jay*_*Jay 13

在没有评论或回答的情况下,在两周内共有127次观看,所以我努力寻找答案.另外,因为在这个宝石上有这么少的东西,我想我会把我的整个过程和代码作为样本添加.

开发安装:MAC OSX

  1. 'gem install 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. 'gem install imgkit'
  2. '捆绑安装'
  3. 'sudo imgkit --install-wkhtmltoimage'没飞.有whtmltoimage的AMD64和i386版本.我曾经cat /proc/cpuinfo发现我的服务器CPU是英特尔所以手动将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
Run Code Online (Sandbox Code Playgroud)

"小程序"控制器

此视图永远不会在浏览器中呈现.它专门用于IMGKit/wkhtmltoimage阅读.请注意呈现不同的rails布局文件:

class AppletController < ApplicationController
    def index
        render(:layout => "layouts/applet_lo")
    end
end
Run Code Online (Sandbox Code Playgroud)

布局文件

布局文件具有新的元标记,这些元标记调用wkhtmltoimage选项以通过IMGKit 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>
Run Code Online (Sandbox Code Playgroud)