【发布时间】:2015-06-17 14:12:22
【问题描述】:
我必须以只读模式打开 Word 文档以实现自动化。然后,我必须从该文档中删除某些页面,这些页面涉及用户在程序用户界面中所做的一些配置。
操作确实适用于页脚和页眉,但此特定代码不起作用。它因错误而中断 System.Runtime.InteropServices.COMException (0x800A11FD): This method or property is not available because this command is not available for reading. 执行此代码时:
int num = objWordDoc.ComputeStatistics(stat, ref missing);
int[] a = { 1,3,5};
for (int i = 0; i < a.Length; i++)
{
object page_num = a[i];
objWordDoc.Application.Selection.GoTo(Word.WdGoToItem.wdGoToPage,
Word.WdGoToDirection.wdGoToAbsolute, num, page_num);
objWordDoc.Application.Selection.Bookmarks[@"\Page"].Select();
objWordDoc.Application.Selection.Delete();
}
在调用 Selection.Goto 的行中。此代码取自How to delete pages in a word document dynamically。
当用户遵循http://myitforum.com/myitforumwp/2013/06/10/disable-reading-mode-and-protected-view-in-word-2013/ 中描述的过程时,使用文档确实有效。主要是必须禁用一个设置: 禁用阅读视图。转到文件 - 选项 - 常规。取消选中“在阅读视图中打开电子邮件附件和其他不可编辑的文件”
这似乎只对 Word 2013 是必需的,因为 Word 2010 可以正常工作。是否可以通过编程方式强制编辑模式而无需让用户定义这些设置?
--- 更新 ---
使用这种方法的原因:
- 如果多个程序尝试访问同一个文档,则必须以只读模式打开 Office 文档。否则 word 会出现一个消息框,试图澄清谁是允许编辑文档的人。
- 实际上这个过程在 Word 2010 中运行良好
- 以只读模式打开并不意味着文档的编辑被锁定,这确实意味着文档必须以不同的名称/位置保存,而完全可以进行编辑。 Word 2013 似乎改变了这种行为。
【问题讨论】:
-
您似乎从一个矛盾开始 - 打开只读然后删除一些页面?你想在大局中完成什么?
-
好点,感谢提示,我更新了问题。