对于一个与上传图片重量级pdf文件有很多作用的rails应用程序,我正在寻找一种优化上传pdf文件大小的方法。
Adobe Acrobat有一个“保存为缩小文件大小的pdf”选项,当包含图像时,它通常会将文件大小减半。
我想在我的rails应用程序中上传文件后执行类似的操作。
有什么想法吗?
答案 0 :(得分:0)
虽然@ lzap的评论可能属实,但如果你仍然想试一试,你可以看看pdftk(PDF工具包)。它是一个用于操作和创建PDF文件的库,看起来它提供了compress a given pdf file的能力。
该库可以安装在大多数主要操作系统上,因此如果您能够在主机上安装它,那么只需调用:
system("pdftk uncompressed-input.pdf output compressed-outpu.pdf compress")
只要您想压缩特定的PDF文件,就可以在rails app中使用。我不知道这需要多长时间,如果你同时压缩许多PDF,你可能要考虑转交给后台工作(如果没有这个,Rails会等到压缩完成后再将任何内容返回到浏览器,可能会导致长时间运行的压缩调用组出现超时错误。)
此外,如果您的文件名来自用户输入,请务必小心谨慎以避免injection attacks。