Esempio n. 1
0
        public IVisio.Page NewPage(VisioAutomation.Geometry.Size?size, bool isbackgroundpage)
        {
            var cmdtarget = this._client.GetCommandTargetDocument();

            var active_document = cmdtarget.ActiveDocument;
            var pages           = active_document.Pages;

            IVisio.Page new_page;

            using (var undoscope = this._client.Undo.NewUndoScope(nameof(NewPage)))
            {
                new_page = pages.Add();

                if (size.HasValue)
                {
                    var target_pages = new Models.TargetPages(new_page);
                    this.SetPageSize(target_pages, size.Value);
                }

                if (isbackgroundpage)
                {
                    new_page.Background = 1;
                }
            }

            return(new_page);
        }
Esempio n. 2
0
        public void DeletePages(Models.TargetPages target_pages, bool renumber)
        {
            var pages = target_pages.Resolve(this._client);

            foreach (var page in pages)
            {
                page.Delete(renumber ? (short)1 : (short)0);
            }
        }
Esempio n. 3
0
        public void ResizePageToFitContents(Models.TargetPages target_pages, VisioAutomation.Geometry.Size bordersize)
        {
            var pages = target_pages.Resolve(this._client);

            using (var undoscope = this._client.Undo.NewUndoScope(nameof(ResizePageToFitContents)))
            {
                foreach (var page in pages)
                {
                    page.ResizeToFitContents(bordersize);
                }
            }
        }
Esempio n. 4
0
        public void SetPageFormatCells(Models.TargetPages targetpages, VisioAutomation.Pages.PageFormatCells cells)
        {
            var pages = targetpages.Resolve(this._client);

            using (var undoscope = this._client.Undo.NewUndoScope(nameof(SetPageFormatCells)))
            {
                foreach (var page in pages)
                {
                    var writer = new VisioAutomation.ShapeSheet.Writers.SrcWriter();
                    writer.SetValues(cells);
                    writer.BlastGuards = true;
                    writer.CommitFormulas(page);
                }
            }
        }
Esempio n. 5
0
        public VisioAutomation.Geometry.Size GetPageSize(Models.TargetPages target_pages)
        {
            var pages = target_pages.Resolve(this._client);

            var query      = new VisioAutomation.ShapeSheet.Query.CellQuery();
            var col_height = query.Columns.Add(VisioAutomation.ShapeSheet.SrcConstants.PageHeight, nameof(VisioAutomation.ShapeSheet.SrcConstants.PageHeight));
            var col_width  = query.Columns.Add(VisioAutomation.ShapeSheet.SrcConstants.PageWidth, nameof(VisioAutomation.ShapeSheet.SrcConstants.PageWidth));

            var    cellqueryresult = query.GetResults <double>(pages[0].PageSheet);
            var    row             = cellqueryresult[0];
            double height          = row[col_height];
            double width           = row[col_width];
            var    s = new VisioAutomation.Geometry.Size(width, height);

            return(s);
        }
Esempio n. 6
0
        public void SetPageSize(Models.TargetPages targetpages, VisioAutomation.Geometry.Size new_size)
        {
            var pages = targetpages.Resolve(this._client);

            using (var undoscope = this._client.Undo.NewUndoScope(nameof(SetPageSize)))
            {
                foreach (var page in pages)
                {
                    var page_sheet = page.PageSheet;
                    var writer     = new VisioAutomation.ShapeSheet.Writers.SrcWriter();
                    writer.SetValue(VisioAutomation.ShapeSheet.SrcConstants.PageWidth, new_size.Width);
                    writer.SetValue(VisioAutomation.ShapeSheet.SrcConstants.PageHeight, new_size.Height);
                    writer.CommitFormulas(page_sheet);
                }
            }
        }
Esempio n. 7
0
        public void SetPageOrientation(Models.TargetPages target_pages, Models.PageOrientation orientation)
        {
            if (orientation != VisioScripting.Models.PageOrientation.Landscape && orientation != VisioScripting.Models.PageOrientation.Portrait)
            {
                throw new System.ArgumentOutOfRangeException(nameof(orientation), "must be either Portrait or Landscape");
            }

            var pages = target_pages.Resolve(this._client);

            using (var undoscope = this._client.Undo.NewUndoScope(nameof(SetPageOrientation)))
            {
                foreach (var page in pages)
                {
                    var old_orientation = PageCommands._GetPageOrientation(page);

                    if (old_orientation == orientation)
                    {
                        // don't need to do anything
                        return;
                    }

                    var page_tp  = new VisioScripting.Models.TargetPages(page);
                    var old_size = this.GetPageSize(page_tp);

                    double new_height = old_size.Width;
                    double new_width  = old_size.Height;

                    var writer = new VisioAutomation.ShapeSheet.Writers.SrcWriter();
                    writer.SetValue(VisioAutomation.ShapeSheet.SrcConstants.PageWidth, new_width);
                    writer.SetValue(VisioAutomation.ShapeSheet.SrcConstants.PageHeight, new_height);
                    writer.SetValue(VisioAutomation.ShapeSheet.SrcConstants.PrintPageOrientation, (int)orientation);

                    writer.CommitFormulas(page.PageSheet);
                }
            }
        }
Esempio n. 8
0
        public Models.PageOrientation GetPageOrientation(Models.TargetPages target_pages)
        {
            var pages = target_pages.Resolve(this._client);

            return(PageCommands._GetPageOrientation(pages[0]));
        }