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

Thu*_*der 6 .net c# 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;
        }
    }
Run Code Online (Sandbox Code Playgroud)

小智 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();
Run Code Online (Sandbox Code Playgroud)


Mar*_*man 1

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

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

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