基于nodejs与phantomjs在heroku搭建网页截图服务

heroku网页截图服务搭建流程:

基于nodejs与phantomjs可以在heroku上搭建网页截图服务(Screenshot as a Service)

示例页面:http://screenshot.bookshadow.com/

该服务基于github的项目https://github.com/fzaninotto/screenshot-as-a-service的heroku分支版本

部署具体步骤如下:

  • 1. git clone https://github.com/GoBoundless/screenshot-as-a-service.git
  • 2. cd screenshot-as-a-service
  • 3. npm install
  • 4. heroku create --stack cedar --buildpack https://github.com/ddollar/heroku-buildpack-multi.git
  • 5. 修改config/default.yaml,将path: '/tmp/' 修改为 '/app/tmp/' (heroku的/tmp/目录禁止程序写入,使用该目录直接部署会报错Error: ENOENT)
  • 6. heroku config:set PATH=/app/bin:/app/node_modules/bin:/usr/local/bin:/usr/bin:/bin:/app/vendor/phantomjs/bin
  • 7. git add -A
  • 8. git commit -am "InitRepo"
  • 9. git push heroku master
  • 10. heroku ps:scale web=1

关于中文字体:

heroku系统默认不包含中文字体,因此缺省设置下phantomjs截取中文页面时文字会变成方框,无法正常显示。

要支持中文字体显示,只需在步骤5之后再执行下面的步骤:

  • 5.1 mkdir .fonts (在screenshot-as-a-service目录下)
  • 5.2 将ttf格式的中文字体文件(比如微软雅黑)拷贝到.fonts目录下

执行上述步骤后即可在截图时正常显示中文了,日语字体与韩文字体同理,需注意的是字体格式必须为ttf,ttc的不可以。

本文链接:http://bookshadow.com/weblog/2014/05/07/nodejs-phantomjs-heroku-screenshot-service/
请尊重作者的劳动成果,转载请注明出处!书影博客保留对文章的所有权利。

如果您喜欢这篇博文,欢迎您捐赠书影博客: ,查看支付宝二维码