打印机只能打印到默认打印机

本文关键字:打印机 默认 打印 | 更新日期: 2023-09-27 18:16:50

下面是我使用的代码(只是打印相关的部分):

按钮1 onclick处理程序方法:

printDialog1 = new PrintDialog();
printDialog1.AllowPrintToFile = true;
printDialog1.PrintToFile = false;
if (printDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
    PrintDocument pd = new PrintDocument();
    pd.DefaultPageSettings.PaperSize = new PaperSize("A4", 826, 1169);
    pd.PrinterSettings.PrintToFile = true;
    pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);
    pd.Print();
}

和我的pd_PrintPage方法:

Bitmap bitmapCanvas = new Bitmap(1000, 1000);
Graphics g = Graphics.FromImage(bitmapCanvas);
g.Clear(Color.White);
...
some g.Draw...() stuff
...
e.Graphics.DrawImage(bitmapCanvas, A(2), A(2));
//where e is the PrintPageEventArgs defined in the method signature

我的问题的第一部分是,这不会打印到选定的打印机(在打印对话框中选择)。只有当打印机是默认打印机时,它才会打印到打印机。在Windows 7下,它可以工作,它识别默认打印机,所以默认打印机将在我点击该按钮后出现的打印对话框的组合框中被默认选中。

我的主要问题是,这在Windows Xp下根本不起作用(不幸的是,我只能使用它)。我很好奇为什么。所以我不知道是我搞砸了,还是Windows Xp不支持。

我应该用什么来完成或纠正我的代码?

任何帮助都是感激的,非常感谢!Mitulat bati

打印机只能打印到默认打印机

试试这个,

printDialog1 = new PrintDialog();
printDialog1.AllowPrintToFile = true;
printDialog1.PrintToFile = false;
if (printDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
    printDialog1.Document.DefaultPageSettings.PaperSize = new PaperSize("A4", 826, 1169);
    printDialog1.Document.PrinterSettings.PrintToFile = true;
    printDialog1.Document.PrintPage += new PrintPageEventHandler(pd_PrintPage);
    printDialog1.Document.Print();
}