使用BlockUIContainer进行流程文档分页



有没有人知道如何打破一个大的BlockUIControl在FlowDocument的几个页面?现在它被截断了,而不是分页。我使用自定义DocumentPaginator

 DocumentPaginator dp = ((IDocumentPaginatorSource)doc).DocumentPaginator;
                    FittedDocumentPaginator fdp = new FittedDocumentPaginator(dp, 0.85, 0.85);
                    p.PrintDocument(fdp, "Baker Data");

public class FittedDocumentPaginator : DocumentPaginator
{
    public DocumentPaginator Base { get; private set; }
    public double xScale { get; private set; }
    public double yScale { get; private set; }
    private readonly ScaleTransform _sTransform;
    public FittedDocumentPaginator(DocumentPaginator baseDp, double xScale, double yScale)
    {
        if (baseDp == null)
            throw new ArgumentNullException("baseDp");
        Base = baseDp;
        this.xScale = xScale;
        this.yScale = yScale;
        _sTransform = new ScaleTransform(xScale, yScale);
    }
    public override DocumentPage GetPage(int pageNumber)
    {
        var page = Base.GetPage(pageNumber);
        ((ContainerVisual)page.Visual).Transform = _sTransform;
        return page;
    }
    public override bool IsPageCountValid
    {
        get { return Base.IsPageCountValid; }
    }
    public override int PageCount
    {
        get { return Base.PageCount; }
    }
    public override Size PageSize
    {
        get { return Base.PageSize; }
        set { Base.PageSize = value; }
    }
    public override IDocumentPaginatorSource Source
    {
        get { return Base.Source; }
    }
}

尝试使用FlowDocumentReader控件

最新更新