PrintDocument
을 사용하여 C# WinForms 앱의 일부를 표시하려고합니다. 거의 완료되었지만 프린터에 문제가 있습니다. 나는 내 양식의 이미지를 캡처 한 다음이 이미지를 인쇄하는 코드를 다음을 사용, 마침내는 인쇄 미리보기 표시 할 PrintPreviewDialog
를 사용프로그래밍 방식으로 가상 프린터 (XPS)로 인쇄
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 (가상 프린터 파일)로 인쇄 할 수있는 방법이 있습니까? 아니면 실제 인쇄가 수행되지 않는 다른 방법이 있습니까?
doc.Print()를 제거하십시오. –
잘 테스트했지만 doc.print를 제거하면 아무것도 인쇄되지 않으므로 미리보기를 사용할 수 없습니다. 그렇습니까? 미리보기를 표시하려면 어떻게해야합니까? –