Beispiel #1
0
        public static double FitToWidth(Canvas canvas)
        {
            if (canvas == null)
            {
                return(0.0);
            }
            var engine = canvas.Tag as CanvasEngine;

            if (engine == null)
            {
                return(0.0);
            }
            var core = engine.Core;

            if (core == null)
            {
                return(0.0);
            }

            core.FitToWidth(canvas.Parent.Handle);
            core.Zoom = core.Zoom - 1; // 暫定
#if CUBE_ASYNC
            CanvasPolicy.AsyncRender(canvas, true);
#else
            CanvasPolicyA.Render(canvas, true);
#endif
            return(core.Zoom);
        }
Beispiel #2
0
        public static int LastPage(Canvas canvas)
        {
            if (canvas == null)
            {
                return(0);
            }
            var engine = canvas.Tag as CanvasEngine;

            if (engine == null)
            {
                return(0);
            }
            var core = engine.Core;

            if (core == null)
            {
                return(0);
            }

            core.CurrentPage = core.PageCount;
#if CUBE_ASYNC
            CanvasPolicy.AsyncRender(canvas, false);
            var control = (ScrollableControl)canvas.Parent;
            control.AutoScrollPosition = new Point(0, 0);
#else
            if (CanvasPolicyA.Render(canvas, false))
            {
                engine.UpdateURL();
                var control = (ScrollableControl)canvas.Parent;
                control.AutoScrollPosition = new Point(0, 0);
            }
#endif
            return(core.CurrentPage);
        }
Beispiel #3
0
        public static double ZoomOut(Canvas canvas)
        {
            if (canvas == null)
            {
                return(0.0);
            }
            var engine = canvas.Tag as CanvasEngine;

            if (engine == null)
            {
                return(0.0);
            }
            var core = engine.Core;

            if (core == null)
            {
                return(0.0);
            }

            var prev = canvas.Size;

            core.ZoomOut();
#if CUBE_ASYNC
            CanvasPolicy.AsyncRender(canvas, true);
#else
            CanvasPolicyA.Render(canvas, true);
#endif
            return(core.Zoom);
        }
Beispiel #4
0
        public static double Zoom(Canvas canvas, double percent)
        {
            if (canvas == null)
            {
                return(0.0);
            }
            var engine = canvas.Tag as CanvasEngine;

            if (engine == null)
            {
                return(0.0);
            }
            var core = engine.Core;

            if (core == null)
            {
                return(0.0);
            }

            var prev = canvas.Size;

            if (percent < core.Zoom || core.Zoom < 400)
            {
                core.Zoom = Math.Min(percent, 400);
#if CUBE_ASYNC
                CanvasPolicy.AsyncRender(canvas, true);
#else
                CanvasPolicyA.Render(canvas, true);
#endif
            }
            return(core.Zoom);
        }
Beispiel #5
0
        public static bool Search(Canvas canvas, SearchArgs args)
        {
            if (canvas == null)
            {
                return(false);
            }
            var engine = canvas.Tag as CanvasEngine;

            if (engine == null)
            {
                return(false);
            }
            var core = engine.Core;

            if (core == null)
            {
                return(false);
            }

            core.SearchCaseSensitive = !args.IgnoreCase;
            var order = args.WholeDocument ? PDFLibNet.PDFSearchOrder.PDFSearchFromdBegin : PDFLibNet.PDFSearchOrder.PDFSearchFromCurrent;

            int result = 0;

            if (args.FromBegin)
            {
                PreviousSearchResult_ = null;
                result = core.FindFirst(args.Text, order, false, args.WholeWord);
            }
            else if (args.FindNext)
            {
                result = core.FindNext(args.Text);
            }
            else
            {
                result = core.FindPrevious(args.Text);
            }
            //else result = core.FindText(args.Text, core.CurrentPage, order, !args.IgnoreCase, !args.FindNext, true, args.WholeWord);


            var prev = core.CurrentPage;

            if (result > 0 && (PreviousSearchResult_ == null || !Equals(PreviousSearchResult_, core.SearchResults[0])))
            {
                core.CurrentPage      = core.SearchResults[0].Page;
                PreviousSearchResult_ = core.SearchResults[0];
            }
            CanvasPolicyA.Render(canvas, false);
            if (core.CurrentPage != prev)
            {
                engine.UpdateURL();
            }

            return(result > 0);
        }
Beispiel #6
0
        public static double FitToPage(Canvas canvas)
        {
            if (canvas == null)
            {
                return(0.0);
            }
            var engine = canvas.Tag as CanvasEngine;

            if (engine == null)
            {
                return(0.0);
            }
            var core = engine.Core;

            if (core == null)
            {
                return(0.0);
            }

            // 横長ならばFitToWidthを、縦長ならばFitToHeightを呼ぶ
            if (GetOrientation(canvas) == Orientation.portratit)
            {
                core.FitToHeight(canvas.Parent.Handle);
            }
            else
            {
                core.FitToWidth(canvas.Parent.Handle);
            }
            core.Zoom = core.Zoom - 1; // 暫定

#if CUBE_ASYNC
            CanvasPolicy.AsyncRender(canvas, true);
#else
            CanvasPolicyA.Render(canvas, true);
#endif
            return(core.Zoom);
        }