【问题标题】:How to add header and footer using Microsoft.Office.Interop如何使用 Microsoft.Office.Interop 添加页眉和页脚
【发布时间】:2018-05-23 05:32:30
【问题描述】:

我想添加一个具有 html 标记的字符串作为使用 Microsoft.Office.Interop.Word 动态生成的 word 文档的标题。我要添加的字符串如下所示

"<div style=\"display:block;max-width:750px; margin:0 auto; \"> <img src = \"logo-header.jpg\" style= \"max-width:100%;\" /></div><p></p>"

我能够使用 aspose 实现这一点。但由于预算问题,我不想使用 aspose。这可以使用office.interop.word 吗?

【问题讨论】:

  • 我能问一下您为什么使用 Microsoft.Office.Interop 吗?我正在研究与 word 文档生成有关的 POC。我正在使用openXML 和exceed DOCX。似乎拥有我需要的所有功能。我建议查看这些库。(免费)我问的主要原因是,将运行代码的服务器/机器将需要安装 word。请记住这一点;-)
  • 是否可以使用 openXML 共享代码 sn-ps? @TCP
  • 请问为什么需要插入 HTML?根据您的 HTML 字符串,您正在添加图像。我正在使用 DOCX 插入我的图像。查看代码示例here
  • 抱歉链接错误见here
  • 不可能将 HTML 直接插入 Word 文档,并以 Word 格式输出。 HTML 不是“本机”Word 格式。如果将其放在剪贴板上,则可以使用粘贴方法通过互操作将其作为 Word 内容插入。否则,您需要在已关闭的文件上使用 OOXML 文件格式,或者使用 Interop 和 InsertXML 方法。或者您可以将图像保存为文件,然后使用 Interop 的 InlineShapes,AddPicture 方法将其插入。

标签: c# asp.net ms-word office-interop


【解决方案1】:

Considerations for server-side Automation of Office 文章说如下:

Microsoft 目前不推荐也不支持任何无人值守、非交互式客户端应用程序或组件(包括 ASP、ASP.NET、DCOM 和 NT 服务)的 Microsoft Office 应用程序自动化,因为 Office 可能表现出不稳定Office 在此环境中运行时的行为和/或死锁。

如果您要构建在服务器端上下文中运行的解决方案,您应该尝试使用已确保无人值守执行安全的组件。或者,您应该尝试找到允许至少部分代码在客户端运行的替代方案。如果您使用服务器端解决方案中的 Office 应用程序,该应用程序将缺少许多成功运行所需的功能。此外,您将在整体解决方案的稳定性方面承担风险。

您可以考虑使用Open XML SDK 或任何为服务器端执行而设计的第三方组件(例如,Aspose)。

【讨论】:

  • 我使用 Open Xml 实现了相同的功能。在打开的 XML 中,如何使用打开的 xml 在标头中插入 html 字符串?
猜你喜欢
  • 2011-11-27
  • 2010-12-03
  • 2013-10-24
  • 2013-09-05
  • 1970-01-01
  • 2013-09-30
  • 2012-12-18
  • 2020-01-02
  • 1970-01-01
相关资源
最近更新 更多