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]; } CanvasPolicy.Render(canvas, false); if (core.CurrentPage != prev) { engine.UpdateURL(); } return(result > 0); }
/* ----------------------------------------------------------------- */ /// Equals (private) /* ----------------------------------------------------------------- */ private static bool Equals(PDFLibNet.PDFSearchResult arg0, PDFLibNet.PDFSearchResult arg1) { return(arg0.Page == arg1.Page && arg0.Position == arg1.Position); }
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]; } CanvasPolicy.Render(canvas, false); if (core.CurrentPage != prev) engine.UpdateURL(); return result > 0; }