从 WPF 中的画布控件打印

本文关键字:控件 打印 布控件 WPF | 更新日期: 2023-09-27 18:35:11

我的应用程序从画布(WPF、C#)打印,但应用程序需要分配默认打印机。默认打印机在 PC 上保存为.ini文件。这个概念是,工作人员可以单击我的画布上的打印按钮,画布将生成布局,然后发送到打印机。

所以,我需要做的两件事是:

  1. 根据文本文件中的字符串设置默认打印机
  2. 装订后打印

单击打印按钮后,画布会使用我想要的布局(通过数据绑定)进行更新,并且作业将发送到打印机(打印机检测到作业并显示在打印机队列中),但打印机从不打印文档。这几乎就像我排队工作但从未说过"开始"。

然后我的佳能给了我一个错误(这可能是一个红色的听力),即"另一台打印机正在使用打印机。以下状态是该计算机---的使用状态"

这是我正在使用的 2 种主要方法。

internal void AutoPrint()
{
        string printerName = GetPrinterNameFromTextFile();
        PrintDialog dialog = new PrintDialog();
        getView(); //queries database, returns model and binds
        Print(dialog, config.PrinterName);
}
internal void Print(PrintDialog dialog, string printerName)                  
{                  
        Canvas canvas = new Canvas();
        canvas = this.PrintCanvas;
        PrintQueue queue = new LocalPrintServer().GetPrintQueue(printerName);
        dialog.PrintQueue = queue;
        Dispatcher.BeginInvoke(DispatcherPriority.Loaded, new Action(delegate()
            {
                dialog.PrintVisual(canvas, "");
            }));
}

从 WPF 中的画布控件打印

好的,我在其他地方问了一个不同的问题,但提供了源代码和答案:使用 WPF 进行 C# 打印