如何在SELECTED打印机中打印任何文档

时间:2010-06-29 05:54:18

标签: c# .net printing shellexecute

我想使用.net在选定的打印机中打印任何文档,如pdf,word,excel或文本文件。我已成功在默认打印机中进行此类打印。现在唯一的问题是打印在选定的打印机。

以下是打印的代码。

public bool Print(string FilePath)
    {
        if (File.Exists(FilePath)) {
            if (ShellExecute((System.IntPtr )1, "Print", FilePath, "", Directory.GetDirectoryRoot(FilePath), SW_SHOWNORMAL).ToInt32() <= 32) {
                return false;
            } else {
                return true;
            }
        } else {
            return false;
        }
    }

2 个答案:

答案 0 :(得分:9)

Process printJob = new Process();
printJob.StartInfo.FileName = path;
printJob.StartInfo.UseShellExecute = true;
printJob.StartInfo.Verb = "printto";
printJob.StartInfo.CreateNoWindow = true;
printJob.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
printJob.StartInfo.Arguments = "\"" + printerAddress + "\"" + " " + printerExtraParameters;
printJob.StartInfo.WorkingDirectory = Path.GetDirectoryName(path);
printJob.Start();

答案 1 :(得分:1)

您在默认打印机上成功测试了哪种文件格式?

不可能只将“任何”文档发送到打印机,通常特定的文件格式需要由可以读取文件格式的应用程序解释,然后将其呈现给打印机或可以由打印机。

在大多数情况下,如果您可以渲染到PostScript或PDF,则可以使用单个解释器进行打印。