1

I'm trying to print a scroller a UIelement, or anything multipage for that matter.

I've inherited from DocumentPaginator, and it prints, it even prints the right amount of pages.

The trouble is it keeps printing the first page, over and over.

Here is my paginator:

   public class MyPaginator : DocumentPaginator {
    ScrollViewer _printStuff;

    public MyPaginator(ScrollViewer document, PaperSize pageSize) {
        _printStuff = document;
        _pageSize.Height = 100; //pageSize.Height;
        _pageSize.Width = 100; //pageSize.Width;
    }

    public override DocumentPage GetPage(int pageNumber) {
        _printStuff.ScrollToVerticalOffset((PageSize.Height * pageNumber));
        _printStuff.UpdateLayout();
        DocumentPage dp = new DocumentPage(_printStuff);
        return dp;
    }

    public override bool IsPageCountValid {
        get { return true; }
    }

    private int _pageCount;
    public override int PageCount {
        get {
            if (_pageCount == 0) {
                this.ComputePageCount();
            }
            return _pageCount;
        }
    }
    private Size _pageSize;
    public override Size PageSize {
        get {
            return _pageSize;
        }
        set {
            _pageSize = value;
        }
    }

    public override IDocumentPaginatorSource Source {
        get { return null; }
    }

    public override void ComputePageCount() {
        //base.ComputePageCount();

        var totalHeight = 0d;

        if (totalHeight == 0) {
            totalHeight = _printStuff.DesiredSize.Height;
        }

        var pc = (totalHeight / PageSize.Height);
        _pageCount = (int)Math.Ceiling(pc);

    }

}

And here is my calling code:

        PrinterSettings ps = new PrinterSettings();
        var printDialog = new PrintDialog();
        var paginator = new MyPaginator(scroller, ps.DefaultPageSettings.PaperSize);

        printDialog.PrintDocument(paginator, "My Receipt");

and here is my user control:

<UserControl x:Class="TestVBS.Views.PrintTest2"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         mc:Ignorable="d" 
         d:DesignHeight="300" d:DesignWidth="300" Name="myBox">

<ScrollViewer Name="scroller">
    <Grid Name="layout">

       <StackPanel>
            <Button Content="Button" HorizontalAlignment="Left" Margin="94,31,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click_1"/>

            <TextBlock>HEllow </TextBlock>

            <TextBlock>adsfas</TextBlock>
            <TextBlock>HEllow</TextBlock>

            <TextBlock>adsfas</TextBlock>
            <TextBlock>HEllow</TextBlock>

            <TextBlock>adsfas</TextBlock>
            <TextBlock>HEllow</TextBlock>

            <TextBlock>adsfas</TextBlock>
            <TextBlock>HEllow</TextBlock>

            <TextBlock>adsfas</TextBlock>
            <TextBlock>HEllow</TextBlock>

            <TextBlock>adsfas</TextBlock>
            <TextBlock>HEllow</TextBlock>

            <TextBlock>adsfas</TextBlock>
            <TextBlock>HEllow</TextBlock>

            <TextBlock>adsfas</TextBlock>
            <TextBlock>HEllow</TextBlock>

            <TextBlock>adsfas</TextBlock>
            <TextBlock>HEllow</TextBlock>

            <TextBlock>adsfas</TextBlock>
            <TextBlock>HEllow</TextBlock>

            <TextBlock>adsfas</TextBlock>
            <TextBlock>HEllow</TextBlock>

            <TextBlock>adsfas</TextBlock>
            <TextBlock>HEllow</TextBlock>

            <TextBlock>adsfas</TextBlock>
            <TextBlock>HEllow</TextBlock>

            <TextBlock>adsfas</TextBlock>
            <TextBlock>HEllow</TextBlock>

            <TextBlock>adsfas</TextBlock>
            <TextBlock>BBBBBBBBBBBBBBBBBBBB</TextBlock>

            <TextBlock>CCCCCCCCCCCCCCCCCCC</TextBlock>
            <TextBlock>BBBBBBBBBBBBBBBBBBBB</TextBlock>

            <TextBlock>CCCCCCCCCCCCCCCCCCC</TextBlock>
            <TextBlock>BBBBBBBBBBBBBBBBBBBB</TextBlock>

            <TextBlock>CCCCCCCCCCCCCCCCCCC</TextBlock>
            <TextBlock>BBBBBBBBBBBBBBBBBBBB</TextBlock>

            <TextBlock>CCCCCCCCCCCCCCCCCCC</TextBlock>
            <TextBlock>BBBBBBBBBBBBBBBBBBBB</TextBlock>

            <TextBlock>CCCCCCCCCCCCCCCCCCC</TextBlock>
            <TextBlock>BBBBBBBBBBBBBBBBBBBB</TextBlock>

            <TextBlock>CCCCCCCCCCCCCCCCCCC</TextBlock>
            <TextBlock>BBBBBBBBBBBBBBBBBBBB</TextBlock>

            <TextBlock>CCCCCCCCCCCCCCCCCCC</TextBlock>
            <TextBlock>BBBBBBBBBBBBBBBBBBBB</TextBlock>

            <TextBlock>CCCCCCCCCCCCCCCCCCC</TextBlock>
            <TextBlock>BBBBBBBBBBBBBBBBBBBB</TextBlock>

            <TextBlock>CCCCCCCCCCCCCCCCCCC</TextBlock>
            <TextBlock>BBBBBBBBBBBBBBBBBBBB</TextBlock>

            <TextBlock>CCCCCCCCCCCCCCCCCCC</TextBlock>
            <TextBlock>BBBBBBBBBBBBBBBBBBBB</TextBlock>

            <TextBlock>CCCCCCCCCCCCCCCCCCC</TextBlock>
            <TextBlock>BBBBBBBBBBBBBBBBBBBB</TextBlock>

            <TextBlock>CCCCCCCCCCCCCCCCCCC</TextBlock>
            <TextBlock>BBBBBBBBBBBBBBBBBBBB</TextBlock>

            <TextBlock>CCCCCCCCCCCCCCCCCCC</TextBlock>
            <TextBlock>BBBBBBBBBBBBBBBBBBBB</TextBlock>

            <TextBlock>CCCCCCCCCCCCCCCCCCC</TextBlock>
            <TextBlock>BBBBBBBBBBBBBBBBBBBB</TextBlock>

            <TextBlock>CCCCCCCCCCCCCCCCCCC</TextBlock>
        </StackPanel>

    </Grid>
</ScrollViewer>

Why won't it print the second, third and fourth pages?

Dave Clemmer
  • 3,741
  • 12
  • 49
  • 72
Smithy
  • 2,170
  • 6
  • 29
  • 61
  • Hi Smithy, Did you manage to find a solution to this by any chance? – Sid Mar 31 '13 at 14:36
  • I found a few examples online and mish mashed them together. http://www.nbdtech.com/Blog/archive/2009/04/20/wpf-printing-part-2-the-fixed-document.aspx these tuts helped alot – Smithy Apr 04 '13 at 22:14

0 Answers0