建立 PrintDocument、訂閱 PrintPage 事件、呼叫 Print():
PrintDocument printDocument = new PrintDocument();
printDocument.PrintPage += new PrintPageEventHandler(this.pd_PrintPage);
printDocument.Print();
變數區:DataSet dsPrintInfo(資料來源)、lineNo(目前列印行號)、lineQty(預估總行數)、printingPageNo(目前頁碼)。
關鍵計算:每頁行數 linesPerPage = (int)(e.MarginBounds.Height * 1.05 / mainFont.GetHeight(e.Graphics))。
流程分區:
count 計算當頁已印行數,lineNo 為資料集索引。e.HasMorePages = (lineQty > lineNo)。private void pd_PrintPage(object sender, PrintPageEventArgs e) {
// ... 完整程式碼見原文,此處略去重複細節 ...
printingPageNo++;
}