2010-04-20 45 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