2

如何在 C# 中打印文本文件?在控制台应用程序中。

这就是我发现的:msdn 示例,这个stackoverflow:answer 是 msdn 示例

链接中的代码适用于 Windows 窗体应用程序,在控制台应用程序中不起作用。

这是我发现的:

    string fileName = @"C:\data\stuff.txt";
        ProcessStartInfo startInfo;
        startInfo = new ProcessStartInfo(fileName);

        if (File.Exists(fileName))
        {
            int i = 0;
            foreach (String verb in startInfo.Verbs)
            {
                // Display the possible verbs.
                Console.WriteLine("  {0}. {1}", i.ToString(), verb);
                i++;
            }
        }

        startInfo.Verb = "print";
        Process.Start(startInfo);

既然你说这个问题是题外话并且不相关,这里是我想要学习的链接:这是.Net框架的文档,这就是我问这个问题的原因,我正在尝试了解.Net 类的各种用途。

4

1 回答 1

12

您可以使用 PRINT 动词使用ProcessProcessStartInfo类将文件打印到默认打印机:

System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo(@"C:\temp\output.txt");
psi.Verb = "PRINT";

Process.Start(psi);

如果要在继续之前确保文件已发送到打印机,请使用Process.WaitForExit(). 例如,可能需要防止在打印之前删除该文件:

static void PrintText( string text )
{   string           filegen, filetxt;
    ProcessStartInfo psi;
    Process          proc;

    filegen = Path.GetTempFileName();
    filetxt = filegen + ".txt";
    File.Move( filegen, filetxt );
    File.AppendAllText( filetxt, text  );

    psi = new ProcessStartInfo( filetxt );
    psi.Verb = "PRINT";
    proc = Process.Start( psi );
    proc.WaitForExit();
    File.Delete( filetxt );
}
于 2013-11-07T15:49:09.623 回答