|
@@ -19,6 +19,8 @@ namespace Compdfkit_Tools.PDFControl
|
|
|
/// </summary>
|
|
|
private CPDFViewer pdfView;
|
|
|
private int currentHighLightIndex { get; set; } = -1;
|
|
|
+
|
|
|
+ private C_Search_Options searchOption = C_Search_Options.Search_Case_Insensitive;
|
|
|
|
|
|
private PDFTextSearch textSearch;
|
|
|
|
|
@@ -26,13 +28,45 @@ namespace Compdfkit_Tools.PDFControl
|
|
|
|
|
|
private bool isClearResult = false;
|
|
|
|
|
|
-
|
|
|
private SolidColorBrush highLightBrush = new SolidColorBrush(Color.FromArgb(0x99, 0xFF, 0xF7, 0x00));
|
|
|
|
|
|
+ public bool IsCaseSensitive
|
|
|
+ {
|
|
|
+ set
|
|
|
+ {
|
|
|
+ if (value)
|
|
|
+ {
|
|
|
+ searchOption |= C_Search_Options.Search_Case_Sensitive;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ searchOption &= ~C_Search_Options.Search_Case_Sensitive;
|
|
|
+ }
|
|
|
+ pdfView?.StartFindText(keyWord,searchOption);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public bool IsMatchWholeWord
|
|
|
+ {
|
|
|
+ set
|
|
|
+ {
|
|
|
+ if (value)
|
|
|
+ {
|
|
|
+ searchOption |= C_Search_Options.Search_Match_Whole_Word;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ searchOption &= ~C_Search_Options.Search_Match_Whole_Word;
|
|
|
+ }
|
|
|
+ pdfView?.StartFindText(keyWord,searchOption);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
public CPDFSearchControl()
|
|
|
{
|
|
|
InitializeComponent();
|
|
|
Loaded += PDFSearch_Loaded;
|
|
|
+ DataContext = this;
|
|
|
}
|
|
|
|
|
|
public void InitWithPDFViewer(CPDFViewer newPDFView)
|
|
@@ -70,6 +104,11 @@ namespace Compdfkit_Tools.PDFControl
|
|
|
|
|
|
private void SearchInput_MoveResultEvent(object sender, CPDFSearchInputUI.MoveDirection e)
|
|
|
{
|
|
|
+ if (keyWord != SearchInput.SearchKeyWord)
|
|
|
+ {
|
|
|
+ keyWord = SearchInput.SearchKeyWord;
|
|
|
+ pdfView.StartFindText(keyWord, searchOption);
|
|
|
+ }
|
|
|
if (e == CPDFSearchInputUI.MoveDirection.Previous)
|
|
|
{
|
|
|
pdfView.FindBackward();
|
|
@@ -192,17 +231,6 @@ namespace Compdfkit_Tools.PDFControl
|
|
|
{
|
|
|
return;
|
|
|
}
|
|
|
-
|
|
|
- var searchOption = C_Search_Options.Search_Case_Insensitive;
|
|
|
- if (MatchChb.IsChecked)
|
|
|
- {
|
|
|
- searchOption |= C_Search_Options.Search_Match_Whole_Word;
|
|
|
- }
|
|
|
-
|
|
|
- if (CaseChb.IsChecked)
|
|
|
- {
|
|
|
- searchOption |= C_Search_Options.Search_Case_Sensitive;
|
|
|
- }
|
|
|
|
|
|
keyWord = e;
|
|
|
textSearch.TextSearchDocument = pdfView.Document;
|
|
@@ -219,8 +247,7 @@ namespace Compdfkit_Tools.PDFControl
|
|
|
}
|
|
|
else if (ReplaceTog.IsChecked == true)
|
|
|
{
|
|
|
- pdfView.StartFindText(keyWord, searchOption);
|
|
|
- pdfView.FindForward();
|
|
|
+ SearchInput_MoveResultEvent(null, CPDFSearchInputUI.MoveDirection.Next);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -275,5 +302,18 @@ namespace Compdfkit_Tools.PDFControl
|
|
|
SearchResult.Visibility = Visibility.Collapsed;
|
|
|
ResultBorder.Visibility = Visibility.Collapsed;
|
|
|
}
|
|
|
+
|
|
|
+ private void ReplaceCurrent_Click(object sender, RoutedEventArgs e)
|
|
|
+ {
|
|
|
+ pdfView.ReplaceText(SearchInput.ReplaceWord);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void ReplaceAll_Click(object sender, RoutedEventArgs e)
|
|
|
+ {
|
|
|
+ for (int index = 0; index < pdfView.Document.PageCount; index++)
|
|
|
+ {
|
|
|
+ pdfView.ReplacePageAllText(SearchInput.ReplaceWord, index);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|