【问题标题】:Razor View To Word Document or PDFRazor 查看到 Word 文档或 PDF
【发布时间】:2011-09-14 16:48:50
【问题描述】:

如何在 ASP.NET MVC 3 中使用剃刀视图(用于确定其布局方式)生成 Word 文档或 PDF?可能通过使用 OpenXML SDK(用于 WordprocessingML)或 iTextSharp(用于 PDF)之类的东西。我想让那些知道 HTML 的人能够更改生成的 Word 文档或 PDF 的外观,而无需编写任何 C# 代码。

【问题讨论】:

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


    【解决方案1】:

    我有一个类似的question,最终使用了http://code.google.com/p/wkhtmltopdf/

    它从 HTML 生成 PDF(您可以使用通常的 Razor 视图进行渲染)。结果是非常好。您可能需要将视图渲染到内存字符串中,请参阅here

    对于doc,您可以在发送HTML时指定内容类型为Microsoft Word,Word将接受并转换它。例如。见here

    如果您希望用户更改最终文档,您可以呈现您的视图并为生成的 HTML 设置 contenteditable。例如

     <div contenteditable>GENERATED HTML</div>
    

    或者使用TinyMCE 之类的东西。然后,当用户回传此 HTML 时,您使用它传递给 wkhtmlpdf 并获得 PDF。

    【讨论】:

    • 我之前已经用 Word 完成了 HTML 技巧(这真的有点小技巧),但更希望它生成一个真正的 Word 文档。也不能保证它在未来或与其他打开 Word 文档的应用程序(例如 LibreOffice)一起工作
    【解决方案2】:

    我刚刚在我的项目中实现了Rotavia。开始工作大约需要 5 分钟。

    【讨论】:

      【解决方案3】:

      这个问题现在有点老了,但为了以后的访问者,我写了一篇关于如何将常规 MVC 视图返回为 Word 文档的博客文章。

      http://benjii.me/2014/01/download-an-asp-net-mvc-view-as-a-word-document/

      此功能的核心部分来自我创建的 WordDocumentAttribute 操作过滤器:https://gist.github.com/bjcull/8702230

      【讨论】:

      • 您好 Ben,我关注了您的博客,下载的 html 内容运行良好,但它没有获得我提供给视图的模型信息。我可以将模型信息(如@Html.DisplayFor(m=>m.FirstName))添加到下载的页面中吗?或者此方法仅在View中有html标签时有效?
      • 我传递了我在控制器中创建的视图模型,并传递了视图,它工作得很好!。感谢您的博客!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多