1.自定义打印类

  public class mydocumentpaginator : documentpaginator
        {
            private int _pagecount;
            public override bool ispagecountvalid => true;

            public override int pagecount => _pagecount;

            public override size pagesize { get; set; }

            public override idocumentpaginatorsource source => null;

            public override documentpage getpage(int pagenumber)
            {
                drawingvisual visual = new drawingvisual();
                using (drawingcontext dc = visual.renderopen())
                {
                    dc.drawtext(new formattedtext($"第{pagenumber}页", system.globalization.cultureinfo.currentculture, flowdirection.lefttoright, new typeface("仿宋体"), 14, brushes.black, 1), new point(96, 96));
                }
                return new documentpage(visual,pagesize, new rect(pagesize),new rect(pagesize));
            }

            public mydocumentpaginator(size pagesize, int pagecount)
            {
                this.pagesize = pagesize;
                _pagecount = pagecount;
            }
        }

2.调用

            printdialog pd = new printdialog();
            mydocumentpaginator doc = new mydocumentpaginator(new size(pd.printableareawidth, pd.printableareaheight), 3);
            pd.printdocument(doc, "mydoc");