【问题标题】:Set the active document in word to readonly将word中的活动文档设置为只读
【发布时间】:2013-10-10 00:01:30
【问题描述】:

我正在使用 Microsoft.Office.Interop.Word 来操作文档,例如基于模板创建新文档。

我遇到的唯一问题是将 Word 中的活动文档设置为只读。请记住,我打开一个基于模板的新文档,用必要的信息填写一些字段,然后需要将此文档以只读方式显示给用户。该文档仍在内存中(没有路径)。

库有一个只读属性,但它是只读的(哦,讽刺的是......)。有人有什么建议可以帮助我吗?

【问题讨论】:

  • 创建文档并填写必要字段后,保存它。然后以只读方式重新打开并显示给用户。
  • @ChrisLively 我尝试了该解决方案并且它有效,但我希望在不使用此方法的情况下实现某些东西。更有活力的东西。
  • 除非 word 可以“打开”一个已经在内存中的文档,否则真的没有其他方法了。

标签: c# ms-word


【解决方案1】:

Read-onlyDocument 的定义特征之一,因此必须在创建Document 时设置(添加到Application)。示例代码:

bool readOnly = true;
Object templatePath = @"Path";
Object oMissing = System.Reflection.Missing.Value;
Word.Application wordApp = new Word.Application();
Word.Document wordDoc = wordApp.Documents.Open(templatePath, oMissing, readOnly, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing);

【讨论】:

  • 我知道我可以这样做,但我希望在打开文档时设置此属性。我认为必须有其他方法来防止用户在不保存文档的情况下编辑文档,然后重新打开。
  • @Albert 正如所说,没有其他办法。您可以打算提出一种自定义方法,避免写入信息(例如,自动删除),但实施可能会变得困难,最终性能很少会足够好。具有讽刺意味的是,ReadOnly 属性是只读的(正如您正确指出的那样),因此您在这方面无能为力。无论如何,我不认为应该有任何问题:当执行从可编辑到只读的转换时,用户会期望一个(短)等待期。
  • 好吧,很公平。如果唯一的方法是创建一个更自定义的方法,我不希望花更多的时间在这上面,我只是认为我错过了一些东西。不过谢谢我的好先生。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多