【问题标题】:How to Print any document in a SELECTED printer如何在选定的打印机中打印任何文档
【发布时间】:2010-06-29 05:54:18
【问题描述】:

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

【问题讨论】:

    标签: c# .net printing shellexecute


    【解决方案1】:
    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();
    

    【讨论】:

      【解决方案2】:

      您在默认打印机上测试成功的文件格式是什么?

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

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

      【讨论】:

      • 我正在使用 PDFword 和 excel 文件进行测试。您是正确的,任何文件都无法打印,但如果安装了该文件的软件,则无需指定文件类型即可打印。它是仅由 Windows 处理。
      • 如题所示,打印文件的问题已经解决了,只剩下指定打印机的问题了。
      • 嗨,好的,不是如何指定特定打印机,但可能值得研究如何在打印前更改默认打印机?
      猜你喜欢
      • 1970-01-01
      • 2016-10-09
      • 1970-01-01
      • 2011-11-03
      • 2020-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多