如何让Windows打印文档?

时间:2009-10-08 13:34:10

标签: c# .net c++ windows winapi

我想(以编程方式)打印各种类型的文档,要求Windows执行此操作(使用默认的关联应用程序)。我该怎么做(在.NET或C ++ / Win32 API中)?

例如,如果我在机器上安装了MS Office和Acrobat Reader,则应使用Acrobat Reader打印PDF文件,并且应使用MS Word打印DOC文件。但是,如果我没有安装MS Office,则应使用Wordpad或OpenOffice.org Writer打印DOC文件(如果安装了后者),或者当前任何应用程序是该类型文件的默认关联。

3 个答案:

答案 0 :(得分:6)

尝试使用ShellExecute功能。

例如,在C:

 ShellExecute(my_window_handle, "print", path_to_file, NULL, NULL, SW_SHOW);

答案 1 :(得分:5)

致电ShellExecute。对lpOperation参数使用“print”。

答案 2 :(得分:4)

以下是C#的一些代码:

    public void ShellExecute(string filename, string verb)
    {
        System.Diagnostics.ProcessStartInfo si = new System.Diagnostics.ProcessStartInfo();
        si.UseShellExecute = true;
        si.FileName = filename;
        si.Verb = verb;
        System.Diagnostics.Process.Start(si);
    }