2016-10-26 41 views
0

私のC#プロジェクトには2つの印刷機能があります。ドキュメントを直接印刷するものと、ユーザーにプレビューを提示するものと、ユーザーがそのように選択した場合に印刷するもの。印刷プレビューから印刷設定を提示するにはどうすればよいですか?

どちらの方法も動作していますが、direktプリントバージョンはドキュメントを印刷する前に印刷設定ウィンドウを表示します。

private void printButton_Click(object sender, EventArgs e)  
{ 
    PrintDialog printDialog = new PrintDialog(); 
    printDialog.Document = printIssues; 
    printDialog.UseEXDialog = true; 

    if (DialogResult.OK == printDialog.ShowDialog()) 
    { 
     printIssues.DocumentName = "Some Name"; 
     printIssues.DefaultPageSettings.Landscape = true; 
     printIssues.Print(); 
    } 
} 

private void previewButton_Click(object sender, EventArgs e) 
{ 
    PrintPreviewDialog printPreview = new PrintPreviewDialog(); 
    printPreview.Icon = Properties.Resources.favicon; 
    printPreview.Document = printIssues; 
    printIssues.DefaultPageSettings.Landscape = true; 
    ((Form)printPreview).WindowState = FormWindowState.Maximized; 

    printPreview.ShowDialog(); 
} 

私は設定ウィンドウを提示することなく、文書はデフォルトのプリンタに印刷されます印刷ボタンをクリックすると、私は、最初のプレビューを提示秒バージョン。私はいくつかのことを試してみて、ある時は静かに捜しましたが、私を助けたものは何も見つかりませんでした。

ご協力いただきありがとうございます。

答えて

0

私はあなたの問題の回避策を見つけました。一般的には、印刷ボタンは直接ドキュメントをプリンタに送信しますが、この質問の回答と同じようにコントロールをホストすることができます。WorkAround may be?

希望します。

幸運は

0

私は怖いが、これはPrintPreviewDialogの既知の制限です。 デフォルトのプリンタを使用するようにレイアウトを描画するには、プリンタを知る必要があります。

私は過去に同じ問題を抱えていましたが、PrintPreviewDialogを表示する前にPrintDialogを表示することで解決できると思います。

private void previewButton_Click(object sender, EventArgs e) 
{ 
    PrintDialog printDialog = new PrintDialog(); 
    if (DialogResult.OK == printDialog.ShowDialog()) 
     { 
      PrintPreviewDialog printPreview = new PrintPreviewDialog(); 
      printPreview.Document = printIssues; 

      // this is were you take the printersettings from the printDialog 
      printPreview.Document.PrinterSettings = printDialog.PrinterSettings; 

      printIssues.DefaultPageSettings.Landscape = true; 
      printPreview.ShowDialog();   
     } 
} 

別の回避策は、独自のPrintPreviewDialogを作成することです。しかし、より多くのコーディングが必要です。

上記のコードがあなたに役立つかどうか教えてください。

関連する問題