【发布时间】:2016-09-30 05:10:18
【问题描述】:
已经阅读了一些变体,但没有一个能完全解决我遇到的问题。
我是数据迁移团队的一员,我们的任务之一是将现有文档从一个环境迁移到另一个环境,并且在迁移后维护其中的所有现有超链接。
对于相对较新的文档(Office 2007+),这没问题。我看过 Cathal Coffey 的 DocX; NPOI 显然不稳定且不推荐使用 - 或者至少是我需要的部分; GemBox 和其他人,虽然它们非常适合较新的文档,但它们都不能处理 Word '97 中的打开/修改文档。幸好在 Win 3.1 或 Word for Windows 2 下创建的文档超出了范围。
我意识到这些文档非常陈旧并且不再受支持,因此可能会带来安全风险,我还意识到它们应该由各自的团队维护和更新,但无论出于何种原因,他们都没有从来没有,现在我的工作就是想办法做到这一点。
使用我可用的最旧版本的 COM 对象(Microsoft Office 14.0 对象库,版本 8.5.0.0)我在更改信任设置、注册表更改等方面遇到了问题。这样做会导致其自身的问题例如,当我需要对其进行更改时,必须以保护模式打开文档,此外,当它被部署时,我将无法访问信任中心或注册表。检查内存中的文档会显示超链接集合,但不会像在 DocX 中那样让我看到详细信息。
有没有办法做到这一点,还是我要回去说这些文档太旧、不受支持,相关团队需要更好地维护他们的文档?考虑过可能尝试以 HTML 格式读取文档,然后检查任何 href 标签,想法?我可以使用旧版本的 Microsft DLL,即使可以,它们是否与 VS 2015 兼容?第三方库是一个选项(Gem、DocX 等),但像 Aspose Documents 这样的东西是不可能的,因为许可证是 1000 美元。
很高兴拥有 - 无需安装 Office 即可工作的东西将是真正的梦想。
谢谢大家。
【问题讨论】:
-
是否可以选择将二进制格式 (.doc) 转换为 Open XML (.docx)?那么请看这里:stackoverflow.com/a/2405508/40347
-
@DirkVollmar 在这一点上,任何事情都是一种选择。会调查的,谢谢你的回复。