打印任何文件类型

时间:2012-11-09 19:36:30

标签: c# windows printing

我正在创建一项服务,该服务将监视特定文件夹并打印放在此文件夹中的任何文件。我对可以发送到要打印的文件夹的各种文件类型有困难。

我的第一次尝试是使用Microsoft Office文件。我要做的是启动办公室打印文件。它更像是一个捕获,我实际上并没有使用库或类似的东西。

到目前为止,这种方法仍然有效,但是当没有Office应用程序在计算机上启动时,Office会询问用户姓名缩写。因此,在这种情况下,我的应用程序将无法正常工作,因为我是以编程方式执行此操作。

        ProcessStartInfo info = new ProcessStartInfo(myDocumentsPath);
        info.Verb = "Print";
        info.CreateNoWindow = true;
        info.WindowStyle = ProcessWindowStyle.Hidden;
        Process.Start(info);

目前我正在尝试使用Microsoft Office文件,但我也会对其他类型应用相同的方法。

无论如何,要解决第一次Office运行所需的缩写?

或者更好地解决我的问题?

提前感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

你真的没有什么可以做的;对于将打印您要支持的每种类型文件的应用程序,您需要确保正确配置应用程序。

这意味着对于office(因为它作为进程外COM服务器运行),您应该在执行打印的帐户下运行它,这样您就可以输入首字母,并且不会在提示时输入服务器尝试打印它。

对于每个其他应用程序都是一样的(假设执行应用程序以打印它),它需要作为流程运行并正确配置的帐户运行。

答案 1 :(得分:0)

使用Winternals的regmon注册表活动监视器来确定Office将首字母存储在Windows注册表中的位置,然后在打印之前写入这些键。