【问题标题】:Opening document from a stream从流中打开文档
【发布时间】:2017-08-22 21:00:12
【问题描述】:

有没有办法从流、内存文件或独立存储中打开演示文稿?

我有一个想要在 PowerPoint 中打开的演示文件,但不想让用户访问该文件本身。不幸的是,PowerPoint 的 Presentations.Open() 函数(以及所有其他 Office 应用程序的 Open())只接受路径参数,这意味着我必须将文件保存在磁盘上的某个位置,然后在 PowerPoint 中打开它,这样用户就可以访问文件。

有人在任何 Office 应用程序中这样做过吗?

【问题讨论】:

  • 从 URL(不向用户公开的 URL)打开文件是否足够?这仍然会在用户的 HDD 上留下一个临时文件,至少在演示文稿打开的时间长度内,可能更长,因此可能是不可接受的。
  • @SteveRindsberg:是的,该临时文件是不可接受的。 Office 应用程序始终在 Office 后台(信息选项卡)中显示文档的路径,因此知道它的位置非常简单。

标签: stream vsto powerpoint isolatedstorage


【解决方案1】:

您可以使用 OpenXML SDK 来open documents from a stream,但不能从 Office 应用程序中使用。

但是,如果您有足够的动力,您可以在文件关闭后将其删除。这很简单,您只需要创建一个单独的进程并等待文件不再被锁定以进行写入。或者,如果您知道它何时关闭(例如,如果您在代码中关闭),您可能不需要单独的流程。

【讨论】:

  • 但当文件在应用程序中打开时,Office 应用程序将始终显示其路径,从而便于复制。
  • 你是对的。你不能阻止他们复制它。如果您打开的 powerpoint 是 VSTO 模板/文档,您可以设置一些文档属性或变量,以使文档在未以批准的方式打开时自动关闭,但也有解决此问题的方法。真的没有办法完全控制它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-12
  • 1970-01-01
  • 1970-01-01
  • 2010-12-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多