2010-04-20 89 views
1

我正在開發一個web應用程序,處理髮票(功能不限於發票,但它並不重要)。工作流程的其中一部分是在發票發行後打印發票。這意味着網站用戶可以選擇10-20(或更多)發票並立即打印。也可能有幾個可定製的發票模板(這是關鍵要求之一)。需要一個應用程序設計建議

我還要提到的是,我們決定從生成的HTML代碼的PDF文件,然後打印出來。因爲PDF創建過程可能需要一些時間才能完成,所以我們決定使用Windows服務進行發票打印。

因此,我們總結有以下要求:

  1. 應該有定製的發票 模板;
  2. 網站用戶應該是 能夠指定他想要使用的模板 與指定的發票項目 ;
  3. 應該有一個可能性 打印一個或幾個選擇 發票點擊。

我們的第一個想法是利用用戶控件發票模板。用戶控件將負責發票佈局。這也意味着將會有這些用戶控件的基類,通過它我們將能夠爲控件定義數據源。 在這種情況下,我們甚至可以允許用戶修改ascx文件(或類似的東西)以在必要時編輯基本字幕。

的問題開始在窗口服務,我們是無法生成用戶控件輸出。所以另一種解決方案是使用http處理程序或Web服務來生成用戶控件輸出並將其傳輸到Windows服務。但是這使解決方案變得複雜(例如,我們需要使用認證來解決這個問題和類似的問題)。

也許有一個更簡單的方法來做到這一點?

在此先感謝。

+0

因此打印發生在*服務器*上?或者服務即將停止,生成一批PDF文件,然後將它們一次全部下載到客戶端,然後打印出來(本地)? – 2010-04-20 08:15:40

+0

讓我們假設執行Windows服務的計算機能夠將PDF發送到打印機。 Windows服務將定期執行「生成和打印作業」。作業將從當時可用的數據中生成所有PDF,並將其發送到打印機。 – Alex 2010-04-20 08:50:30

回答

1

在回答您的意見,我建議你的網站生成HTML,並將其保存到「GeneratedInvoice」字段中您的數據庫,該服務,然後處理(即轉換爲PDF但是您的PDF轉換軟件會) 。這是合適的,因爲您有生成的發票的「保存」副本;即如果您的發票處理程序發生變化(不同的款式等),您的舊發票不會受到影響,但是如果需要,您可以重新生成一個可能爲'新'格式的給定羣。

+0

謝謝!這比我提出的初始解決方案要好得多。 – Alex 2010-04-20 09:54:03