如何使用c#删除Word文档中的“只读推荐”选项?

我正在与Word交互的应用程序中工作。 我们在数据库中导入文档,然后允许用户使用Microsoft Word通过NetOffice.WordApi修改这些文档。

当文档标记为只读时,我们遇到了一些问题,每次打开时,我们都会得到一个“另存为”文字对话框,让您可以select创build文档的临时副本,以便在文档中进行更改。

我的问题如下:如何删除文件的只读文字标记并重新保存没有标记的文件? 我可以按照下面的链接中的说明手动删除选项,但我想通过代码自动完成该过程。

作者希望您以只读方式打开它

**请在回答之前通知以下内容:它不是windows级别文件中的只读属性,它不是Windows授权的问题。 文件属性不是只读属性位于word文档中。 所以,通过代码改变windows文件permision属性是行不通的,实际上这些文件在windows中检查文件属性时不是只读的,它是一个字属性,这意味着作者在保存文件时将其标记为只读并会阻止你使用word来修改文件(文件可以使用不同的软件进行更改,它只能读取文字)。 请不要给我链接有关如何更改在Windows中的权限,而不是这种情况下,检查链接的更多信息。 **

非常感谢您的时间。

您要设置的选项是Word文档的Document.ReadOnlyRecommended属性。

当您打开一个Word文档时,您可以使用Document.Open方法中的第三个参数实际设置ReadOnly属性。 但是,该参数不会覆盖已保存文档上的只读建议设置。 因此,如果您的文档使用只读推荐选项进行保存,则在调用Document.Open时将以只读方式打开。

所以我认为你有两个选择:

选项1

Document.ReadOnlyRecommended 首次保存前,将Document.ReadOnlyRecommended设置为false,与此类似

 objDoc.ReadOnlyRecommended = false; 

选项2

如果文档已被设置为只读建议,则需要使用Document.SaveAs2方法将文档保存为Document.ReadOnlyRecommended属性设置为false的新文件。

您的代码可能如下所示:

  object missing = System.Reflection.Missing.Value; object readOnly = false; object fileName = @"C:\User\MyFile.docx"; object newFileName = @"C:\User\MyNewFile.docx"; var objApp = new Application(); var objDoc = objApp.Documents.Open(ref fileName, ref missing, ref readOnly); if (objDoc.ReadOnlyRecommended) { objDoc.SaveAs2(ref newFileName, ref missing, ref missing, ref missing, ref missing, ref missing, ref readOnly); } objDoc.Close(); objApp.Quit();