【问题标题】:Word 2010 becomes very slow with many content controls - alternative?带有许多内容控件的 Word 2010 变得非常缓慢 - 替代方案?
【发布时间】:2012-03-14 00:51:53
【问题描述】:

在 C# VSTO 插件项目中,我们将内容控件添加到 Word 文档以跟踪文档结构。我们使用内容控件能够嵌套文档的不同元素。嵌套基本上就像一本书,在不同的层次上有不同的元素:章节、子章节、段落。 我们需要保留此结构,以便能够将其导出为特定的 XML 格式,以便针对 XSD 进行验证,从而验证文档的结构。

除了我们必须处理一个大文档,我们需要许多内容控件之外,所有内容都可以正常工作。我说的是 2000 多个内容控件,所以我意识到 Word 需要处理的内容很多。在这种情况下,Word 会变得非常慢,例如,一直向下滚动到文档底部需要一段时间,而 Word 会说它正在重新分页并执行拼写检查。有时 Word 甚至会在打开此类文档时崩溃。

我已经尝试从文档中删除撤消信息,因为我在某个地方读到了可能会降低带有非常大文档的 Word 的速度。在那之后文档大小确实缩小了一点,但性能问题仍然存在。我还能做些什么来加快这一速度,或者当需要这个数量(即 > 500 个内容控件)时,内容控件是不行的吗?

如果内容控件是不可行的情况,是否有任何替代方法来跟踪文档的结构?我尝试过使用样式,但是这样会丢失文档各个元素的嵌套信息,因此解析变得更加困难。我也尝试在每个分组元素的开头放置书签,但我注意到在键入时可以删除书签。

欢迎任何想法、提示和技巧。提前致谢!

鲁本。

【问题讨论】:

    标签: c# ms-word vsto openxml-sdk word-contentcontrol


    【解决方案1】:

    尝试使用http://docx.codeplex.com/,那么您甚至不必安装 MS Word。

    【讨论】:

    • 感谢米卡的建议。问题是用户将使用 Word 2010 来编辑文档。该插件向 Word 添加了一个带有一些按钮的功能区,它们可以用来插入新的章节、子章节或段落。问题不在于 Word 文档本身的生成,而更多的是(看起来像是)我们为此使用的内容控件数量的限制。
    【解决方案2】:

    如果您不使用内容控件的标记属性,您是否看起来使用了合并字段?根据您使用内容控件处理文档的方式,它可以为您提供相同的功能和更好的性能。合并字段需要更少的内存空间,并且比内容控件填充得更快。

    【讨论】:

    • 谢谢。这实际上是个好主意。不过,我已经设法通过使用更少的内容控件来绕过限制。我最终只对容器元素使用内容控件,而对文本元素只使用具有特定样式的普通段落。这大大减少了内容控件的数量,Word 不再有任何问题。
    猜你喜欢
    • 1970-01-01
    • 2017-07-04
    • 2021-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多