Распределение документов по документам с помощью BlockUIContainer - PullRequest
4 голосов
/ 13 октября 2011

Кто-нибудь знает, как разбить большой 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; }
    }
}

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 13 апреля 2012

Попробуйте использовать элемент управления FlowDocumentReader

...