문제

PrintDocument에서 여러 페이지를 작성하고 printpreviewControl에 표시하는 데 어려움이 있습니다. 나는 단일 페이지를 쉽게 만들 수 있지만 여러 페이지를 함께 묶는 것이 나를 피할 수 있습니다.

나는 결국 GDI를 사용하여 여러 페이지의 물건을 그릴 것이지만, 예상대로 이와 같은 일을 얻을 수는 없습니다.

private PrintDocument doc = new PrintDocument();
private string[] printMe = new string[]{ "page1", "page2", "page3" );
private int pageCount = 0;

private void FormLoad(object sender, EventArgs e)
{
 doc.PrintPage += new PrintPageEventHandler(PrintPage);
 PrintPreviewControl.Document = doc;
}

private void doc_BeginPrint(object sender, PrintEventArgs e){ pageCount = 0; }

private void PrintPage(object sender, PrintPageEventArgs e)
{
 Graphics g = e.Graphics;
 g.DrawString(drawMe[pageCount++], "Lucida Console", Brushes.Black, new Point(20,20));

 e.HasMorePages = (pageCount  printMe.Length );
}

아이디어는 3 개의 별도 페이지가 만들어지고 printpreview 컨트롤 내에 표시됩니다. 내가 무엇을 놓치고 있습니까?

도움이 되었습니까?

해결책

코드 스 니펫은 e.hasmorepages를 할당하는 임계점에서 정확히 엉망이되었습니다. 코드에는 한 가지 눈부신 문제가 있습니다. 페이지 카운터를 0으로 다시 재설정하려면 시작 프린트 이벤트 핸들러를 구현해야합니다.

다른 팁

기본적으로 모든 페이지를 표시하는 방법을 잘 모르겠지만 두 페이지 이상을 표시 할 수 있습니다. PrintPreviewControl 설정하여 Columns 속성 형세 섹션의 섹션 속성 창 및/또는 Rows 속성 행동 섹션, 1보다 높은 값.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top