10

我需要在我的 Heroku Cedar Rails 应用程序中将多个 PDF 文件合并为一个,并已决定使用 pdftk 来执行此操作。

我不知道如何做到这一点。我认为最好的方法是创建一个自定义 buildpack,其中包含一个为 pdftk 编译的二进制文件,但我不太清楚如何让 Vulcan 做到这一点。

有没有办法在没有 Vulcan 的情况下做到这一点?是否有一个预先存在的包含我可以使用的 pdftk 的 ruby​​ buildpack?

4

4 回答 4

12

我现在已经开始工作了,带有 pdftk 的自定义 Heroku Ruby buildpack 的公开版本在这里: https ://github.com/millie/heroku-buildpack-ruby-pdftk

请务必查看自述文件中的说明。

Heroku 的 Cedar 堆栈的 pdftk 预编译版本可在此处获得: https ://github.com/millie/pdftk-source

希望这可以为别人省去一些麻烦!

于 2012-11-26T16:22:38.323 回答
11

如果这对这里的任何人有帮助,我会按照我安装millie的预编译pdftk并使用我现有的Cedar应用程序的确切步骤。你的旅费可能会改变:

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"
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
heroku run bash
$ pdftk
于 2013-07-31T20:26:51.200 回答
1

2015 年 9 月,我使用andedebauchery 的出色回答作为指导,调整了这些步骤,以便在我的 Heroku Node.js 应用程序上安装 pdftk。他的步骤和我的步骤之间的主要区别是:

  1. 我必须将 github 存储库的 URL 从https://github.com/millie/pdftk-source.git更新为https://github.com/SirRawlins/pdftk-source

  2. 我必须下载 BSDtar才能从 pdftk.tar.gz 中提取可执行文件(我首先尝试了 GnuWin32 tar.exe,但它没有工作,因为它不处理 .tar.gz 文件)

  3. git update-index --add --chmod=+x pdftk一旦文件进入远程 Linux 环境,我必须使用它来授予对文件的执行权限

希望这对将来的其他 Windows 开发人员有所帮助!

于 2015-09-11T03:32:31.883 回答
0

这就是我在 heroku 中的 nodejs 应用程序中设置 pdftk 的方式
1- 创建 heroku 应用程序
heroku create
2- 为 pdftk
BUILDPACK_URL = https://github.com/ddollar/heroku-buildpack-apt
设置 buildpack 3- 为 nodejs
heroku buildpacks 设置 buildpack:添加 --index 1 heroku/nodejs
4 - 将 libgcj.so.* 添加到您的搜索路径:
heroku config:set LD_LIBRARY_PATH=/app/bin
5- 打开至少一个 dyno
heroku ps:scale web=1
6- 创建项目根目录中的 Procfile 并定义以下内容:
web: node server.js
5- 在 heroku 中推送更改
git push heroku master

于 2016-10-18T06:49:05.493 回答