Sunday, 21 May 2006

Microsoft Office Document Image Writer Options

在Microsoft Office 2003中包含了Microsoft Office Document Image Writer,一个虚拟的打印机,可以将打印结果保存到文件(MDI, Microsoft Office Document Imaging, 也简称MODI)中。个人猜测,是微软企图打击PDF格式文件的一个工具。

MODI Writer和Office其它工具在一起,还是比较好用的。特别是对一些大的、一次性产生而又不再修改的文档,保留原始文件太占空间,用MDI就很方便,打开或打印的速度也比较快。一旦“打印”,输出到文件之后,会在MODI中将输出的结果显示出来。

对话框中有选项,可以选不显示,但缺省是是要显示的。通常情况下,这个缺省设置是无所谓的。不过近日,当我用VBA大批量输出MDI文件的时候,批量输出的MDI文件,统统被打开、并显示出来了。这就令人比较头疼。VBA也没有提供关闭此选项的功能。

最后的解决办法是,修改注册表。似乎微软的东西,大部分的设置都是在注册表里。MODI Writer选项的具体位置在:[HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\MODI\MDI writer],修改“OpenInMODI”的值为0。

6 Comments:

At 14 August, 2006 17:07, Anonymous Anonymous said...

但是如果MODI的version是12.0..请问该如何解决呢..我发现OpenInMODI那个key不起作用了

 
At 24 August, 2006 21:16, Blogger OneZ said...

那个key的使用,是有些限制的。你必须用本地用户登陆,修改key's value才有效。如果是网络域名下的用户,没有用。

 
At 30 November, 2006 00:43, Anonymous Honson said...

最近刚接触到这个虚拟打印机,有个问题想请教一下,你是如何用VBA大批量输出MDI文件的?可以指点一下吗?我的邮箱:ivin_he@hotmail.com

 
At 01 December, 2006 12:35, Blogger OneZ said...

在我的应用中,是用Publisher结合Access,产生针对不同客户的文件。Publisher文件本身只是一个模板或底稿,主要的数据项从Access Database中提取,VBA动态产生相应的页面。这之后,VBA再将产生的页面打印输出到MDI文件中。然后,删除旧页面,产生下一个新页面,如此循环。这个过程,就是循环取数据、循环产生页面、循环输出页面。

 
At 10 December, 2006 18:02, Anonymous choc said...

我想使用程序控制来输出的文件的名称,现在每次一打印就跳出个对话框要指定文件名,请问怎么解决?

 
At 13 December, 2006 12:15, Blogger OneZ said...

在ActiveDocument的PrintOut命令中,指定PrintToFile参数。

 

Post a Comment

<< Home