2009-03-26 66 views
4

C#コードで用紙サイズを設定する方法を教えてください。私はのPrintDocument .. 私のコードは、用紙サイズのコンストラクタ用紙サイズを設定する

ppvw = new PrintPreviewDialog(); 
ppvw.Document = printDoc; 
ppvw.PrintPreviewControl.StartPage = 0; 
ppvw.PrintPreviewControl.Zoom = 1.0; 
ppvw.PrintPreviewControl.Columns = 10; 


// Showing the Print Preview Page 
printDoc.BeginPrint += new System.Drawing.Printing.PrintEventHandler(PrintDoc_BeginPrint); 
printDoc.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(PrintDoc_PrintPage); 


if (ppvw.ShowDialog() != DialogResult.OK) 
{ 
    printDoc.BeginPrint -= new System.Drawing.Printing.PrintEventHandler(PrintDoc_BeginPrint); 
    printDoc.PrintPage -= new System.Drawing.Printing.PrintPageEventHandler(PrintDoc_PrintPage); 
} 


printDoc.PrinterSettings.DefaultPageSettings.PaperSize = new System.Drawing.Printing.PaperSize("a2", 5.0,5.0); 
printDoc.Print(); 
+1

エラーは何ですか? – Shoban

答えて

0

あるAPIを使用してPaperSizeを(文字列、Int32、Int32)をオーバーライドします

5.0(5)X 5.0(5)は少なすぎるされています,,, 「カスタムサイズ」は、あなたの文字列..またはA2のための420のx 594 ...

でない限り、また..かprinter.PaperSizesでのforeach用紙サイズの大きさを列挙しようとすると、A2があるかどうかを確認

デフォルトではRawkindをカスタムに設定しますが、前述のようにRawkindも設定する必要がありますin http://msdn.microsoft.com/en-us/library/system.drawing.printing.papersize.rawkind.aspx

+0

返信ありがとうございます...しかし、私は420X594を与えるとA4サイズの紙しか見せません。あなたはどのくらいのサイズを設定するか教えてください –

0

私はVisual Basicを使用しています。このコードでは、printpreviewですべてを表示するフォームを取得できますが、右側には細かく切ったページを印刷します。

PrintForm1.Form = Me 
PrintForm1.PrinterSettings.DefaultPageSettings.Landscape = True 
PrintForm1.PrinterSettings.DefaultPageSettings.PaperSize = New Printing.PaperSize("Custom", Me.Height, (Me.Width + 47)) 
PrintForm1.PrinterSettings.DefaultPageSettings.Margins = New Printing.Margins(3, 3, 3, 3) 
PrintForm1.PrinterSettings.DefaultPageSettings.PaperSize.RawKind = Printing.PaperKind.A4Small 
PrintForm1.PrintAction = Printing.PrintAction.PrintToPreview 'PrintForm1.PrintAction = Printing.PrintAction.PrintToPrinter 
PrintForm1.Print() 'PrintForm1.Print(Me, PowerPacks.Printing.PrintForm.PrintOption.Scrollable) ' 
0

以下のように使用でき、設定フォーム内でページサイズを設定できます。ここ

 private void button1_Click(object sender, EventArgs e) 
     { 
      PrintDialog printdg = new PrintDialog(); 
      if (printdg.ShowDialog() == DialogResult.OK) 
      { 
       PrintDocument pd = new PrintDocument(); 
       pd.PrinterSettings = printdg.PrinterSettings; 
       pd.PrintPage += PrintPage; 
       pd.Print(); 
       pd.Dispose(); 
      } 
     } 
     private void PrintPage(object o, PrintPageEventArgs e) 
     { 
      // Printng logic 
     } 
8
PrinterSettings ps = new PrinterSettings(); 
PrintDocument recordDoc = new PrintDocument(); 
recordDoc.PrinterSettings = ps; 

IEnumerable<PaperSize> paperSizes = ps.PaperSizes.Cast<PaperSize>(); 
PaperSize sizeA4 = paperSizes.First<PaperSize>(size => size.Kind == PaperKind.A4); // setting paper size to A4 size 
recordDoc.DefaultPageSettings.PaperSize = sizeA4; 

例えば「A4」のような種類で用紙サイズを設定するための方法だと、ここでカスタム用紙サイズ

recordDoc.DefaultPageSettings.PaperSize = new PaperSize("210 x 297 mm", 800, 800); 
PrintPreviewDialog ppvw = new PrintPreviewDialog(); 
ppvw .Document = recordDoc; 
ppvw.ShowDialog(); 

を設定する別の方法ですそれがうまくいくことを望みます。

+1

800,800とはどういう意味ですか? – Fawad

+0

@Fawadはこのコンストラクタでは、用紙サイズのクラスは3つの引数受け付けます:それは第二&第三引数とは関係ありません 1-用紙サイズ名を 紙の2幅 紙 チェックの3高詳細のためのそれらのリンク情報 https://msdn.microsoft.com/en-us/library/7dbh1cyh(v=vs.110).aspx https://msdn.microsoft.com/en-us/library/system.drawing.printing。 papersize(v = vs.110).aspx – Mawardy

+0

@Fawad:800,800は、8 "x 8"のページサイズを指定します。 (幅と高さは100分の1インチです) –

関連する問題