我有一个带有文档列表的WPF应用程序。我创建了一个打印全部按钮,将所有文档发送到我的默认打印机。我想让用户能够选择打印机,然后将所有文档发送到该打印机。
但是如何显示打印对话框并保存打印机信息?关闭对话框后如何打印到特定的打印机?
我的打印功能中有这个,并且工作正常(但对于错误的打印机)
var p = new Process
{
StartInfo = new ProcessStartInfo
{
CreateNoWindow = true,
Verb = "print",
FileName = filePath
}
};
p.Start();
答案 0 :(得分:2)
感谢Ray提供了很多帮助。
以下方法适用于选择打印机。当用户在打印对话框中单击“打印”时,将捕获打印机队列。
public PrintQueue SelectPrinter()
{
var dialog = new PrintDialog();
if (dialog.ShowDialog() == true)
{
if (dialog.PrintQueue != null)
return dialog.PrintQueue;
}
return null;
}
打印多个文档时可以使用打印队列;
...
var startInfo = new ProcessStartInfo
{
CreateNoWindow = true,
Verb = "printTo",
FileName = filePath,
Arguments = printQueue.FullName, // <-- here
WindowStyle = ProcessWindowStyle.Hidden,
UseShellExecute = true,
};
var p = Process.Start(startInfo);
...
答案 1 :(得分:1)
您可以使用PrintDialog
常见的使用模式是
PrintDialog dialog = new PrintDialog();
if (dialog.ShowDialog() == true)
{
dialog.PrintVisual(visual, "Job Name");
//dialog.PrintDocument(paginator, "Document Name");
}
如果要从文件打印,则需要加载文件并创建DocumentPaginator。如何做到这取决于您尝试打印的文件格式。
答案 2 :(得分:0)