2011-04-24 52 views
0

我有一個數據庫驅動的網站,使用在Linux服務器上運行的Django構建。它管理許多單獨的組,每個組都有數百個用戶。它需要能夠按需爲一個,一些或所有用戶打印定製的文檔(即訪問憑證)。每個組都有自己的徽標,每個憑證都使用用戶的名稱,照片和一些其他圖形印章進行定製。所有的自定義信息都基於用戶存儲的數據。從網站打印多個自定義的用戶文檔

我試圖確定格式化憑據和打印的最佳方法。下面是我想出來的,到目前爲止的選項:使用表標籤打破憑證進入細胞包含自定義文本或圖形

  • 直HTML格式。這似乎很簡單,除非它似乎不適合一次打印幾百張憑證。

  • 從PDF文件格式的文檔模板開始,使用可用的PDF命令行工具包標記自定義信息並將多個PDF附加到單個文件中進行打印。這似乎也是合理的,除了這些工具包的服務器許可證費用對於Linux(> 500美元)而言過於昂貴。

  • 在客戶端運行的獨立程序,通過Web服務檢索用戶數據,並進行本地格式化和打印。

還有其他的選擇嗎?有什麼建議?謝謝你的幫助。

回答

0

解決方案是使用開源的ReportLab庫從頭開始構建PDF頁面。

我找不到一種廉價的方式將自定義組件添加到現有PDF中。 ReportLab可以做到這一點,但只能通過他們的商業產品。

雖然很好用。

0

我曾經用SVG做過類似的事情。這可以提供很大的靈活性,因爲您可以在inkscape中設計「憑據」,使用佔位符名稱和徽標,然後完成後,在文本編輯器中打開輸出svg,並用上下文變量替換佔位符。

一個提示,把所有的django模板代碼(如果有的話)作爲xml註釋,例如<!--{% load xyz_tags %}-->,否則,如果在inkscape中打開它,很多事情都會搞砸。

+0

看起來我將使用ReportLab在我的Django應用程序中構建PDF。我想我可以使用名爲PageCatcher的產品引入現有的憑證模板,然後使用ReportLab工具爲自定義信息加蓋郵票。將報告結果。 – 2011-04-28 15:45:51