[WPF 学习] 7.1 多页打印

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");

相关推荐:

如何在Python中自定义NumPy的打印格式以方便调试?

np.set_printoptions()可直接控制NumPy数组显示格式;默认格式因小数位不一致、科学计数法混用及自动截断而影响调试效率;关键参数需协同设置,如precision控制有效位数、suppress禁用科学计数法、threshold避免省略、linewidth防换行混乱、floatmod...