6

我想使用 .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;
        }
    }
4

2 回答 2

10
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();
于 2010-11-22T23:36:51.720 回答
1

您正在对默认打印机成功测试什么文件格式?

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

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

于 2010-06-29T06:15:29.967 回答