我将在此前言说,作为初学者,让我的程序实际打印对我而言比我预期的更为痛苦,我只是很高兴拥有它加工。尽管用户选择了C#打印对话框始终使用默认打印机
如果有一个简单的解决方案来防止我的代码始终使用默认的打印机,我会非常感激。如果没有,我需要重新做,那么我会认为这是一个很好的学习机会:)无论哪种方式,您可以提供任何援助将不胜感激。
这里是我的代码:
void PrintImage(object o, PrintPageEventArgs e)
{
int x = SystemInformation.WorkingArea.X;
int y = SystemInformation.WorkingArea.Y;
int width = this.Width;
int height = this.Height;
Rectangle bounds = new Rectangle(x, y, width, height);
Bitmap img = new Bitmap(width, height);
this.DrawToBitmap(img, bounds);
Point p = new Point(75, 75);
e.Graphics.DrawImage(img, p);
}
private void printToolStripMenuItem_Click(object sender, EventArgs e)
{
DialogResult result = printFD.ShowDialog();
if (result == DialogResult.OK)
{
PrintDocument pd = new PrintDocument();
pd.PrintPage += new PrintPageEventHandler(PrintImage);
pd.Print();
}
}
我有一个打印对话框,用户可以选择自己的打印机,但正如我所提到的默认打印机总是使用不管选择。为了详细阐述一下这个解决方案的范围,我只希望用户能够选择我们的.pdf打印机。
在此先感谢您提供的任何帮助。我对这个社区很陌生,但这里的知识丰富和快速反应已经让我感到惊讶。我非常感谢您为像我这样的初学者提供的帮助。干杯!
是否有一个PrinterDialog,您可以使用..例如PrintDialog pDialog = new PrintDialog();还需要在pd.Print()之前选择或设置打印机名称; – MethodMan 2012-02-23 17:24:59
@DJ KRAZE好吧,我需要使用的打印机对话框中显示的打印机名为PDFCreator。你碰巧知道我需要用来初始化它的语法吗?感谢您的回复 – wcard 2012-02-23 17:28:41
问题解决!下面的马特T的解决方案就像一个魅力。再次感谢您的回复 – wcard 2012-02-23 17:34:29