从Facebook Rails应用程序上的照片创建PDF

时间:2012-07-13 14:40:46

标签: ruby-on-rails canvas heroku pdf-generation pdfkit

我正在使用Rails创建一个Facebook应用程序并在Heroku上托管,我在寻找解决问题的理想方法时遇到了一些麻烦。我希望用户能够在屏幕上移动他们的照片,定位他们,然后将其下载为PDF或PNG文件,以便通过电子邮件发送或打印。我有应用程序获取用户的Facebook照片,他们可以将它们拖到HTML5 Canvas元素来定位它们。然而,拍摄这张画布并将其转换成可打印的东西是我走向死胡同的地方。

基本上我有一些尝试的想法:

使用toDataURL()将画布转换为PNG - 完美无缺,但由于照片是外置的,因此画布“脏”并会引发安全问题。我曾考虑过尝试将每个图像的像素复制到像素阵列,但我听说这可能因安全问题而无法正常工作。由于应用程序正在处理人们的Facebook图像,我真的不想将它们存储在应用程序的服务器上。

使用PDFKit / wkhtmltopdf使用Rails创建PDF - 我试过这个,但由于该应用程序是Sinatra应用程序(我认为),这让我很困惑。它在to_pdf调用中抛出错误,说'命令失败'。我已经尝试添加一个config.middleware.use行,但我不是百分之百确定放在哪里,而且到处都似乎没有说“config”是一个未定义的变量。一旦我在localhost之外测试它,安装wkhtmltopdf似乎在Heroku上失败了。

使用Prawn使用Rails创建PDF - 我已经尝试了大虾,但它似乎与PDFKit有类似的问题,我对Sinatra应用程序上的内容感到困惑。我确信我也读到人们也遇到了问题。

我是否错过了任何明显的解决方案,或者有什么我没想到的?我想要做的就是创建一些易于打印的文件,其位置完好无损,用户可以轻松下载和打印,但我遇到了很多问题,我不知道下一步该去哪里,我要去圆圈。

如果有人对我如何解决这个问题有任何建议我会非常感激。

2 个答案:

答案 0 :(得分:0)

听起来您的许多问题与Heroku上无法访问的必要PDF二进制文件有关。以下twelve factor approach to dependency isolation Heroku特意提供了一个非常简单的系统。

如果您需要运行custom binary on Heroku我建议您查看名为Vulcan的工具,该工具可以编译与Heroku运行时兼容的二进制文件。

答案 1 :(得分:0)

如果大虾给你带来悲伤,只需使用其中一个jquery插件来打印你的div内容。如果您希望/需要pdf格式的图像,您甚至可以配置pdf打印机并打印文档而不是硬拷贝。

我在我的一个项目中使用http://archive.plugins.jquery.com/project/jqPrint插件,它就像一个魅力。