0

次のスニペットでは、デフォルトのプリンター設定を取得し、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)と、設定が無効であることが常にわかります。

デフォルト設定を使用して、プリンター名とコピー数を変更すると、有効なプリンター設定が得られるはずだと思いました。

4

0 に答える 0