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

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

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

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

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

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

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


到目前为止的调查结果:

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

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

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

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

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

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

为了生成pdf,我一直在使用已弃用的Report.net。 它有许多不同语言的端口,仍然足以制作简单的pdf。 关于so​​urceforge的Report.net

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

以下是简单订阅的示例: 在此处输入图像描述

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

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

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

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