次のスニペットでは、デフォルトのプリンター設定を取得し、InstalledPrinters プロパティから入力されたコンボボックスから選択したプリンター名で PrinterName を上書きします。
次に、コピー数を小さい整数値に設定します。
public void Print(){
CurrentPageIndex = 0;
PrintDocument printDoc = new PrintDocument();
printDoc.DocumentName = "Report";
printDoc.PrinterSettings = new PrinterSettings();
printDoc.PrinterSettings.PrinterName = this.PrinterName;
printDoc.PrinterSettings.Copies = this.Copies;
if (!printDoc.PrinterSettings.IsValid)
{
throw new ArgumentException("PrinterSettings");
}
ImageDimensions = new FrameDimension(RenderedImage.FrameDimensionsList[0]);
FrameCount = RenderedImage.GetFrameCount(ImageDimensions);
printDoc.PrintPage += new PrintPageEventHandler(PrintPageHandler);
printDoc.Print();
}
private void PrintPageHandler(object sender, PrintPageEventArgs e)
{
RenderedImage.SelectActiveFrame(ImageDimensions, CurrentPageIndex);
e.Graphics.DrawImage(RenderedImage, new Point(0, 0));
CurrentPageIndex++;
e.HasMorePages = (CurrentPageIndex < 0);
}
行のプリンター設定を確認するif(!printDoc.PrinterSettings.IsValid)
と、設定が無効であることが常にわかります。
デフォルト設定を使用して、プリンター名とコピー数を変更すると、有効なプリンター設定が得られるはずだと思いました。