【问题标题】:how should i export data to office documents and pdf in asp.net mvc 3我应该如何在asp.net mvc 3中将数据导出到office文档和pdf
【发布时间】:2026-01-03 06:10:01
【问题描述】:

我正在寻找解决此问题的最佳方法以及我们最好的处理顺序。

我们有一个应用程序,用户可以在其中输入某些个人详细信息, 之后,他们可以下载 word 文档 (.docx) 或获取个人数据的 pdf (.pdf)。

我们已经做的是将一切分开: 使用 *.docx 模板,我们填写参数化字段,然后将其作为 docx 保存给用户

通过一个名为BioPdf的库,我们可以将渲染的word文档转换为pdf

我们希望避免在服务器上安装 Office(或任何其他办公工具), 所以当前的库需要去,我们知道iTextSharp是一个创建pdf的库,但这意味着每次模板更改时,我们都需要为word文件更新我们的*.docx模板,同时及时更新呈现我们的 pdf 的 iTextSharp 代码。

我们看错了吗? 我们应该按什么顺序生成这些文件,以便 - 最小化模板更改时的工作 - 服务器上没有安装任何办公程序

最好的问候 桑德·豪特基尔

【问题讨论】:

标签: asp.net-mvc-3 pdf-generation


【解决方案1】:

由于我们仍未找到完全满足我们需要的免费库,因此我们正在认真考虑在 Aspose.Words 上购买许可证,它可以轻松满足我们的需求。

至少这是评估向我们展示的......

许多建议的库在某种程度上可以使用我们需要的数据生成 pdf,但不是我们想要的样式,我们需要一个系统,其中我们有模板 pdf 文件,填充一些参数,其中 1 个参数在自己的表中列出产品列表,并在产品上包含几行数据,并且上述库都没有对此提供足够的支持,要么每个表都在自己的页面上,要么表的样式需要通过生成 pdf 的源代码创建,虽然我们有不同的模板,但为每个模板的每种不同样式创建代码将是地狱。

所以对 aspose 的免费替代品的探索仍在继续,但现在我将关闭这个,因为我们找到了一个可以满足我们需求的库。 (如果我查看 aspose.words 的价格,我只能假设他们知道他们是唯一提供这些功能的:P)

【讨论】:

  • 您还可以查看video tutorial,了解如何快速将 Aspose.Words for .NET 与 ASP.NET MVC 集成。如果您在开发过程中需要任何进一步的帮助,您可以contact our support team。披露:我在 Aspose 担任开发人员布道师。
【解决方案2】:

我将首先使用OpenXml SDK,它允许您以编程方式创建和操作办公文档。

它不需要您在服务器上安装或许可 Microsoft Office,只需一个 DLL,如果您愿意,可以与应用程序的其余部分一起进行 bin 部署。

我没有玩过动态 PDF 生成(除了好的旧 GhostScript 之外),所以我无法提供任何建议。

【讨论】:

  • openXml SDK 是我们用于生成 docx 的工具,它可以完美运行并且符合预期,我们现在唯一关心的是如何以尽可能少的步骤获取 PDF,从零开始使用 itextsharp比找到一个从我们的 docx 到 pdf 的库更难,但后者(我们找到了这个 BioPdf)需要在服务器上使用 office,这根本不是一个选择。
  • 好吧,这很有道理...这些 PDF 程序中的大多数工作方式与 GhostScript 相同:在预览中打开文档并使用通用 postscript 驱动程序打印,然后从后记。因此,您需要 MS Office 作为预览文档的一种方式。我相信 itext 方法通过从头开始创建文档来解决这个问题。
  • true,使用 itextsharp 我们可以从头开始创建 pdf,而无需在服务器上使用办公室。我只希望有一个类似的系统,比如 itextsharp,它可以与现有的 docx 文件或类似的模板系统一起使用。因为在使用 openXml SDK 创建 docx 之后,为了呈现它的 pdf 而重新创建整个文件似乎很奇怪。如果这是唯一的选择,我们将使用 itextsharp 重新创建它
【解决方案3】:

你可以试试PDFSharp y MigraDoc

似乎相同的代码可以在 PDF、打印机或屏幕中绘制......并且 MigraDoc 可以呈现为 RTF。

我已计划将此与我的项目集成,但我自己没有尝试,也许它适合您的项目。

【讨论】: