如何从SQL Server生成文档(docx或pdf)?

时间:2012-05-03 06:39:36

标签: c# sql-server-2008 ssis pdf-generation ms-office

我知道这有点主观,但我正在研究以下情况:

我需要从SQL Server数据库中的数据自动生成大量文档。将在数据库上安装一个MVC3应用程序以允许数据输入等,并且(可能)有一个“Go”按钮来生成文档。

需要有一些关于如何创建,命名和存储这些文档的业务逻辑(例如“父”文档获取一个名称并进入一个文件夹,“子”文档获取计算名称并进入子文件夹

文档可以是PDF或Doc(x)(甚​​至两者),只要输出可以是EN-US和AR-QA(RTL文本)

我知道SSRS,Crystal Reports,VSTO,代码中的“手动”PDF,单词邮件合并等等有很多选项......如果有任何用途,我们已经有了HTML到PDF工具吗?

有没有人对如何解决这个以及“最佳”(最务实)的方法有什么现实世界的建议?我需要在服务器上安装和配置的“额外”越少越好 - 开发越快越好(一如既往!!)


到目前为止的结果:

Word邮件合并(或VSTO) 根本不提供我所需的简单性,控制性和灵活性 - 真的很遗憾。很高兴定义一个dotx并能够在单独的基础上将数据传递给它以生成docx。只有这样才能实现这一点(我可能在这里错了)是按名称循环控制/书签并替换值......凌乱。

的OpenXML 即使使用OpenXML,基于dotx模板创建文档并不像(IMHO)那样简单。您必须按名称替换每个内容控件,因此维护不是最简单的任务。

SSRS 从表面上看,这是一个很好的解决方案(尽管它需要SQL Enterprise),但是如果你想动态生成文件夹和文档,它会变得更加复杂。数据驱动的订阅非常接近我想要的。

Winnovative HTML to PDF Convertor * 这是我们已经拥有的工具(尽管是.Net 2.0版本)。这允许我生成HTML页面并将其转换为PDF。对我来说这是一个很好的选择,因为我可以在MVC3网站上运行它并将参数传递给控制器​​以生成PDF。这使我对文件夹和命名结构进行了更细粒度的控制 - 这种方法的问题只是以正确的方式生成页面。奖励是它会自动给我一个“预览”......基本上只是HTML页面!

3 个答案:

答案 0 :(得分:4)

Office OpenXML是一种生成office文件的简单方法。 XSLT可以成为格式化内容的强大工具。这项技术不会让你创建pdf。

不使用任何第三方组件进行快速开发将很困难。但是,如果您考虑使用报表服务器,请务必查看BIRT或Jasper。

要生成pdf,我一直在使用已弃用的Report.net。它有许多不同语言的端口,仍然足以制作简单的pdf。 Report.net on sourceforge

答案 1 :(得分:2)

我不认为SQL Server本身可以生成pdf文件。您可以做的是,如您所述,安装SSRS实例并创建一个生成所需信息的报告。然后,您可以创建订阅,以便在需要时将报告发送到您想要的位置。

以下是简单订阅的示例: enter image description here

答案 2 :(得分:0)

只有在服务器上进行设置并且确实需要时间表报告和复杂报告时,才能使用SSRS。

如果您有手动编写PDF / docx的代码,我建议继续使用它。希望代码的复杂性对你来说不是问题。

我在不同的场景中都使用了它们。我们使用.NET中的excel类和对象来从Web应用程序进行最小化的报告。

但是为一个系统制定了详细的报告方案,该系统要求以预定的方式生成1000个报告并将其发送给选定的人员。