我想使用.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;
}
}
答案 0 :(得分: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();
答案 1 :(得分:1)
您在默认打印机上成功测试了哪种文件格式?
不可能只将“任何”文档发送到打印机,通常特定的文件格式需要由可以读取文件格式的应用程序解释,然后将其呈现给打印机或可以由打印机。
在大多数情况下,如果您可以渲染到PostScript或PDF,则可以使用单个解释器进行打印。