我会先说这个,作为一个初学者,让我的程序实际打印对我来说比我预期的更痛苦,我很高兴让它工作。
如果有一个简单的解决方案可以防止我的代码始终使用默认打印机,那么我会很高兴。如果没有,我需要重做,那么我会认为这是一个很好的学习机会:)无论哪种方式,你都可以提供任何帮助。非常感谢。
这是我的代码:
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打印机。
提前感谢您提供的任何帮助。我对这个社区很陌生,但这里丰富的知识和快速反应已经让我感到惊讶。我真的很感谢你为像我这样的初学者提供的帮助。干杯!
答案 0 :(得分:4)
在pd.Print()之前,你需要将它添加到printToolStripMenuItem_Click:
pd.PrinterSettings = printFD.PrinterSettings;
希望有所帮助!