2012-07-13 99 views
0

我使用Rails創建了一個Facebook應用程序並託管在Heroku上,並且遇到了一些問題,找到了解決問題的理想方法。我希望用戶能夠在屏幕上移動他們的照片,放置它們,然後將其下載爲PDF或PNG文件,以通過電子郵件發送或打印。我有應用程序獲取用戶的Facebook照片,他們可以將它們拖到HTML5 Canvas元素上以定位它們。然而,將這幅畫布轉換成可打印的東西,是我陷入死衚衕的地方。從Facebook上的Rails應用程序中的照片創建PDF

基本上我有一些想法,我曾嘗試:

轉換畫布使用toDataURL()一個PNG -會完美地工作,但因爲照片是外部的,畫布是「髒」,並拋出出現安全問題。我想過要將每個圖像的像素複製到一個像素陣列,但是我聽說這可能不起作用,或者是由於安全問題。由於該應用正在處理人們的Facebook圖片,我真的不想將它們存儲在應用的服務器上。

使用PDFKit/wkhtmltopdf創建一個PDF使用Rails -我試過這個,但由於該應用程序是一個Sinatra應用程序(我認爲),它讓我感到困惑了很多。它通過to_pdf調用拋出錯誤,說'命令失敗'。我嘗試添加一個config.middleware.use行,但我並不是100%確定將它放在哪裏,而且每個地方似乎都失敗,說「config」是一個未定義的變量。一旦我在localhost之外測試它,安裝wkhtmltopdf似乎在Heroku上失敗。

使用大蝦使用Rails創建一個PDF -我試過蝦,但它似乎也有類似的問題PDFKit,我弄不清楚什麼去哪裏上辛納屈的應用程序。我相信我也讀得很清楚,人們也有問題。

我是否錯過了任何明顯的解決方案,或者是我沒有想到的東西?我想要做的就是創建一種可以輕鬆打印的文件,並且可以很容易地下載和打印,但我遇到了很多問題,我不知道下一步該去哪裏,我要去圓圈。

如果有人對我有什麼建議可以解決這個問題,我會很感激。

回答

0

如果蝦給你悲傷只是使用其中一個jQuery插件打印你的div內容。如果您希望/需要PDF格式的圖像,您甚至可以配置PDF打印機並打印文檔而不是硬拷貝。

我在我的一個項目中使用了http://archive.plugins.jquery.com/project/jqPrint插件,它的功能就像一個魅力。

+0

這看起來像我需要的東西。如果我可以通過jQuery來做到這一點,那就容易多了。我只是基於教程嘗試了一個類似的插件,它不會呈現任何畫布,所以我會嘗試使用您建議的jqPrint插件,看看它是如何實現的。乾杯! – 2012-07-16 08:56:27

+0

確定只需將所需的所有內容打印在div中(例如id =「print-photos」),加載「jquery.print.js」並調用'$(「#print-photos」)。jqprint();'from按鈕點擊事件或類似事件。 – saihgala 2012-07-16 09:06:40

+0

是的,我給了這個插件一個嘗試,它似乎沒有與Canvas一起工作,它只是給了我一個空白頁。我不確定這是因爲它沒有包含任何Canvas JS代碼,或者它不能以我認爲應該的方式工作。我想我越來越近了。 – 2012-07-16 09:17:31

0

聽起來好像很多問題都與Heroku上無法訪問的必要PDF二進制文件有關。在下面的twelve factor approach to dependency isolation Heroku故意提供一個非常裸露的系統。

如果你需要運行一個custom binary on Heroku我建議看看一個名爲Vulcan的工具,它可以編譯與Heroku運行時兼容的二進制文件。

+0

我會追逐jQuery插件的想法,但如果這不起作用,那麼我會給這個鏡頭。我已經在Rails上做了一些事情,之前他們在Heroku上託管了它們,但是這只是一個新的微型應用程序,它被創建爲一個Facebook模板,令我感到困惑。乾杯。 – 2012-07-16 08:58:56

相關問題