我正在使用C#和Microsoft.Office.Interop.Word执行以下操作
如果使用此方法打开文档,FileName是文件名,AddToRecentFiles为false,其他所有内容都是Missing.Value
Document Open(
[In] ref object FileName,
[In, Optional] ref object ConfirmConversions,
[In, Optional] ref object ReadOnly,
[In, Optional] ref object AddToRecentFiles,
[In, Optional] ref object PasswordDocument,
[In, Optional] ref object PasswordTemplate,
[In, Optional] ref object Revert,
[In, Optional] ref object WritePasswordDocument,
[In, Optional] ref object WritePasswordTemplate,
[In, Optional] ref object Format,
[In, Optional] ref object Encoding,
[In, Optional] ref object Visible,
[In, Optional] ref object OpenAndRepair,
[In, Optional] ref object DocumentDirection,
[In, Optional] ref object NoEncodingDialog,
[In, Optional] ref object XMLTransform
);
我遇到的问题是我希望处理是静默的,也就是说我不想向用户显示应用程序。这可以通过让Visible变为虚假来轻松完成。
但是,如果我将Visible设置为false,更新,保存并关闭文档,那么下次打开文档时,它将以草稿模式打开。我不希望在更新文档时更改视图模式。如果我的程序在处理之前我的文档处于打印布局模式,我希望它在下次打开时保持打印布局模式。
我现在在哪里,我有两个选择:
使用visible = true打开文档并保持查看模式
使用visible = false打开文档,并始终将视图模式设置为Draft。
有没有人有我的第三选择,这个选项让我更新文档的内容而不向用户显示单词应用程序?
答案 0 :(得分:4)
您可以从代码切换回打印版面视图:
using Word = Microsoft.Office.Interop.Word;
// Option 1: via Application object
Word.Application app = new Word.Application();
app.ActiveWindow.ActivePane.View.Type = Word.WdViewType.wdPrintView;
// Option 2: via Document object
Word.Document doc;
object objOne = 1;
doc.Windows.get_Item(ref objOne).View.Type = Word.WdViewType.wdPrintView;
VBA等价物:
ActiveDocument.Windows(1).View = wdPrintView
最佳做法是备份原始视图,然后在完成自动化任务后将其恢复。
您没有显示您的代码,因此我们无法知道您确实做了哪些修改。但是,某些自动化任务(如修改页眉/页脚)可能需要某个视图。
答案 1 :(得分:1)
还有一些人参与了这些参数,事实证明使用了这些参数
Visible=Missing.Value
代替true
或false
将允许我以静默方式处理文档,并且不会更改视图类型。