0

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

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

使用 toDataURL() 将 Canvas 转换为 PNG -可以完美运行,但由于照片是外部的,因此 Canvas 很“脏”并且会引发安全问题。我曾考虑尝试将每个图像的像素复制到像素阵列,但我听说由于安全问题,这也可能不起作用。由于该应用程序正在处理人们的 Facebook 图片,我真的不想将它们存储在应用程序的服务器上。

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

使用 Prawn 使用 Rails 创建 PDF -我尝试过 prawn,但它似乎与 PDFKit 有类似的问题,我对 Sinatra 应用程序的去向感到困惑。我敢肯定,我也读到人们也遇到了问题。

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

如果有人对我如何解决这个问题有任何建议,我将不胜感激。

4

2 回答 2

0

听起来您的许多问题都与 Heroku 上无法访问的必要 PDF 二进制文件有关。在遵循依赖隔离的十二因素方法之后, Heroku 特意提供了一个非常简单的系统。

如果您需要在 Heroku 上运行自定义二进制文件,我建议您查看一个名为 Vulcan 的工具,它可以编译与 Heroku 运行时兼容的二进制文件。

于 2012-07-13T15:56:57.547 回答
0

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

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

于 2012-07-13T18:29:04.890 回答