5

私は、パネルを含む単純なウィンドウフォームを持つウィンドウフォームアプリケーションを持っています。パネル サイズを :560, 579 ピクセルに設定し、印刷ドキュメント サイズを次のように設定しました。

System.Drawing.Printing.PaperSize a = new System.Drawing.Printing.PaperSize("A5 (148 x 210 mm)", 584, 827);
printDocument1.PrinterSettings.DefaultPageSettings.PaperSize = a;

printpreviewdialoge のページ サイズを a5 または少なくとも印刷ドキュメントと同じサイズにして、それに合わせたいのですが、どうすればそれを実現できますか?

    private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
    {
        Bitmap b = new Bitmap(pnlPrint.Width, pnlPrint.Height);
        pnlPrint.DrawToBitmap(b, new System.Drawing.Rectangle(0, 0, pnlPrint.Width, pnlPrint.Height));
        e.Graphics.DrawImage(b,0,0);
    }

    private void Print()
    {
    PrintPreviewDialog printPreviewDialog1 = new PrintPreviewDialog();
    var paperSize = printDocument1.PrinterSettings.PaperSizes.Cast<PaperSize>().FirstOrDefault(e => e.PaperName == "A5");
    printDocument1.PrinterSettings.DefaultPageSettings.PaperSize = paperSize; 
    printPreviewDialog1.Document = printDocument1;

    printPreviewDialog1.ShowDialog();

    }
4

2 に答える 2

8

オブジェクトのプロパティからA5PaperSizeオブジェクトを取得できます。選択したプリンターのすべての用紙サイズを保持するプロパティがあります。LINQ を使用して、必要なものを見つけることができます。例えば:PrinterSettingsPrintDocumentPaperSizes

var paperSize = printDoc.PrinterSettings.PaperSizes.Cast<PaperSize>().FirstOrDefault(e => e.PaperName == "A5");
printDoc.PrinterSettings.DefaultPageSettings.PaperSize = paperSize;
于 2012-09-10T12:59:07.117 に答える
1

以下のリンクから私の答えを確認してください:

C# からの封筒の印刷

ありがとうございました。

于 2015-02-05T14:37:56.033 に答える