Beispiel #1
0
        static void Main(string[] args)
        {
            IDocument myDoc = new Document2004();

            Properties prop = new Properties
            {
                //AppName = "Sharp2Word",
                Author    = "Dublicator",
                LastSaved = DateTime.Now
            };

            myDoc.Head.Properties = prop;

            myDoc.AddEle(BreakLine.SetTimes(1).Create());             // this is one breakline

            //Headings
            myDoc.AddEle(Heading2.With("===== Headings ======").Create());
            myDoc.AddEle(
                Paragraph.With(
                    "This doc has been generated by Sharp2Word.")
                .Create());
            myDoc.AddEle(BreakLine.SetTimes(1).Create());

            myDoc.AddEle(Paragraph
                         .With("I will try to use a little bit of everything in the API Sharp2word. " +
                               "I realised that is very dificult to keep the documentation updated " +
                               "so this is where I will demostrate how to do some cool things with Sharp2Word!")
                         .Create());


            myDoc.AddEle(Heading1.With("Heading01 without styling").Create());
            myDoc.AddEle(Heading2.With("Heading02 with styling").WithStyle()
                         .Align(Align.CENTER).Italic().Create());
            myDoc.AddEle(Heading3.With("Heading03").WithStyle().Bold()
                         .Align(Align.RIGHT).Create());

            //Paragraph and ParagrapPiece
            myDoc.AddEle(Heading2.With("===== Paragraph and ParagrapPiece ======").Create());
            myDoc.AddEle(Paragraph.With("I am a very simple paragraph.").Create());

            myDoc.AddEle(BreakLine.SetTimes(1).Create());
            ParagraphPiece myParPiece01 =
                ParagraphPiece.With(
                    "If you use the class 'Paragraph', you will have limited style. Maybe only paragraph aligment.");
            ParagraphPiece myParPiece02 =
                ParagraphPiece.With("In order to use more advanced style, you have to use ParagraphPiece");
            ParagraphPiece myParPiece03 =
                ParagraphPiece.With(
                    "One example of this is when you want to make ONLY one word BOLD or ITALIC. the way to to this is create many pieces, format them separetely and put all together in a Paragraph object. Example:");

            myDoc.AddEle(Paragraph.WithPieces(myParPiece01, myParPiece02, myParPiece03).Create());

            ParagraphPiece myParPieceJava  = ParagraphPiece.With("I like C# and ").WithStyle().Font(Font.COURIER).Create();
            ParagraphPiece myParPieceRuby  = ParagraphPiece.With("Ruby!!! ").WithStyle().Bold.Italic.Create();
            ParagraphPiece myParPieceAgile =
                ParagraphPiece.With("I actually love C#, TDD, patterns... ").WithStyle().
                TextColor("008000").Create();

            myDoc.AddEle(Paragraph.WithPieces(myParPieceJava, myParPieceRuby, myParPieceAgile).Create());

            //font size
            myDoc.AddEle(Paragraph.WithPieces(ParagraphPiece.With("No size").Create(),
                                              ParagraphPiece.With("I am size 50.").WithStyle().FontSize(50).TextColor(System.Drawing.Color.Cyan).Create()));

            //Document Header and Footer
            myDoc.AddEle(BreakLine.SetTimes(2).Create());
            myDoc.AddEle(Heading2.With("===== Document Header and Footer ======").Create());
            myDoc.AddEle(Paragraph.With("By default everything is added to the Body when you do 'myDoc.AddEle(...)'." +
                                        " But you can add elements to the Header and/or Footer. Other cool thing is show page number or not.")
                         .Create());

            myDoc.AddEle(BreakLine.SetTimes(2).Create());
            myDoc.AddEle(
                Paragraph.With(
                    "Page number is displayed by default but you can disable: 'myDoc.getFooter().showPageNumber(false)' ")
                .Create());

            myDoc.AddEle(BreakLine.SetTimes(2).Create());
            myDoc.AddEle(
                Paragraph.With(
                    "you can also hide Header and Footer in the first Page. This is useful for when you have a cover page.: 'myDoc.getHeader().SetHideHeaderAndFooterFirstPage(true)' ")
                .Create());

            myDoc.Header.AddEle(
                Paragraph.WithPieces(ParagraphPiece.With("I am in the"),
                                     ParagraphPiece.With(" Header ").WithStyle().Bold.Create(),
                                     ParagraphPiece.With("of all pages")).Create());

            myDoc.Footer.AddEle(Paragraph.With("I am in the Footer of all pages").Create());


            //Images
            myDoc.AddEle(BreakLine.SetTimes(1).Create());
            myDoc.AddEle(Heading2.With("===== Images ======").Create());
            myDoc.AddEle(
                Paragraph.With(
                    "Images can be created from diferent locations. It can be from your local machine, from web URL or classpath.")
                .Create());

            myDoc.AddEle(Paragraph.With("This one is coming from WEB, google web site: ").Create());
            //myDoc.AddEle(Image.From_WEB_URL("http://www.google.com/images/logos/ps_logo2.png"));

            myDoc.AddEle(BreakLine.SetTimes(2).Create());
            myDoc.AddEle(Paragraph.With("You can change the image dimensions:.").Create());
            //myDoc.AddEle(
            //			Image.From_WEB_URL("http://www.google.com/images/logos/ps_logo2.png").SetHeight(40).SetWidth(80).
            //			Create());


            myDoc.AddEle(BreakLine.SetTimes(2).Create());
            myDoc.AddEle(
                Paragraph.With(
                    "You can always be creative mixing up images inside other IElements. Eg.: Paragraphs, Tables, etc.")
                .Create());

            myDoc.AddEle(BreakLine.SetTimes(1).Create());


            //Table
            myDoc.AddEle(Heading2.With("===== Table ======").Create());
            myDoc.AddEle(
                Paragraph.With("Table os soccer playerd and their number of gols - the best of the best of all times:").
                Create());
            myDoc.AddEle(BreakLine.SetTimes(1).Create());

            Table tbl = new Table();

            tbl.AddTableEle(TableEle.TH, "Name", "Number of gols", "Country");

            tbl.AddTableEle(TableEle.TD, "Arthur Friedenreich", "1329", "Brazil");
            tbl.AddTableEle(TableEle.TD, "Pele", "1281", "Brazil");
            tbl.AddTableEle(TableEle.TD, "Romario", "1002", "Brazil");
            tbl.AddTableEle(TableEle.TD, "Tulio Maravilha", "956", "Brazil");
            tbl.AddTableEle(TableEle.TD, "Zico", "815", "Brazil");
            tbl.AddTableEle(TableEle.TD, "Roberto Dinamite", "748", "Brazil");
            tbl.AddTableEle(TableEle.TD, "Di Stéfano", "715", "Argentina");
            tbl.AddTableEle(TableEle.TD, "Puskas", "689", "Hungary");
            tbl.AddTableEle(TableEle.TD, "Flávio", "591", "Brazil");
            tbl.AddTableEle(TableEle.TD, "James McGory", "550", "Scotland");
            tbl.AddTableEle(TableEle.TD, "Leonardo Correa", "299", "Brazil/Australia");

            tbl.AddTableEle(TableEle.TF, "Total", "1,100,000.00", " ");

            myDoc.AddEle(tbl);

            myDoc.AddEle(BreakLine.SetTimes(1).Create());

            myDoc.AddEle(
                Paragraph.WithPieces(
                    ParagraphPiece.With("* Zico was mid-fieldfer and managed to score all those f*****g goals!").
                    WithStyle().Italic.Create()).Create());
            myDoc.AddEle(
                Paragraph.WithPieces(
                    ParagraphPiece.With(
                        "* Leonardo Correa's goals (me) include futsal, soccer, friendly games, training games, so on... (but not playstation)")
                    .WithStyle().Italic.Create()).Create());


            //PageBreaks
            myDoc.AddEle(Heading2.With("===== PageBreak ======").Create());
            myDoc.AddEle(Paragraph.With("There is a PAGE BREAK after this line:").Create());
            myDoc.AddEle(PageBreak.Create());
            myDoc.AddEle(Paragraph.With("There is a PAGE BREAK before this line:").Create());

            myDoc.Save("mytest.doc");
        }
Beispiel #2
0
 /// <summary>
 /// Initializes a ParagraphRenderer object for formatting.
 /// </summary>
 /// <param name="gfx">The XGraphics object to do measurements on.</param>
 /// <param name="pageBreak">The page break.</param>
 /// <param name="fieldInfos">The field infos.</param>
 internal PageBreakRenderer(XGraphics gfx, PageBreak pageBreak, FieldInfos fieldInfos)
     : base(gfx, pageBreak, fieldInfos)
 {
     _pageBreak = pageBreak;
 }
Beispiel #3
0
        public void TestPageBreak()
        {
            PageBreak pb = new PageBreak();

            Assert.AreEqual(1, TestUtils.RegexCount(pb.Content, "<w:br w:type=\"page\" />"));
        }
Beispiel #4
0
        static void Main()
        {
            IDocument myDoc = new Document2004();

            myDoc.Body.SetMarginBody(10, 10, 10, 10);
            // myDoc.setPageOrientationLandscape();// default is Portrait be can be
            // changed.

            // Headings
            myDoc.AddEle(Heading2.With("===== Headings ======").Create());
            myDoc.AddEle(Paragraph
                         .With("This doc has been generated by the unit test testJava2wordAllInOne() in the class DocumentTest2004Test.java.")
                         .Create());
            myDoc.AddEle(BreakLine.Times(1).Create());

            myDoc.AddEle(Paragraph
                         .With("I will try to use a little bit of everything in the API Java2word. "
                               + "I realised that is very dificult to keep the doucmentation updated "
                               + "so this is where I will demostrate how to do some cool things With Java2word!")
                         .Create());

            myDoc.AddEle(Heading1.With("Heading01 without styling").Create());
            myDoc.AddEle(Heading2.With("Heading02 With styling").WithStyle()
                         .Align(Align.CENTER).Italic().Create());
            myDoc.AddEle(Heading3.With("Heading03").WithStyle().Bold()
                         .Align(Align.RIGHT).Create());

            // Paragraph and ParagrapPiece
            myDoc.AddEle(Heading2.With("===== Paragraph and ParagrapPiece ======")
                         .Create());
            myDoc.AddEle(Paragraph.With("I am a very simple paragraph.").Create());

            myDoc.AddEle(BreakLine.Times(1).Create());
            ParagraphPiece myParPiece01 = ParagraphPiece
                                          .With("If you use the class 'Paragraph', you will have limited style. Maybe only paragraph aligment.");
            ParagraphPiece myParPiece02 = ParagraphPiece
                                          .With("In order to use more advanced style, you have to use ParagraphPiece");
            ParagraphPiece myParPiece03 = ParagraphPiece
                                          .With("One example of this is when you want to make ONLY one word BOLD or ITALIC. the way to to this is Create many pieces, format them separetely and put all together in a Paragraph object. Example:");

            myDoc.AddEle(Paragraph.WithPieces(myParPiece01, myParPiece02,
                                              myParPiece03).Create());

            ParagraphPiece myParPieceJava = ParagraphPiece.With("I like Java and ")
                                            .WithStyle().Font(WordFont.COURIER).Create();
            ParagraphPiece myParPieceRuby = ParagraphPiece.With("Ruby!!! ")
                                            .WithStyle().Bold().Italic().Create();
            ParagraphPiece myParPieceAgile = ParagraphPiece
                                             .With("I actually love Java, Ruby Agile, BDD, Cucumber, automation... ")
                                             .WithStyle().TextColor("008000").Create();

            myDoc.AddEle(Paragraph.WithPieces(myParPieceJava, myParPieceRuby,
                                              myParPieceAgile).Create());

            myDoc.AddEle(BreakLine.Times(2).Create());
            myDoc.AddEle(Paragraph.WithPieces(
                             ParagraphPiece.With("This is a manual 'Bold' and 'Italic'")
                             .WithStyle().Font(WordFont.COURIER).Bold().Italic()
                             .Create()).Create());
            myDoc.AddEle(Paragraph
                         .WithPieces(
                             ParagraphPiece
                             .With("This is the SAME as the above line but With 'Smart' Bold/Align ")
                             .WithStyle().Font(WordFont.COURIER_BOLD_ITALIC)
                             .Create()).Create());
            myDoc.AddEle(BreakLine.Times(1).Create());

            // Font size
            myDoc.AddEle(Paragraph.WithPieces(ParagraphPiece.With("No size")
                                              .Create(), ParagraphPiece.With("I am size 24.").WithStyle()
                                              .FontSize(24).Create()));

            //ParagraphPiece and other format/styles
            myDoc.AddEle(BreakLine.Times(1).Create());
            myDoc.AddEle(Paragraph.WithPieces(ParagraphPiece.With("New ParagraphPiece styles have been implemented. Here they are:").WithStyle().FontSize(14).Create()));

            myDoc.AddEle(Paragraph.WithPieces(ParagraphPiece.With("The Style is: ").Create(), ParagraphPiece.With("Subscript").WithStyle().Subscript().Create()));
            myDoc.AddEle(Paragraph.WithPieces(ParagraphPiece.With("The Style is: ").Create(), ParagraphPiece.With("Superscript").WithStyle().Superscript().Create()));
            myDoc.AddEle(Paragraph.WithPieces(ParagraphPiece.With("The Style is: ").Create(), ParagraphPiece.With("Strike").WithStyle().Strike().Create()));
            myDoc.AddEle(Paragraph.WithPieces(ParagraphPiece.With("The Style is: ").Create(), ParagraphPiece.With("Caps").WithStyle().Caps().Create()));
            myDoc.AddEle(Paragraph.WithPieces(ParagraphPiece.With("The Style is: ").Create(), ParagraphPiece.With("SmallCaps").WithStyle().SmallCaps().Create()));
            myDoc.AddEle(Paragraph.WithPieces(ParagraphPiece.With("The Style is: ").Create(), ParagraphPiece.With("DoubleStrike").WithStyle().DoubleStrike().Create()));
            myDoc.AddEle(Paragraph.WithPieces(ParagraphPiece.With("The Style is: ").Create(), ParagraphPiece.With("Emboss").WithStyle().Emboss().Create()));
            myDoc.AddEle(Paragraph.WithPieces(ParagraphPiece.With("The Style is: ").Create(), ParagraphPiece.With("Imprint").WithStyle().Imprint().Create()));
            myDoc.AddEle(Paragraph.WithPieces(ParagraphPiece.With("The Style is: ").Create(), ParagraphPiece.With("Outline").WithStyle().Outline().Create()));
            myDoc.AddEle(Paragraph.WithPieces(ParagraphPiece.With("The Style is: ").Create(), ParagraphPiece.With("Shadow").WithStyle().Shadow().Create()));
            myDoc.AddEle(BreakLine.Times(2).Create());


            // Document Header and Footer
            myDoc.AddEle(BreakLine.Times(2).Create());
            myDoc.AddEle(Heading2.With("===== Document Header and Footer ======")
                         .Create());
            myDoc.AddEle(Paragraph
                         .With("By default everything is added to the Body when you do 'myDoc.AddEle(...)'."
                               + " But you can add elements to the Header and/or Footer. Other cool thing is show page number or not.")
                         .Create());

            myDoc.AddEle(BreakLine.Times(2).Create());
            myDoc.AddEle(Paragraph
                         .With("Page number is displayed by default but you can disable: 'myDoc.Footer().showPageNumber(false)' ")
                         .Create());

            myDoc.AddEle(BreakLine.Times(2).Create());
            myDoc.AddEle(Paragraph
                         .With("you can also hide Header and Footer in the first Page. This is useful for when you have a cover page.: 'myDoc.Header.setHideHeaderAndFooterFirstPage(true)' ")
                         .Create());

            myDoc.Header.AddEle(
                Paragraph.WithPieces(
                    ParagraphPiece.With("I am in the"),
                    ParagraphPiece.With(" Header ").WithStyle().Bold()
                    .Create(), ParagraphPiece.With("of all pages"))
                .Create());

            myDoc.Footer.AddEle(
                Paragraph.With("I am in the Footer of all pages").Create());

            // Images
            myDoc.AddEle(BreakLine.Times(1).Create());
            myDoc.AddEle(Heading2.With("===== Images ======").Create());
            myDoc.AddEle(Paragraph
                         .With("Images can be created from diferent locations. It can be from your local machine, from web URL or classpath.")
                         .Create());

            myDoc.AddEle(Paragraph.With(
                             "This one is coming from WEB, google web site: ").Create());
            myDoc.AddEle(Image.FromUrl("http://www.google.com/images/logos/ps_logo2.png"));

            myDoc.AddEle(BreakLine.Times(2).Create());
            myDoc.AddEle(Paragraph.With("You can change the image dimensions:.")
                         .Create());
            myDoc.AddEle(Image
                         .FromUrl("http://www.google.com/images/logos/ps_logo2.png")
                         .SetHeight(40).SetWidth(80).Create());

            myDoc.AddEle(BreakLine.Times(2).Create());
            myDoc.AddEle(Paragraph
                         .With("You can always be creative mixing up images inside other IElements. Eg.: Paragraphs, Tables, etc.")
                         .Create());

            /*myDoc.AddEle(Paragraph
             *      .With("This document inside the paragraph, coming from '/src/test/resources/dtpick.gif': "
             + Image.From_FULL_LOCAL_PATHL(
             +                      Util.AppRoot
             + "/src/test/resources/dtpick.gif")
             +                      .Content));*/

            myDoc.AddEle(BreakLine.Times(1).Create());

            // Table
            myDoc.AddEle(Heading2.With("===== Table ======").Create());
            myDoc.AddEle(Paragraph
                         .With("Table os soccer playerd and their number of gols - the best of the best of all Times:")
                         .Create());
            myDoc.AddEle(BreakLine.Times(1).Create());

            Table tbl = new Table();

            tbl.AddTableEle(TableEle.TH, "Name", "Number of gols", "Country");
            tbl.SetRepeatTableHeaderOnEveryPage();

            tbl.AddTableEle(TableEle.TD, "Arthur Friedenreich", "1329", "Brazil");
            tbl.AddTableEle(TableEle.TD, "Pele", "1281", "Brazil");
            tbl.AddTableEle(TableEle.TD, "Romario", "1002", "Brazil");
            tbl.AddTableEle(TableEle.TD, "Tulio Maravilha", "956", "Brazil");
            tbl.AddTableEle(TableEle.TD, "Zico", "815", "Brazil");
            tbl.AddTableEle(TableEle.TD, "Roberto Dinamite", "748", "Brazil");
            tbl.AddTableEle(TableEle.TD, "Di Stéfano", "715", "Argentina");
            tbl.AddTableEle(TableEle.TD, "Puskas", "689", "Hungary");
            tbl.AddTableEle(TableEle.TD, "Flávio", "591", "Brazil");
            tbl.AddTableEle(TableEle.TD, "James McGory", "550", "Scotland");
            tbl.AddTableEle(TableEle.TD, "Leonardo Correa", "299",
                            "Brazil/Australia");

            tbl.AddTableEle(TableEle.TF, "Total", "1,100,000.00", " ");

            myDoc.AddEle(tbl);

            myDoc.AddEle(BreakLine.Times(1).Create());

            myDoc.AddEle(Paragraph
                         .WithPieces(
                             ParagraphPiece
                             .With("* Zico was mid-fieldfer and managed to score all those f*****g goals!")
                             .WithStyle().Italic().Create()).Create());
            myDoc.AddEle(Paragraph
                         .WithPieces(
                             ParagraphPiece
                             .With("* Leonardo Correa's goals (me) include futsal, soccer, friendly games, training games, so on... (but not playstation)")
                             .WithStyle().Italic().Create()).Create());

            // PageBreaks
            myDoc.AddEle(Heading2.With("===== PageBreak ======").Create());
            myDoc.AddEle(Paragraph.With("There is a PAGE BREAK after this line:")
                         .Create());
            myDoc.AddEle(PageBreak.Create());
            myDoc.AddEle(Paragraph.With("There is a PAGE BREAK before this line:")
                         .Create());

            myDoc.Save(@"c:\mytest.doc");
        }
Beispiel #5
0
        public IPersistable CreateRIFObject(ObjectType objectType, ref IntermediateFormatReader context)
        {
            IPersistable persistable = null;

            if (objectType == ObjectType.Null)
            {
                return(null);
            }
            IDOwner    parentIDOwner    = this.m_parentIDOwner;
            ReportItem parentReportItem = this.m_parentReportItem;

            switch (objectType)
            {
            case ObjectType.PageSection:
                persistable             = new PageSection(this.m_parentReportItem);
                this.m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.Line:
                persistable             = new Line(this.m_parentReportItem);
                this.m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.Rectangle:
                persistable             = new Rectangle(this.m_parentReportItem);
                this.m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.Image:
                persistable             = new Image(this.m_parentReportItem);
                this.m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.TextBox:
                persistable             = new TextBox(this.m_parentReportItem);
                this.m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.SubReport:
                persistable             = new SubReport(this.m_parentReportItem);
                this.m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.Grouping:
                persistable = new Grouping(ConstructionPhase.Deserializing);
                break;

            case ObjectType.Sorting:
                persistable = new Sorting(ConstructionPhase.Deserializing);
                break;

            case ObjectType.ReportItemCollection:
                persistable = new ReportItemCollection();
                break;

            case ObjectType.ReportItemIndexer:
                persistable = (IPersistable)(object)default(ReportItemIndexer);
                break;

            case ObjectType.Style:
                persistable = new Style(ConstructionPhase.Deserializing);
                break;

            case ObjectType.AttributeInfo:
                persistable = new AttributeInfo();
                break;

            case ObjectType.Visibility:
                persistable = new Visibility();
                break;

            case ObjectType.ExpressionInfo:
                persistable = new ExpressionInfo();
                break;

            case ObjectType.ExpressionInfoTypeValuePair:
                persistable = new ExpressionInfoTypeValuePair();
                break;

            case ObjectType.DataAggregateInfo:
                persistable = new DataAggregateInfo();
                break;

            case ObjectType.RunningValueInfo:
                persistable = new RunningValueInfo();
                break;

            case ObjectType.Filter:
                persistable = new Filter();
                break;

            case ObjectType.DataSource:
                persistable = new DataSource();
                break;

            case ObjectType.DataSet:
                persistable = new DataSet();
                break;

            case ObjectType.ReportQuery:
                persistable = new ReportQuery();
                break;

            case ObjectType.Field:
                persistable = new Field();
                break;

            case ObjectType.ParameterValue:
                persistable = new ParameterValue();
                break;

            case ObjectType.ReportSnapshot:
                persistable = new ReportSnapshot();
                break;

            case ObjectType.DocumentMapNode:
                persistable = new DocumentMapNode();
                break;

            case ObjectType.DocumentMapBeginContainer:
                persistable = DocumentMapBeginContainer.Instance;
                break;

            case ObjectType.DocumentMapEndContainer:
                persistable = DocumentMapEndContainer.Instance;
                break;

            case ObjectType.ReportInstance:
                persistable = new ReportInstance();
                break;

            case ObjectType.ParameterInfo:
                persistable = new ParameterInfo();
                break;

            case ObjectType.ValidValue:
                persistable = new ValidValue();
                break;

            case ObjectType.ParameterDataSource:
                persistable = new ParameterDataSource();
                break;

            case ObjectType.ParameterDef:
                persistable = new ParameterDef();
                break;

            case ObjectType.ProcessingMessage:
                persistable = new ProcessingMessage();
                break;

            case ObjectType.CodeClass:
                persistable = (IPersistable)(object)default(CodeClass);
                break;

            case ObjectType.Action:
                persistable = new Action();
                break;

            case ObjectType.RenderingPagesRanges:
                persistable = (IPersistable)(object)default(RenderingPagesRanges);
                break;

            case ObjectType.IntermediateFormatVersion:
                persistable = new IntermediateFormatVersion();
                break;

            case ObjectType.ImageInfo:
                persistable = new ImageInfo();
                break;

            case ObjectType.ActionItem:
                persistable = new ActionItem();
                break;

            case ObjectType.DataValue:
                persistable = new DataValue();
                break;

            case ObjectType.CustomReportItem:
                persistable             = new CustomReportItem(this.m_parentReportItem);
                this.m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.SortFilterEventInfoMap:
                persistable = new SortFilterEventInfoMap();
                break;

            case ObjectType.SortFilterEventInfo:
                persistable = new SortFilterEventInfo();
                break;

            case ObjectType.EndUserSort:
                persistable = new EndUserSort();
                break;

            case ObjectType.ScopeLookupTable:
                persistable = new ScopeLookupTable();
                break;

            case ObjectType.Tablix:
                persistable             = new Tablix(this.m_parentReportItem);
                this.m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.TablixHeader:
                persistable = new TablixHeader();
                break;

            case ObjectType.TablixMember:
                persistable = new TablixMember();
                break;

            case ObjectType.TablixColumn:
                persistable = new TablixColumn();
                break;

            case ObjectType.TablixRow:
                persistable = new TablixRow();
                break;

            case ObjectType.TablixCornerCell:
                persistable = new TablixCornerCell();
                break;

            case ObjectType.TablixCell:
                persistable = new TablixCell();
                break;

            case ObjectType.Chart:
                persistable             = new Chart(this.m_parentReportItem);
                this.m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.ChartMember:
                persistable = new ChartMember();
                break;

            case ObjectType.ChartSeries:
                persistable = new ChartSeries();
                break;

            case ObjectType.ChartDataPoint:
                persistable = new ChartDataPoint();
                break;

            case ObjectType.ChartDataPointValues:
                persistable = new ChartDataPointValues();
                break;

            case ObjectType.ChartArea:
                persistable = new ChartArea();
                break;

            case ObjectType.ChartLegend:
                persistable = new ChartLegend();
                break;

            case ObjectType.ChartLegendTitle:
                persistable = new ChartLegendTitle();
                break;

            case ObjectType.ChartAxis:
                persistable = new ChartAxis();
                break;

            case ObjectType.ThreeDProperties:
                persistable = new ChartThreeDProperties();
                break;

            case ObjectType.ChartDataLabel:
                persistable = new ChartDataLabel();
                break;

            case ObjectType.ChartMarker:
                persistable = new ChartMarker();
                break;

            case ObjectType.ChartTitle:
                persistable = new ChartTitle();
                break;

            case ObjectType.ChartAxisScaleBreak:
                persistable = new ChartAxisScaleBreak();
                break;

            case ObjectType.ChartDerivedSeries:
                persistable = new ChartDerivedSeries();
                break;

            case ObjectType.ChartBorderSkin:
                persistable = new ChartBorderSkin();
                break;

            case ObjectType.ChartNoDataMessage:
                persistable = new ChartNoDataMessage();
                break;

            case ObjectType.ChartItemInLegend:
                persistable = new ChartItemInLegend();
                break;

            case ObjectType.ChartEmptyPoints:
                persistable = new ChartEmptyPoints();
                break;

            case ObjectType.ChartNoMoveDirections:
                persistable = new ChartNoMoveDirections();
                break;

            case ObjectType.ChartFormulaParameter:
                persistable = new ChartFormulaParameter();
                break;

            case ObjectType.ChartLegendColumn:
                persistable = new ChartLegendColumn();
                break;

            case ObjectType.ChartLegendColumnHeader:
                persistable = new ChartLegendColumnHeader();
                break;

            case ObjectType.ChartLegendCustomItem:
                persistable = new ChartLegendCustomItem();
                break;

            case ObjectType.ChartLegendCustomItemCell:
                persistable = new ChartLegendCustomItemCell();
                break;

            case ObjectType.ChartAlignType:
                persistable = new ChartAlignType();
                break;

            case ObjectType.ChartElementPosition:
                persistable = new ChartElementPosition();
                break;

            case ObjectType.ChartSmartLabel:
                persistable = new ChartSmartLabel();
                break;

            case ObjectType.ChartStripLine:
                persistable = new ChartStripLine();
                break;

            case ObjectType.ChartAxisTitle:
                persistable = new ChartAxisTitle();
                break;

            case ObjectType.ChartCustomPaletteColor:
                persistable = new ChartCustomPaletteColor();
                break;

            case ObjectType.GridLines:
                persistable = new ChartGridLines();
                break;

            case ObjectType.ChartTickMarks:
                persistable = new ChartTickMarks();
                break;

            case ObjectType.DataMember:
                persistable = new DataMember();
                break;

            case ObjectType.CustomDataRow:
                persistable = new CustomDataRow();
                break;

            case ObjectType.DataCell:
                persistable = new DataCell();
                break;

            case ObjectType.Variable:
                persistable = new Variable();
                break;

            case ObjectType.Page:
                persistable = new Page();
                break;

            case ObjectType.Paragraph:
                persistable = new Paragraph();
                break;

            case ObjectType.TextRun:
                persistable = new TextRun();
                break;

            case ObjectType.Report:
                persistable             = new Report(this.m_parentReportItem);
                this.m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.GaugePanel:
                persistable             = new GaugePanel(this.m_parentReportItem);
                this.m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.GaugeMember:
                persistable = new GaugeMember();
                break;

            case ObjectType.GaugeRow:
                persistable = new GaugeRow();
                break;

            case ObjectType.GaugeCell:
                persistable = new GaugeCell();
                break;

            case ObjectType.BackFrame:
                persistable = new BackFrame();
                break;

            case ObjectType.CapImage:
                persistable = new CapImage();
                break;

            case ObjectType.FrameBackground:
                persistable = new FrameBackground();
                break;

            case ObjectType.FrameImage:
                persistable = new FrameImage();
                break;

            case ObjectType.CustomLabel:
                persistable = new CustomLabel();
                break;

            case ObjectType.GaugeImage:
                persistable = new GaugeImage();
                break;

            case ObjectType.GaugeInputValue:
                persistable = new GaugeInputValue();
                break;

            case ObjectType.GaugeLabel:
                persistable = new GaugeLabel();
                break;

            case ObjectType.GaugePanelItem:
                persistable = new GaugePanelItem();
                break;

            case ObjectType.GaugeTickMarks:
                persistable = new GaugeTickMarks();
                break;

            case ObjectType.LinearGauge:
                persistable = new LinearGauge();
                break;

            case ObjectType.LinearPointer:
                persistable = new LinearPointer();
                break;

            case ObjectType.LinearScale:
                persistable = new LinearScale();
                break;

            case ObjectType.NumericIndicator:
                persistable = new NumericIndicator();
                break;

            case ObjectType.PinLabel:
                persistable = new PinLabel();
                break;

            case ObjectType.PointerCap:
                persistable = new PointerCap();
                break;

            case ObjectType.PointerImage:
                persistable = new PointerImage();
                break;

            case ObjectType.RadialGauge:
                persistable = new RadialGauge();
                break;

            case ObjectType.RadialPointer:
                persistable = new RadialPointer();
                break;

            case ObjectType.RadialScale:
                persistable = new RadialScale();
                break;

            case ObjectType.ScaleLabels:
                persistable = new ScaleLabels();
                break;

            case ObjectType.ScalePin:
                persistable = new ScalePin();
                break;

            case ObjectType.ScaleRange:
                persistable = new ScaleRange();
                break;

            case ObjectType.IndicatorImage:
                persistable = new IndicatorImage();
                break;

            case ObjectType.StateIndicator:
                persistable = new StateIndicator();
                break;

            case ObjectType.Thermometer:
                persistable = new Thermometer();
                break;

            case ObjectType.TickMarkStyle:
                persistable = new TickMarkStyle();
                break;

            case ObjectType.TopImage:
                persistable = new TopImage();
                break;

            case ObjectType.LookupInfo:
                persistable = new LookupInfo();
                break;

            case ObjectType.LookupDestinationInfo:
                persistable = new LookupDestinationInfo();
                break;

            case ObjectType.ReportSection:
                persistable = new ReportSection();
                break;

            case ObjectType.MapFieldDefinition:
                persistable = new MapFieldDefinition();
                break;

            case ObjectType.MapFieldName:
                persistable = new MapFieldName();
                break;

            case ObjectType.MapLineLayer:
                persistable = new MapLineLayer();
                break;

            case ObjectType.MapShapefile:
                persistable = new MapShapefile();
                break;

            case ObjectType.MapPolygonLayer:
                persistable = new MapPolygonLayer();
                break;

            case ObjectType.MapSpatialDataRegion:
                persistable = new MapSpatialDataRegion();
                break;

            case ObjectType.MapSpatialDataSet:
                persistable = new MapSpatialDataSet();
                break;

            case ObjectType.MapPointLayer:
                persistable = new MapPointLayer();
                break;

            case ObjectType.MapTile:
                persistable = new MapTile();
                break;

            case ObjectType.MapTileLayer:
                persistable = new MapTileLayer();
                break;

            case ObjectType.MapField:
                persistable = new MapField();
                break;

            case ObjectType.MapLine:
                persistable = new MapLine();
                break;

            case ObjectType.MapPolygon:
                persistable = new MapPolygon();
                break;

            case ObjectType.MapPoint:
                persistable = new MapPoint();
                break;

            case ObjectType.MapLineTemplate:
                persistable = new MapLineTemplate();
                break;

            case ObjectType.MapPolygonTemplate:
                persistable = new MapPolygonTemplate();
                break;

            case ObjectType.MapMarkerTemplate:
                persistable = new MapMarkerTemplate();
                break;

            case ObjectType.Map:
                persistable             = new Map(this.m_parentReportItem);
                this.m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.MapBorderSkin:
                persistable = new MapBorderSkin();
                break;

            case ObjectType.MapDataRegion:
                persistable = new MapDataRegion(this.m_parentReportItem);
                break;

            case ObjectType.MapMember:
                persistable = new MapMember();
                break;

            case ObjectType.MapRow:
                persistable = new MapRow();
                break;

            case ObjectType.MapCell:
                persistable = new MapCell();
                break;

            case ObjectType.MapLocation:
                persistable = new MapLocation();
                break;

            case ObjectType.MapSize:
                persistable = new MapSize();
                break;

            case ObjectType.MapGridLines:
                persistable = new MapGridLines();
                break;

            case ObjectType.MapBindingFieldPair:
                persistable = new MapBindingFieldPair();
                break;

            case ObjectType.MapCustomView:
                persistable = new MapCustomView();
                break;

            case ObjectType.MapDataBoundView:
                persistable = new MapDataBoundView();
                break;

            case ObjectType.MapElementView:
                persistable = new MapElementView();
                break;

            case ObjectType.MapViewport:
                persistable = new MapViewport();
                break;

            case ObjectType.MapLimits:
                persistable = new MapLimits();
                break;

            case ObjectType.MapColorScale:
                persistable = new MapColorScale();
                break;

            case ObjectType.MapColorScaleTitle:
                persistable = new MapColorScaleTitle();
                break;

            case ObjectType.MapDistanceScale:
                persistable = new MapDistanceScale();
                break;

            case ObjectType.MapTitle:
                persistable = new MapTitle();
                break;

            case ObjectType.MapLegend:
                persistable = new MapLegend();
                break;

            case ObjectType.MapLegendTitle:
                persistable = new MapLegendTitle();
                break;

            case ObjectType.MapBucket:
                persistable = new MapBucket();
                break;

            case ObjectType.MapColorPaletteRule:
                persistable = new MapColorPaletteRule();
                break;

            case ObjectType.MapColorRangeRule:
                persistable = new MapColorRangeRule();
                break;

            case ObjectType.MapCustomColorRule:
                persistable = new MapCustomColorRule();
                break;

            case ObjectType.MapCustomColor:
                persistable = new MapCustomColor();
                break;

            case ObjectType.MapLineRules:
                persistable = new MapLineRules();
                break;

            case ObjectType.MapPolygonRules:
                persistable = new MapPolygonRules();
                break;

            case ObjectType.MapSizeRule:
                persistable = new MapSizeRule();
                break;

            case ObjectType.MapMarkerImage:
                persistable = new MapMarkerImage();
                break;

            case ObjectType.MapMarker:
                persistable = new MapMarker();
                break;

            case ObjectType.MapMarkerRule:
                persistable = new MapMarkerRule();
                break;

            case ObjectType.MapPointRules:
                persistable = new MapPointRules();
                break;

            case ObjectType.PageBreak:
                persistable = new PageBreak();
                break;

            case ObjectType.DataScopeInfo:
                persistable = new DataScopeInfo();
                break;

            case ObjectType.LinearJoinInfo:
                persistable = new LinearJoinInfo();
                break;

            case ObjectType.IntersectJoinInfo:
                persistable = new IntersectJoinInfo();
                break;

            case ObjectType.BucketedDataAggregateInfos:
                persistable = new BucketedDataAggregateInfos();
                break;

            case ObjectType.DataAggregateInfoBucket:
                persistable = new DataAggregateInfoBucket();
                break;

            case ObjectType.NumericIndicatorRange:
                persistable = new NumericIndicatorRange();
                break;

            case ObjectType.IndicatorState:
                persistable = new IndicatorState();
                break;

            case ObjectType.SharedDataSetQuery:
                persistable = new SharedDataSetQuery();
                break;

            case ObjectType.DataSetCore:
                persistable = new DataSetCore();
                break;

            case ObjectType.DataSetParameterValue:
                persistable = new DataSetParameterValue();
                break;

            case ObjectType.RIFVariantContainer:
                persistable = new RIFVariantContainer();
                break;

            case ObjectType.IdcRelationship:
                persistable = new IdcRelationship();
                break;

            case ObjectType.DefaultRelationship:
                persistable = new DefaultRelationship();
                break;

            case ObjectType.JoinCondition:
                persistable = new Relationship.JoinCondition();
                break;

            case ObjectType.BandLayoutOptions:
                persistable = new BandLayoutOptions();
                break;

            case ObjectType.LabelData:
                persistable = new LabelData();
                break;

            case ObjectType.Slider:
                persistable = new Slider();
                break;

            case ObjectType.Coverflow:
                persistable = new Coverflow();
                break;

            case ObjectType.PlayAxis:
                persistable = new PlayAxis();
                break;

            case ObjectType.BandNavigationCell:
                persistable = new BandNavigationCell();
                break;

            case ObjectType.Tabstrip:
                persistable = new Tabstrip();
                break;

            case ObjectType.NavigationItem:
                persistable = new NavigationItem();
                break;

            case ObjectType.ScopedFieldInfo:
                persistable = new ScopedFieldInfo();
                break;

            default:
                Global.Tracer.Assert(false, "Unsupported object type: " + objectType.ToString());
                break;
            }
            IDOwner iDOwner = persistable as IDOwner;

            if (iDOwner != null)
            {
                iDOwner.ParentInstancePath = this.m_parentIDOwner;
                this.m_parentIDOwner       = iDOwner;
            }
            persistable.Deserialize(context);
            this.m_parentIDOwner    = parentIDOwner;
            this.m_parentReportItem = parentReportItem;
            return(persistable);
        }
        public void PageNumbering_FullStyledMultiSectionDocument()
        {
            Document doc = new Document();


            for (int i = 0; i < 4; i++)
            {
                Section group = new Section();
                if (i == 0)
                {
                    group.Style.PageStyle.NumberStyle = PageNumberStyle.LowercaseLetters;
                }
                if (i == 1)
                {
                    group.Style.PageStyle.NumberStyle      = PageNumberStyle.LowercaseRoman;
                    group.Style.PageStyle.NumberStartIndex = 1;
                }
                else if (i == 2)
                {
                    group.Style.PageStyle.NumberStyle      = PageNumberStyle.UppercaseLetters;
                    group.Style.PageStyle.NumberStartIndex = 2;
                }
                doc.Pages.Add(group);

                for (int j = 0; j < 4; j++)
                {
                    PageNumberLabel pgNum = new PageNumberLabel();
                    group.Contents.Add(pgNum);

                    PageBreak br = new PageBreak();
                    group.Contents.Add(br);
                }
            }


            doc.ViewPreferences.PageDisplay = PageDisplayMode.Thumbnails;
            doc.LayoutComplete += Doc_LayoutComplete;

            using (var ms = DocStreams.GetOutputStream("Numbering_StyledMultiSection.pdf"))
                doc.SaveAsPDF(ms);
            var ldoc = this._layout;

            // page indices                          0,    1,   2,   3,   4,   5,   6,    7,    8,    9,   10,  11 , 12,  13,  14,  15,  16,  17,  18,   19
            string[] expectedlabels = new string[] { "a", "b", "c", "d", "e", "i", "ii", "iii", "iv", "v", "B", "C", "D", "E", "F", "1", "2", "3", "4", "5" };

            int index = -1;

            List <string> actuallabels = new List <string>();

            Assert.AreEqual(20, ldoc.AllPages.Count);
            int last = -1;

            foreach (Scryber.Layout.PDFLayoutPage pg in ldoc.AllPages)
            {
                index = pg.PageIndex;
                Assert.AreEqual(last + 1, index, "Page numbers are not in synch");
                last = index;

                //Get the page number details for the page
                PDFPageNumberData num = pg.GetPageNumber();
                actuallabels.Add(num.Label);

                if (index < 5)
                {
                    Assert.AreEqual(index + 1, num.GroupNumber);
                    Assert.AreEqual(index + 1, num.PageNumber);
                    Assert.AreEqual(20, num.LastPageNumber);
                    Assert.AreEqual(5, num.GroupLastNumber);
                    Assert.AreEqual(expectedlabels[index], num.Label);
                    Assert.AreEqual("e", num.LastLabel);
                }
                else if (index < 10)
                {
                    Assert.AreEqual(index + 1, num.PageNumber);
                    Assert.AreEqual(20, num.LastPageNumber);

                    index -= 5;
                    Assert.AreEqual(index + 1, num.GroupNumber);
                    Assert.AreEqual(5, num.GroupLastNumber);
                    Assert.AreEqual(Scryber.Utilities.NumberHelper.GetRomanLower(index + 1), num.Label);
                    Assert.AreEqual("v", num.LastLabel);
                }
                else if (index < 15)
                {
                    Assert.AreEqual(index + 1, num.PageNumber);
                    Assert.AreEqual(20, num.LastPageNumber);
                    index -= 10;
                    Assert.AreEqual(index + 1, num.GroupNumber);
                    Assert.AreEqual(5, num.GroupLastNumber);
                    Assert.AreEqual(Scryber.Utilities.NumberHelper.GetLetterUpper(index + 2), num.Label);
                    Assert.AreEqual("F", num.LastLabel);
                }
                else
                {
                    Assert.AreEqual(index + 1, num.PageNumber);
                    Assert.AreEqual(20, num.LastPageNumber);

                    //labels are based from the continuation of the sequence
                    Assert.AreEqual(expectedlabels[index], num.Label);
                    Assert.AreEqual("5", num.LastLabel);

                    //group is one based from the start of that sequence
                    index -= 15;
                    Assert.AreEqual(index + 1, num.GroupNumber);
                    Assert.AreEqual(5, num.GroupLastNumber);
                }
            }
            string fullexpected = string.Join(", ", expectedlabels);
            string fullactual   = string.Join(", ", actuallabels);

            Assert.AreEqual(fullexpected, fullactual);
        }
        public void PageNumbering_MultiSectionDocument()
        {
            Document doc = new Document();


            // numbering                           | Default                 | Lower roman                | Upper letter with prefix        | Back to default
            // page indices                          0,    1,   2,   3,   4,   5,   6,     7,    8,    9,   10,    11 ,   12,    13,    14,   15,  16,  17,  18,   19
            string[] expectedlabels = new string[] { "1", "2", "3", "4", "5", "i", "ii", "iii", "iv", "v", "B", "C", "D", "E", "F", "6", "7", "8", "9", "10" };

            for (int i = 0; i < 4; i++)
            {
                Section group = new Section();
                if (i == 1)
                {
                    group.Style.PageStyle.NumberStyle      = PageNumberStyle.LowercaseRoman;
                    group.Style.PageStyle.NumberStartIndex = 1;
                }
                else if (i == 2)
                {
                    group.Style.PageStyle.NumberStyle      = PageNumberStyle.UppercaseLetters;
                    group.Style.PageStyle.NumberStartIndex = 2;
                }
                doc.Pages.Add(group);

                for (int j = 0; j < 4; j++)
                {
                    PageBreak br = new PageBreak();
                    group.Contents.Add(br);
                }
            }


            doc.ViewPreferences.PageDisplay = PageDisplayMode.Thumbnails;
            doc.LayoutComplete += Doc_LayoutComplete;

            using (var ms = DocStreams.GetOutputStream("Numbering_MultiSection.pdf"))
                doc.SaveAsPDF(ms);
            var ldoc  = this._layout;
            int index = -1;

            List <string> actuallabels = new List <string>();

            Assert.AreEqual(20, ldoc.AllPages.Count);


            int last = -1;

            foreach (Scryber.Layout.PDFLayoutPage pg in ldoc.AllPages)
            {
                index = pg.PageIndex;
                Assert.AreEqual(last + 1, index, "Page numbers are not in synch");
                last = index;

                //Get the page number details for the page
                PDFPageNumberData num = pg.GetPageNumber();
                actuallabels.Add(num.Label);

                if (index < 5)
                {
                    Assert.AreEqual(index + 1, num.GroupNumber, "First block page group number was wrong");
                    Assert.AreEqual(index + 1, num.PageNumber, "First block Global page number was wrong");
                    Assert.AreEqual(20, num.LastPageNumber, "First block last page number was wrong");
                    Assert.AreEqual(5, num.GroupLastNumber, "First block last group number was wrong");
                    Assert.AreEqual(expectedlabels[index], num.Label, "First block page label was wrong");
                    Assert.AreEqual("5", num.LastLabel, "First block last label was wrong");
                }
                else if (index < 10)
                {
                    Assert.AreEqual(index + 1, num.PageNumber, "First block page group number was wrong");
                    Assert.AreEqual(20, num.LastPageNumber, "First block Global page number was wrong");

                    index -= 5;
                    Assert.AreEqual(index + 1, num.GroupNumber);
                    Assert.AreEqual(5, num.GroupLastNumber);
                    Assert.AreEqual(Scryber.Utilities.NumberHelper.GetRomanLower(index + 1), num.Label);
                    Assert.AreEqual("v", num.LastLabel);
                }
                else if (index < 15)
                {
                    Assert.AreEqual(index + 1, num.PageNumber);
                    Assert.AreEqual(20, num.LastPageNumber);
                    index -= 10;
                    Assert.AreEqual(index + 1, num.GroupNumber);
                    Assert.AreEqual(5, num.GroupLastNumber);
                    Assert.AreEqual(Scryber.Utilities.NumberHelper.GetLetterUpper(index + 2), num.Label);
                    Assert.AreEqual("F", num.LastLabel);
                }
                else
                {
                    Assert.AreEqual(index + 1, num.PageNumber);
                    Assert.AreEqual(20, num.LastPageNumber);

                    //group is one based from the start of that sequence
                    index -= 15;
                    Assert.AreEqual(index + 1, num.GroupNumber);
                    Assert.AreEqual(5, num.GroupLastNumber);

                    //labels are based from the start of that entire sequence
                    index += 5;
                    Assert.AreEqual((index + 1).ToString(), num.Label);
                    Assert.AreEqual("10", num.LastLabel);
                }
            }
            string fullexpected = string.Join(", ", expectedlabels);
            string fullactual   = string.Join(", ", actuallabels);

            Assert.AreEqual(fullexpected, fullactual);

            //Check the page registrations

            // numbering                           | Default                 | Lower roman                | Upper letter with prefix        | Back to default
            // page indices                          0,    1,   2,   3,   4,   5,   6,     7,    8,    9,   10,    11 ,   12,    13,    14,   15,  16,  17,  18,   19

            PDFPageNumbers nums = ldoc.Numbers;

            Assert.AreEqual(4, nums.Registrations.Count);

            //Default 1-4
            PDFPageNumberRegistration reg = nums.Registrations[0];

            Assert.AreEqual(0, reg.FirstPageIndex);
            Assert.AreEqual(4, reg.LastPageIndex);
            Assert.AreEqual(0, reg.PreviousLinkedRegistrationPageCount);
            Assert.AreEqual(true, reg.IsClosed);

            //Lower Roman 5-9
            reg = nums.Registrations[1];
            Assert.AreEqual(5, reg.FirstPageIndex);
            Assert.AreEqual(9, reg.LastPageIndex);
            Assert.AreEqual(0, reg.PreviousLinkedRegistrationPageCount);
            Assert.AreEqual(true, reg.IsClosed);

            //Lower Upper Letter with prefix 10-14
            reg = nums.Registrations[2];
            Assert.AreEqual(10, reg.FirstPageIndex);
            Assert.AreEqual(14, reg.LastPageIndex);
            Assert.AreEqual(0, reg.PreviousLinkedRegistrationPageCount);
            Assert.AreEqual(true, reg.IsClosed);

            //Lower Default 15-19
            reg = nums.Registrations[3];
            Assert.AreEqual(15, reg.FirstPageIndex);
            Assert.AreEqual(19, reg.LastPageIndex);
            Assert.AreEqual(5, reg.PreviousLinkedRegistrationPageCount); //restarting from the last default onto this page
            Assert.AreEqual(true, reg.IsClosed);
        }