自定义客户端应用程序-需要控制文档保存的位置



ok SO。我需要一些指导。我很抱歉这篇文章太长了,但我需要提供一些细节:

我有一个对我感兴趣的人为他们做一个小项目。总的来说,该应用程序是一个相当简单的员工记录保存/文档应用程序,但它大量使用模板化的Word和Lotus文档。其思想是,您选择员工"事件",例如表彰、晋升、纪律等,然后它加载适当的模板文档,您从那里填写,然后您可以选择员工,查看所有"事件",并查看与每个事件相关的单个文档。

因此,应用程序必须知道当用户完成时。docs保存在哪里。

客户端实际上有这个应用程序的v1(它不做任何文件管理或任何事情,只是启动Word/Lotus与您想要在一个新的实例中查看的文档,可能是通过system()调用。)我们还没有进入详细的需求阶段,但客户端和我都同意,对于这个真的工作,某种控制用户保存。doc的位置将是至关重要的,因为否则应用程序提供给他们新的模板文档副本,他们"另存为"其他地方,应用程序指向它提供给他们的空白副本。

显然,我想不出一种通过启动一个新的Word实例来实现"另存为"限制/控制的方法。当您选择一个模板文档时,客户端有在应用程序中嵌入Word/Lotus实例的想法,但我对此没有什么保留意见:

  • 我在网上挖了一下,我读到无论我借的是哪个版本的Word,都是MSWORD。来自的OLB将是最终用户需要的?
  • 我已经尝试从这里做嵌入Word文档的MSDN示例,但是当我已经习惯时,MSDN示例甚至无法编译。
  • 即使我能弄清楚如何嵌入一个。doc文件到他们的应用程序,我不知道我可以控制使用"另存为…"
  • 所有这些仍然没有触及Lotus (!)

所以……本能地,我觉得嵌入Word/Lotus的东西最终会比它的价值付出更多的工作。

所以我有一些其他的想法酝酿。

  1. 一个正在研究如何使用Office XML(如果有类似的lotus),分别获取用户的"输入",并每次动态地生成文档。我不是特别喜欢这个想法,但我认为它可以工作,只要我只是使用旧的功能,尽量保持向后兼容。
  2. 分别获取用户的"输入"并生成HTML文档。咩。作品,非常跨平台和容易解析和理解,但不是很好,如果你想能够通过电子邮件给别人(谁电子邮件。html?工作,是的,非常非常规,这对普通用户来说会把他们抛弃),更糟糕的是,如果你需要把它发邮件给别人修改…
  3. 也许是某种可编辑的PDF?我知道市面上有很多PDF库,我对它们研究得越多,就越觉得这个听起来像是最好的选择,尽管我没有做过很多PDF方面的工作,我不知道它们有多容易嵌入,也不知道在创建它们时有什么选择。我知道他们可能会被拯救,我以前就有过这样的经历。

我这里需要一些输入。以下是TLDR问题:

  1. 是否为每个。doc启动一个新的Word实例,就像我感觉的那样糟糕,给定用户可以在任何地方"另存为"文档,然后应用程序指向空白文档?
  2. 是否试图支持嵌入式Word作为一个大麻烦,因为我觉得它是/比它的价值更多的工作/可能导致支持多个版本的Word的问题?(向前兼容以及当前发布的版本?)
  3. 对PDF计划有什么想法?
  4. 还有其他好主意吗?

Word允许通过其对象模型编程一些"保存"one_answers"另存为"控件。任何用VBA编码并放入Word模板中的子程序都将被复制到从该模板生成的所有文档中。此外,大多数菜单和Ribbon命令可以通过创建包含以被截获命令命名的子例程的模块来截获。因此,例如,如果模块包含名为FileSaveAs()的子模块,则将执行该子模块中的任何代码,而不是执行标准的File|Save As命令。最后,这段代码将取代通过击键、工具栏、菜单或功能区执行的另存为命令。

当执行"保存"或"另存为"命令时,下面的代码将启动一个对话框到预定路径:

Sub FileSave()
ControlSaveLocation
End Sub
Sub FileSaveAs()
ControlSaveLocation
End Sub
Sub ControlSaveLocation()
Dim Directory As String
Directory = "C:Documents"
With Application.Dialogs(wdDialogFileSaveAs)
    .Name = Directory
    .Show
End With
End Sub

最新更新