我有以下代码,它在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();