2010-06-29 135 views
5

我想使用.net打印選定打印機中的任何文檔,例如pdf,word,excel或文本文件。我已成功在默認打印機中執行此類打印。現在唯一的問題是在選定的打印機中打印。如何在SELECTED打印機中打印任何文檔

這裏是打印的代碼。

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; 
     } 
    } 

回答

0

什麼文件格式測試成功與默認打印機?

無法將「任何」文檔發送到打印機,通常特定的文件格式需要由可以讀取文件格式的應用程序解釋,然後將其呈現給打印機或可以被解釋的文件打印機。

在大多數情況下,如果您可以渲染到PostScript或PDF,則可以使用單個解釋器進行打印。

+0

我與PDFword和Excel files.You測試是正確的,不能打印任何文件,但如果安裝了該文件的軟件,它可以在不指定文件的類型它is.It被處理的打印只有窗戶。 – Thunder 2010-06-30 05:27:53

+0

打印文件的問題已經解決,如問題所示。只有指定打印機的問題仍然存在。 – Thunder 2010-06-30 05:29:11

+0

嗨,好的,不是如何指定特定的打印機,但它可能值得研究如何在打印前更改默認打印機? – 2010-06-30 07:21:07

8
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(); 
+0

格式化爲您的代碼。通過選擇要格式化的文本並按下輸入窗口上方的「101010 ..」按鈕,您可以做同樣的事情。使代碼更容易(閱讀:可能)來看待。 :) – 2010-11-22 23:39:45