在heroku上使用swftools

时间:2014-12-14 15:53:35

标签: ruby-on-rails pdf image-processing heroku flash

我有一个传统的rails 2.3.14应用程序,我试图在heroku上运行。我使用延迟作业来运行后台处理,将pdfs转换为.swf文件。这是我用来处理的命令。我可以让它在本地运行。这是我在应用程序中使用的命令。

system <<-COMMAND
pdf2swf --pages=#{page_numbers} #{@pdf_path} -o #{swf_file_path}

COMMAND

当我尝试在heroku上运行它时,我收到此错误消息

sh: pdf2swf: not found

在谷歌上花费时间并搜索堆栈溢出和heroku文档后,我对下一步该做什么感到很遗憾。有没有办法在heroku上安装swftools?如果有办法将pdfs转换为swfs,我可以使用其他选项。谢谢

修改

Reto的解决方案有效,但swftools需要一些其他依赖项是bug等。我试图通过依赖项并在Aptfile中使用了一些不同的文件。我现在看起来像下面。我会尝试在某个时候清理它。

http://launchpadlibrarian.net/26103422/gsfonts_8.11%2Burwcyr1.0.7~pre44-4_all.deb
xpdf
http://launchpadlibrarian.net/14367756/libart-2.0-2_2.3.20-2_amd64.deb
http://launchpadlibrarian.net/62074298/libc6_2.10.1-0ubuntu19_amd64.deb
http://launchpadlibrarian.net/24108389/libfontconfig1_2.6.0-1ubuntu12_amd64.deb
http://launchpadlibrarian.net/58630613/libfreetype6_2.3.9-5ubuntu0.4_amd64.deb

=http://launchpadlibrarian.net/37680616/libgcc1_4.4.1-4ubuntu9_amd64.deb
http://launchpadlibrarian.net/19368718/libgif4_4.1.6-6_amd64.deb

http://launchpadlibrarian.net/26605143/libjpeg62_6b-14build1_amd64.deb

http://launchpadlibrarian.net/37680642/libstdc%2B%2B6_4.4.1-4ubuntu9_amd64.deb

https://launchpad.net/ubuntu/+source/zlib/1:1.2.3.3.dfsg-13ubuntu3
http://launchpadlibrarian.net/27270374/swftools_0.9.0-0ubuntu1_amd64.deb

http://ftp.de.debian.org/debian/pool/main/x/xpdf/xpdf_3.03-17.debian.tar.xz 

1 个答案:

答案 0 :(得分:1)

不幸的是,Ubuntu 14.04上的swftools包(heroku正在运行)不再包含pdf2swf。所以你必须安装旧版本(0.8.1):

使用heroku-buildpack-multi使用https://github.com/ddollar/heroku-buildpack-apt并安装swftools和依赖项:

$ heroku config:add BUILDPACK_URL=https://github.com/heroku/heroku-buildpack-multi.git

从这里开始,您需要创建一个.buildpacks文件,其中包含(按顺序)部署时要运行的构建包:

$ cat .buildpacks
https://github.com/ddollar/heroku-buildpack-apt
https://github.com/heroku/heroku-buildpack-ruby

然后你需要创建一个包含这个包的Aptfile文件:

$ cat Aptfile
libart-2.0-2
libjpeg62
libt1-5
http://launchpadlibrarian.net/11111323/swftools_0.8.1-1ubuntu1_amd64.deb

然后您可以使用pdf2swf

$ heroku run pdf2swf --version
Running `./pdf2swf --version` attached to terminal... up, run.5153
pdf2swf - part of swftools 0.8.1