Spring 使用java应用程序在heroku上安装wkhtmltopdf
我设法在Heroku上建立了我的spring boot网站。但我也使用wkhtmltopdf创建pdf。这在本地有效,但现在我有一些问题 离线时,其工作原理如下:Spring 使用java应用程序在heroku上安装wkhtmltopdf,spring,heroku,wkhtmltopdf,Spring,Heroku,Wkhtmltopdf,我设法在Heroku上建立了我的spring boot网站。但我也使用wkhtmltopdf创建pdf。这在本地有效,但现在我有一些问题 离线时,其工作原理如下: ProcessBuilder pb = new ProcessBuilder ("cmd.exe", "/c", " cd C:\\Program Files\\wkhtmltopdf\\bi
ProcessBuilder pb = new ProcessBuilder
("cmd.exe",
"/c",
" cd C:\\Program Files\\wkhtmltopdf\\bin && wkhtmltopdf.exe "
+ "http://google.com C:\\MainWebApps\\TestApp\\src\\main\\resources\\userstorage\\Google2.pdf");
但是我如何在Heroku上安装这个
我在哪里存储临时html页面,以便从中创建pdf
Heroku上的wkhtmltopdf安装在哪里
我可以在heroku上用processbuilder调用wkhtmltopdf吗
编辑
所以在ceejayoz的评论之后,我在谷歌上搜索了更多,确实找到了一些有趣的东西
因此,为了在Heroku上编译二进制文件,我使用了以下方法:
heroku run /bin/bash
然后我做了一个像这样的卷曲:
curl -O http://download.gna.org/wkhtmltopdf/0.12/0.12.0/wkhtmltox-linux-amd64_0.12.0-03c001d.tar.xz
然后我尝试在服务器上提取它,但没有成功:
$ tar -xjvf wkhtmltox-linux-amd64_0.12.0-03c001d.tar.xz
tar (child): wkhtmltox-linux-amd64_0.12.0-03c001d.tar.xz: Cannot open: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
EDIT2
我也在github上找到了这个
所以我做了以下几点:
heroku buildpacks:set 'https://github.com/heroku/heroku-buildpack-multi.git'
echo 'https://github.com/dscout/wkhtmltopdf-buildpack.git' >> .buildpacks
这创建了一个名为.buildpacks的文件,但如何从那里开始呢
我也发现了这篇文章,但是vulcan不推荐使用ruby
有人能给我提供好的信息吗,因为我完全被困在这个问题上了?你实际上有两个问题需要解决-
- 如何安装/调用可执行文件
- 如何处理生成的.pdf文件
ProcessBuilder
调用该程序
警告-因为看起来您是在Windows上开发的,所以您需要注意确保两个特定于平台的二进制文件都可用,并添加一些逻辑以知道调用哪一个(例如,通过设置/检查特定的环境变量)
我建议不要尝试使用定制的构建包进行构建-您将花费大量精力,但几乎没有任何益处。除了平台问题,当代码更改时,您不需要重建第三方工具
第二个问题是,您不能将生成的PDF保留在原位。当dyno重新启动时,它将消失(请参阅)。因此,当流程完成时,您应该做的第一件事是将生成的文件移动到外部存储服务(AmazonS3是一个很好的起点)
希望这有帮助。您可能需要使用。使用该解决方案,您不需要将wkhtmltopdf可执行文件放入VCS中。例如,您可以将其用于Maven或Gradle。通过谷歌搜索“wkhtmltopdf heroku”显示一些选项。您也可以只获取一个Linux版本的二进制文件并将其提交到您的存储库中。@ceejayoz我如何将二进制文件提交到存储库中并从那里使用它?对不起,我对这个很陌生。就像其他文件一样。@ceejayoz我不明白我该做什么。所以我从wkhtmltopdf下载了二进制文件。但是我需要做什么呢?我应该把文件放在哪里?一旦我提交了这个文件,我怎么能在线使用这个二进制文件呢?我不需要知道C:\\Program Files\\wkhtmltopdf\\bin&&wkhtmltopdf.exe这样的路径吗?我也无法在heroku上使用java获得关于wkhtmltopdf的更多信息。