在Heroku上安装Pdftk

问题描述 投票:0回答:2

如何在heroku堆栈上安装pdftk?

由于其他依赖关系,我无法将堆栈降级为Cedar,我需要在heroku-16上运行。

ruby-on-rails heroku pdftk
2个回答
2
投票

答案是here,如果它消失,我只想将它存档为后代。特别感谢Derek Barber!


第一步是下载可在heroku上运行的pdftk二进制文件并将其添加到您的Rails应用程序:

mkdir -p [my_project]/vendor/pdftk/lib [my_project]vendor/pdftk/bin
cd /tmp
git clone https://github.com/millie/pdftk-source.git
cd pdftk-source
tar xzvf pdftk.tar.gz
mv bin/pdftk [my_project]/vendor/pdftk/bin/
mv lib/libgcj.so.12 [my_project]/vendor/pdftk/lib/
cd [my_project]
git add -f vendor/pdftk/
git commit -m "Add pdftk dependencies"

完成后,您可以将更改推送到heroku,然后设置必要的环境变量,以便heroku知道在哪里可以找到这个新的二进制文件:

git push heroku master
heroku config:set LD_LIBRARY_PATH=/app/.heroku/vendor/lib:/app/vendor/pdftk/lib
heroku config:set PATH=/app/.heroku/python/bin:/usr/local/bin:/usr/bin:/bin:/app/vendor/pdftk/bin

最后你可以尝试一下,通过运行bash并尝试来确认pdftk现在正在你的heroku实例上运行:

heroku run bash
$ pdftk

如果pdftk工作,那么你应该看到pdftk的一堆帮助输出,这意味着你现在好了。您部署的应用程序应该能够使用pdf并生成精美的pdf表单。


0
投票

如果你想要最新版本的PDFtk,你必须稍微修改@ DonPaulie的答案,因为Derek Barber的文章将安装PDFtk 1.4版,最新版本是2.02。否则它完美无缺。我还在这篇文章的评论中添加了这些说明。

要获得2.02版,请使用Derek Barber's article中的说明。但是,不要像在文章中那样克隆来自https://github.com/millie/pdftk-source.git的源代码。相反,从this repository获取你的来源。该repo已经编译了最新版本的二进制文件。

例如,如下所示稍微修改bash脚本。

mkdir -p [my_project]/vendor/pdftk/lib [my_project]vendor/pdftk/bin
cd /tmp
git clone https://github.com/Aesthetikx/heroku-pdftk-buildpack.git
cd heroku-pdftk-buildpack/binaries-[your_heroku_stack]
mv pdftk [my_project]/vendor/pdftk/bin/
mv libgcj.so.17 [my_project]/vendor/pdftk/lib/
cd [my_project]
git add -f vendor/pdftk/
git commit -m "Add pdftk dependencies"

然后按照Derek Barber文章中的其余说明逐字记录。如果从heroku bash测试pdftk后出现“权限被拒绝”错误,则向项目所有者授予权限

$ chmod u+x /app/vendor/pdftk/bin/pdftk

来自heroku bash。

© www.soinside.com 2019 - 2024. All rights reserved.