我有一個場景,我需要生成基於對象數組的多頁pdf。wicked_pdf多頁文件
以下是我的模型:
# Member has_many certificates
class Member < ActiveRecord::Base
has_many :certificates, dependent: :destroy
before_save :set_expiry
def self.delete_expired
where(expire_at: Date.today).destroy_all
end
private
def set_expiry
self.expire_at = 15.days.from_now
end
end
# certificate belongs_to member
class Certificate < ActiveRecord::Base
belongs_to :member
belongs_to :certificate_type
belongs_to :company
def company_name
company.name
end
def page_orientation
company_name == 'CompanyA' ? 'Landscape' : 'Portrait'
end
def page_height
company_name == 'CompanyA' ? '10.5in' : '11in'
end
def page_width
company_name == 'CompanyA' ? '7in' : '8.5in'
end
end
# each type can have many certificates
class CertificateType < ActiveRecord::Base
has_many :certificates
end
用戶流量是類似以下內容:
- 用戶上傳的Excel與會員的記錄文件。系統存儲記錄。
- 用戶可以爲單個成員生成證書。 (已經在工作)。
- 用戶可以爲所有上傳的成員批量生成證書。
我有一個自定義表單,我在創建證書對象(複選框選擇),然後提交表單。控制器接收證書對象的散列。我必須逐個遍歷所有對象來爲其關聯成員創建證書。問題是每個證書都有自己的模板和一些自定義頁面佈局設置,如方向,寬度和高度。我想生成一個包含多個頁面的單個PDF文件,其中每個頁面都是一個證書。我被困在哪裏以及如何通過每個單獨證書的頁面佈局設置。我在我的控制器中嘗試了render_to_string,並嘗試在那裏設置頁面佈局選項,但它似乎不起作用。我需要一些建議或指針。
使用外部工具,如'poppler的-utils'一個選項(即你控制服務器)?如果它在Heroku上或其他什麼,它可能不是。如果是這樣,我可以給你一些關於如何在你的場景中使用它的細節。 – fdisk
@fdisk它不是Heroku。我正在使用數字海洋,我想這應該工作。 –