を使用して C# WinForms アプリの一部を表示しPrintDocument
ます。ほぼ完了ですが、プリンターに問題があります。次のコードを使用してフォームの画像をキャプチャし、この画像を印刷し、最後に a を使用しPrintPreviewDialog
て印刷プレビューを表示します。
PrintDocument doc = new PrintDocument();
doc.PrintPage += doc_PrintPage;
doc.Print();
printPreviewDialog1.Document = doc;
printPreviewDialog1.ShowDialog();
そしてこれはdoc_PrintPage
機能です:
Bitmap bmp = new Bitmap(tabControl1.Width, tabControl1.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
tabControl1.DrawToBitmap(bmp, new Rectangle(0, 0, tabControl1.Width, tabControl1.Height));
e.Graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
e.Graphics.DrawImage((Image)bmp, 0, 0);
doc.print()
関数が呼び出されると、Microsoft OneNote プログラムが開かれ、印刷されたフォームが表示され、コントロールPrintPreviewDialog
によってプレビューを含む新しいフォームが開かれます。
プリンター プログラム (既定のプリンターとして設定されている OneNote など) または物理プリンターが開かれないように、サイレント プリントを行います (ユーザーが物理プリンターを接続している場合、ページは実際に印刷されると思います)。 ! これはまさに私が望むものではありません)。印刷せずに印刷プレビューを表示したいのですが、XPS (仮想プリンター ファイル) に印刷する方法や、実際の印刷を行わない他の方法はありますか?