将PrintDialog和PrinterSettings从winforms迁移到wpf



我有以下代码,它在winforms和C#中运行得很好:

printDialog = new PrintDialog();
if (DialogResult.OK == printDialog.ShowDialog())
{
try
{
PrintDocument pd = new PrintDocument();
PrinterSettings ps = new PrinterSettings();
pd.PrintPage += new PrintPageEventHandler(PrintImage);
pd.PrinterSettings = printDialog.PrinterSettings;
pd.Print();
}
catch
{

}
}

现在,在wpf中,指示行中存在错误:

pd.PrinterSettings=printDialog.PrinterSettings;

因此,为了测试其余代码是否有效,我对其进行了评论,它运行得很好,但很明显,它总是在PC默认配置的打印机上打印。

我试图在其他线程中研究如何解决这个问题,解决方案如下:

printDialog.PrintQueue = new PrintQueue(new PrintServer(), "The exact name of my printer");

但执行此操作会产生错误:

严重性代码描述项目文件行状态已删除错误CS0012在未引用的程序集中定义了类型"PrintQueue"。必须添加对程序集"System.Printing,Version=4.0.0.0,Culture=neutral,"的引用

欢迎任何意见或建议。

wpf的解决方案是添加对System.Printing.dll的引用(谢谢@Sinatr(,代码如下:

PrintDocument pd = new PrintDocument();
PrinterSettings ps = new PrinterSettings();
pd.PrintPage += new PrintPageEventHandler(PrintImage);
pd.PrinterSettings.PrinterName = printDialog.PrintQueue.Name; 
pd.Print();

相关内容

  • 没有找到相关文章

最新更新