2012-09-06 32 views
5

我試圖在Ruby on Rails 3.2中實現打印文檔的郵件合併。我在Microsoft Word中有大約8000個收件人和模板來源。模板包括圖像(照片),幷包含約10-20頁。在軌道上的紅寶石郵件合併,但在大數

實際情況是,我將原始模板改寫爲Textile(紅布),圖片從互聯網(http地址)插入。我做了所有的個性化等等。所以我生成HTML文件,並且必須將它分成許多小文件,每個文件1000頁。總共需要打印約8000 x 20頁= 160.000頁。

任何人都知道如何從HTML打印到PDF?或者如何插入更改紙盒(第一頁和最後一頁)的命令或在每頁20頁之後進行裝訂?

謝謝你的任何想法:-)

+0

當你說「郵件合併」時,你的意思是「模板替換」,對吧? – tadman

+0

是的,我喜歡。在Word中,我們使用郵件合併... – dominikform

+0

您可以使用[wkhtmltopdf](http://code.google.com/p/wkhtmltopdf/)嗎? – PinnyM

回答

0

這裏有一個想法:在你的Rails應用程序,設置它返回每個用戶一個HTML。此外,還有一個很好的/ users/index方法,可以方便地返回用戶列表,也許是json格式。

現在,你想有一個本地腳本,用Ruby編寫的,bash中,無論是方便,到:

  • 獲取從/用戶/法的用戶列表,可能將其保存到一個文件
  • 循環遍歷用戶列表(所以它們不是全部在內存中),並獲取電子郵件的HTML
  • 從每個下載的HTML生成pdf,無論是在循環內還是循環遍歷文件在保存HTML的目錄中。使用wkhtmltopdf或類似的。
  • 將每個pdf發送到打印機,再次在同一個循環內,或循環保存的pdf。

如果您想要更加高效,可以使用像resque這樣的排隊系統,並將每個項目符號點放入一個隊列中,併爲每個隊列運行一個worker。這可以讓你開始打印一些pdf文件,而其他的文件仍然被下載和轉換,所以它應該是整體上更少的時間。但是如果你不熟悉這種排隊系統,一個簡單的腳本也應該完成它。