首页 文章

如何为多个文件选择打印机?

提问于
浏览
1

我有一个带有文档列表的WPF应用程序 . 我创建了一个打印全部按钮,将所有文档发送到我的默认打印机 . 我想让用户能够选择打印机,然后将所有文档发送到该打印机 .

但是如何显示打印对话框并保存打印机信息?关闭对话框后如何打印到特定的打印机?

我有我的打印功能,这工作正常(但对于错误的打印机)

var p = new Process
{
    StartInfo = new ProcessStartInfo
    {
       CreateNoWindow = true,
       Verb = "print",
       FileName = filePath
    }
};
p.Start();

3 回答

  • 1

    感谢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);
    ...
    
  • 0

    你可以使用PrintDialog

    常见的使用模式是

    PrintDialog dialog = new PrintDialog();
    if (dialog.ShowDialog() == true)
    {
        dialog.PrintVisual(visual, "Job Name");
        //dialog.PrintDocument(paginator, "Document Name");
    
    }
    

    如果要从文件打印,则需要加载文件并创建DocumentPaginator . 如何做到这取决于您尝试打印的文件格式 .

  • 2

    这只是一个线索,而不是一个完整的答案,但我认为这可能有所帮助 .

    您可以使用Windows注册表列出打印机并更改默认打印机 .

    herehere .

    您可以使用.NET框架以简单的方式在注册表中进行读写 .

相关问题