Browse Source

compdfkit(win) - 更正拼写,完善内容编辑项目

weixiangjie 1 year ago
parent
commit
bec02031d5

+ 2 - 2
Demo/Examples/Annotations/MainWindow.xaml.cs

@@ -68,7 +68,7 @@ namespace AnnotationViewControl
             
             annotationControl.PdfViewControl = pdfViewer;
             annotationControl.InitWithPDFViewer(pdfViewer.PDFView);
-            InitialPDFViewControl(annotationControl.PdfViewControl);
+            InitialPDFViewControl();
 
             annotationControl.OnCanSaveChanged -= AnnotationControl_OnCanSaveChanged;
             annotationControl.OnCanSaveChanged += AnnotationControl_OnCanSaveChanged;
@@ -155,7 +155,7 @@ namespace AnnotationViewControl
         
         #region Annotation
 
-        public void InitialPDFViewControl(PDFViewControl newPDFViewer)
+        private void InitialPDFViewControl()
         {
             annotationControl.ClearAllToolState();
             annotationControl.ExpandRightPropertyPanel(null, Visibility.Collapsed);

+ 1 - 1
Demo/Examples/Compdfkit_Tools/DigitalSignature/VerifyDigitalSignatureControl/SignerInfoControl.xaml

@@ -13,7 +13,7 @@
         <Border Margin="10" BorderBrush="#33000000" BorderThickness="1">
             <StackPanel>
                 <TextBlock  Margin="10" Text="{Binding SignerInfoString}" Height="52" Width="448"></TextBlock>
-                <Button Width="158" Height="32" Content="View singer certificates" Margin="10,0,10,10" HorizontalAlignment="Left"></Button>
+                <Button Width="158" Height="32" Content="View signer certificates" Margin="10,0,10,10" HorizontalAlignment="Left"></Button>
             </StackPanel>
             
         </Border>

+ 1 - 1
Demo/Examples/Compdfkit_Tools/DigitalSignature/VerifyDigitalSignatureControl/VerifyDigitalSignatureControl.xaml

@@ -17,6 +17,6 @@
         <local:DigitalSignatureInfoControl x:Name="DigitalSignatureInfoControl" Height="52" Margin="0,30,0,10"></local:DigitalSignatureInfoControl>
         <local:DigitalSignatureValiditySummaaryControl x:Name="DigitalSignatureValiditySummaryControl" Grid.Row="1" Height="239" Margin="0,10,0,10"></local:DigitalSignatureValiditySummaaryControl>
         
-        <Button Grid.Row="3" Height="32" Width="158" HorizontalAlignment="Right" Content="View singer certificates" Margin="12" Click="ViewCertificates_OnClick" FontSize="14" FontFamily="Segoe UI"></Button>
+        <Button Grid.Row="3" Height="32" Width="158" HorizontalAlignment="Right" Content="View signer certificates" Margin="12" Click="ViewCertificates_OnClick" FontSize="14" FontFamily="Segoe UI"></Button>
     </Grid>
 </Window>

+ 40 - 3
Demo/Examples/ContentEditor/MainWindow.xaml

@@ -135,7 +135,7 @@
 
                 </StackPanel>
 
-                <ComboBox Name="ViewComboBox" Width="120" Height="26" Grid.Column="1" HorizontalAlignment="Center" FontSize="14" Foreground="#001A4E"
+                <ComboBox Name="ViewComboBox" Width="120" Height="26" Grid.Column="1" HorizontalAlignment="Center" FontSize="14" Foreground="#001A4E" SelectionChanged="ComboBox_SelectionChanged"
                          Style="{StaticResource ComboBoxStyle1}" >
                     <ComboBoxItem>Viewer</ComboBoxItem>
                     <ComboBoxItem IsSelected="True">Content Edit</ComboBoxItem>
@@ -214,7 +214,44 @@
             </Grid>
 
             <Grid Name="BodyGrid" Grid.Row="1">
-                <Border x:Name="PDFGrid" Background="#CECECE"></Border>
+                <Grid.ColumnDefinitions>
+                    <ColumnDefinition Width="0"></ColumnDefinition>
+                    <ColumnDefinition Width="0"></ColumnDefinition>
+                    <ColumnDefinition Width="*"></ColumnDefinition>
+                    <ColumnDefinition Width="auto"></ColumnDefinition>
+                </Grid.ColumnDefinitions>
+
+                <GridSplitter  Name="Splitter" Grid.Column="1" Width="15" ResizeBehavior="PreviousAndNext" Visibility="Collapsed">
+                    <GridSplitter.Template>
+                        <ControlTemplate TargetType="{x:Type GridSplitter}">
+                            <Border BorderThickness="{TemplateBinding Border.BorderThickness}"
+                        BorderBrush="{TemplateBinding Border.BorderBrush}"
+                        Background="{TemplateBinding Panel.Background}" >
+                                <Path Fill="Gray" VerticalAlignment="Center">
+                                    <Path.Data>
+                                        M15 3.75H1V2.25H15V3.75ZM15 8.75H1V7.25H15V8.75ZM1 13.75H15V12.25H1V13.75Z
+                                    </Path.Data>
+                                </Path>
+                            </Border>
+                        </ControlTemplate>
+                    </GridSplitter.Template>
+                </GridSplitter>
+
+                <Grid Grid.Column="2" >
+                    <Grid.RowDefinitions>
+                        <RowDefinition Height="auto"/>
+                        <RowDefinition Height="*"/>
+                    </Grid.RowDefinitions>
+
+                    <Grid Grid.Row="1">
+                        <Grid.ColumnDefinitions>
+                            <ColumnDefinition></ColumnDefinition>
+                            <ColumnDefinition Width="auto"></ColumnDefinition>
+                        </Grid.ColumnDefinitions>
+                        <Border x:Name="PDFGrid" Background="#CECECE"></Border>
+                    </Grid>
+
+                </Grid>
             </Grid>
         </Grid>
         <Border Name="PopupBorder" Background="#A0000000" Visibility="Collapsed">
@@ -230,7 +267,7 @@
                     </Grid.RowDefinitions>
 
                     <TextBlock Width="50" Height="20" FontSize="14" LineHeight="16" Margin="12,6,0,0" HorizontalAlignment="Left">FileInfo:</TextBlock>
-                    <Button Grid.Column="1" Width="16" Height="16" HorizontalAlignment="Right" Margin="0,8,8,0" BorderThickness="0">
+                    <Button Grid.Column="1" Width="16" Height="16" HorizontalAlignment="Right" Margin="0,8,8,0" BorderThickness="0" Click="FileInfoCloseBtn_Click">
                         <Button.Content>
                             <Path Fill="Black">
                                 <Path.Data>

+ 252 - 90
Demo/Examples/ContentEditor/MainWindow.xaml.cs

@@ -2,7 +2,9 @@
 using Compdfkit_Tools.PDFControl;
 using System;
 using System.Collections.Generic;
+using System.ComponentModel;
 using System.Linq;
+using System.Runtime.CompilerServices;
 using System.Text;
 using System.Threading.Tasks;
 using System.Windows;
@@ -15,82 +17,80 @@ using System.Windows.Media;
 using System.Windows.Media.Imaging;
 using System.Windows.Navigation;
 using System.Windows.Shapes;
+using Compdfkit_Tools.PDFView;
+using ComPDFKit.PDFDocument;
+using ComPDFKit.PDFPage;
+using ComPDFKitViewer;
+using ComPDFKitViewer.PdfViewer;
+using Microsoft.Win32;
 
 namespace ContentEditorViewControl
 {
     /// <summary>
-    /// MainWindow.xaml 的交互逻辑
+    /// Interaction logic for MainWindow.xaml
     /// </summary>
-    public partial class MainWindow : Window
+   public partial class MainWindow: Window, INotifyPropertyChanged
     {
-        private PDFViewControl passwordViewer;
-
+        private CPDFDisplaySettingsControl displaySettingsControl = new CPDFDisplaySettingsControl();
+        private RegularViewerControl regularViewerControl = new RegularViewerControl();
         private PDFViewControl pdfViewer;
-
+        private PDFViewControl passwordViewer;
         private ContentEditControl contentEditControl = new ContentEditControl();
         private CPDFBOTABarControl botaBarControl = new CPDFBOTABarControl(BOTATools.Thumbnail | BOTATools.Outline | BOTATools.Bookmark | BOTATools.Search | BOTATools.Annotation);
-
-        public bool CanUndo
+        
+        private bool _canSave = false;
+        public bool CanSave
         {
-            get
-            {
-                if (pdfViewer != null && pdfViewer.PDFView != null)
-                {
-                    return pdfViewer.PDFView.UndoManager.CanUndo;
-                }
-                return false;
-            }
-        }
 
-        public bool CanRedo
-        {
-            get
+            get => _canSave;
+            set
             {
-                if (pdfViewer != null && pdfViewer.PDFView != null)
-                {
-                    return pdfViewer.PDFView.UndoManager.CanRedo;
-                }
-                return false;
+                _canSave = value;
+                OnPropertyChanged();
             }
         }
-
-        public bool CanSave
+        
+        public MainWindow()
         {
-            get
-            {
-                if (pdfViewer != null && pdfViewer.PDFView != null)
-                {
-                    return pdfViewer.PDFView.UndoManager.CanSave;
-                }
-                return false;
-            }
+            InitializeComponent();
+            DataContext = this;
         }
-        private void PdfViewer_InfoChanged(object sender, KeyValuePair<string, object> e)
+
+        #region Load document
+
+        private void LoadDefaultDocument()
         {
-            if (e.Key == "Zoom")
-            {
-                CPDFSaclingControl.SetZoomTextBoxText(string.Format("{0}", (int)((double)e.Value * 100)));
-            }
+            string defaultFilePath = "PDF32000_2008.pdf";
+            pdfViewer.PDFView.InitDocument(defaultFilePath);
+            LoadDocument();
         }
-
-        public MainWindow()
+        
+        private void LoadCustomControl()
         {
-            InitializeComponent();
+            regularViewerControl.PdfViewControl = pdfViewer;
+            regularViewerControl.PdfViewControl.PDFView.SetMouseMode(MouseModes.Viewer);
+            regularViewerControl.SetDisplaySettingsControl(displaySettingsControl);
         }
 
-        #region Load Document
         private void LoadDocument()
         {
-            if (pdfViewer.PDFView.Document == null)
-            {
-                return;
-            }
             pdfViewer.PDFView.Load();
             pdfViewer.PDFView.SetShowLink(true);
-
+            
             pdfViewer.PDFView.InfoChanged -= PdfViewer_InfoChanged;
             pdfViewer.PDFView.InfoChanged += PdfViewer_InfoChanged;
+            PDFGrid.Child = contentEditControl;
+            
+            contentEditControl.PdfViewControl = pdfViewer;
+            contentEditControl.InitWithPDFViewer(pdfViewer.PDFView);
+            InitialPDFViewControl();
 
+            contentEditControl.OnCanSaveChanged -= ControlOnCanSaveChanged;
+            contentEditControl.OnCanSaveChanged += ControlOnCanSaveChanged;
+            contentEditControl.OnAnnotEditHandler -= PdfContentEditControlRefreshAnnotList;
+            contentEditControl.OnAnnotEditHandler += PdfContentEditControlRefreshAnnotList;
+            
+            contentEditControl.PdfViewControl.PDFView.SetFormFieldHighlight(true);
             PasswordUI.Closed -= PasswordUI_Closed;
             PasswordUI.Canceled -= PasswordUI_Canceled;
             PasswordUI.Confirmed -= PasswordUI_Confirmed;
@@ -98,20 +98,32 @@ namespace ContentEditorViewControl
             PasswordUI.Canceled += PasswordUI_Canceled;
             PasswordUI.Confirmed += PasswordUI_Confirmed;
 
-            contentEditControl.PdfViewControl = pdfViewer;
-            contentEditControl.InitWithPDFViewer(pdfViewer.PDFView);
-
+            contentEditControl.PdfViewControl.PDFView.ChangeFitMode(FitMode.FitWidth);
             CPDFSaclingControl.InitWithPDFViewer(contentEditControl.PdfViewControl.PDFView);
-
             CPDFSaclingControl.SetZoomTextBoxText(string.Format("{0}", (int)(contentEditControl.PdfViewControl.PDFView.ZoomFactor * 100)));
 
-            PDFGrid.Child = contentEditControl;
+            ViewSettingBtn.IsChecked = false;
             botaBarControl.InitWithPDFViewer(contentEditControl.PdfViewControl.PDFView);
             botaBarControl.SelectBotaTool(BOTATools.Thumbnail);
             contentEditControl.SetBOTAContainer(botaBarControl);
-            contentEditControl.InitWithPDFViewer(pdfViewer.PDFView);
+            displaySettingsControl.InitWithPDFViewer(contentEditControl.PdfViewControl.PDFView);
+            LoadCustomControl();
         }
 
+        private void PdfContentEditControlRefreshAnnotList(object sender, EventArgs e)
+        {
+            botaBarControl.LoadAnnotationList();
+        }
+
+        private void ControlOnCanSaveChanged(object sender, bool e)
+        {
+           this.CanSave = e;
+        }
+
+        #endregion
+        
+        #region Password
+
         private void PasswordUI_Confirmed(object sender, string e)
         {
             if (passwordViewer != null && passwordViewer.PDFView != null && passwordViewer.PDFView.Document != null)
@@ -145,29 +157,54 @@ namespace ContentEditorViewControl
             PasswordUI.Visibility = Visibility.Collapsed;
         }
 
-        private void LoadDefaultDocument()
+        #endregion
+        
+        #region Load Unload custom control
+
+        
+        private void MainWindow_Loaded(object sender, RoutedEventArgs e)
         {
-            string defaultFilePath = "PDF32000_2008.pdf";
-            pdfViewer.PDFView.InitDocument(defaultFilePath);
-            LoadDocument();
+            pdfViewer = new PDFViewControl();
+            LoadDefaultDocument();
+        }
+        #endregion
+        
+        #region Annotation
+
+        private void InitialPDFViewControl()
+        {
+            contentEditControl.ExpandRightPropertyPanel(null, Visibility.Collapsed);
         }
+          
         #endregion
+        
+        #region Event handle
 
+        private void PdfViewer_InfoChanged(object sender, KeyValuePair<string, object> e)
+        { 
+            if (e.Key == "Zoom")
+            {
+                CPDFSaclingControl.SetZoomTextBoxText(string.Format("{0}", (int)((double)e.Value * 100)));
+            }
+        }
+        
+        
+        
+        #endregion
+        
         private void Window_Loaded(object sender, RoutedEventArgs e)
         {
 
             pdfViewer = new PDFViewControl();
             LoadDefaultDocument();
         }
-
-        private void PageInfoBtn_Click(object sender, RoutedEventArgs e)
+        
+        private void SaveFileBtn_Click(object sender, RoutedEventArgs e)
         {
-            PasswordUI.Visibility = Visibility.Collapsed;
-            FileInfoUI.Visibility = Visibility.Visible;
-            FileInfoControl.InitWithPDFViewer(pdfViewer.PDFView);
-            PopupBorder.Visibility = Visibility.Visible;
+            SaveFile();
+            pdfViewer.PDFView.UndoManager.CanSave = false;
         }
-
+        
         private void OpenFile()
         {
             string filePath = CommonHelper.GetExistedPathOrEmpty();
@@ -207,12 +244,110 @@ namespace ContentEditorViewControl
 
         private void OpenFile_Click(object sender, RoutedEventArgs e)
         {
-            OpenFile(); 
+            OpenFile();
         }
 
-        private void ControlRightPanel()
+        private void LeftToolPanelButton_Click(object sender, RoutedEventArgs e)
+        {
+            ToggleButton expandBtn = sender as ToggleButton;
+            if (expandBtn != null)
+            {
+                bool isExpand = expandBtn.IsChecked == true;
+                contentEditControl.ExpandLeftPanel(isExpand);
+            }
+        }
+
+        private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
+        {
+            var item = (sender as ComboBox).SelectedItem as ComboBoxItem;
+            if ((string)item.Content == "Viewer")
+            {
+                regularViewerControl.IsActive = true;
+                contentEditControl.IsActive = false;
+                if (regularViewerControl.PdfViewControl != null && regularViewerControl.PdfViewControl.PDFView != null)
+                {
+                    contentEditControl.ClearViewerControl();
+                    PDFGrid.Child = regularViewerControl;
+                    regularViewerControl.PdfViewControl.PDFView.SetMouseMode(MouseModes.Viewer);
+                    regularViewerControl.PdfViewControl = pdfViewer;
+                    regularViewerControl.InitWithPDFViewer(pdfViewer.PDFView);
+                    regularViewerControl.OnCanSaveChanged -= ControlOnCanSaveChanged;
+                    regularViewerControl.OnCanSaveChanged += ControlOnCanSaveChanged;
+                    regularViewerControl.SetBOTAContainer(botaBarControl);
+                    regularViewerControl.SetDisplaySettingsControl(displaySettingsControl);
+                }
+            }
+            else if ((string)item.Content == "Content Edit")
+            {
+                contentEditControl.IsActive = true;
+                regularViewerControl.IsActive = false;
+                if (contentEditControl.PdfViewControl != null && contentEditControl.PdfViewControl.PDFView != null)
+                {
+                    regularViewerControl.ClearViewerControl();
+                    pdfViewer.PDFView?.SetPDFEditType(CPDFEditType.EditText | CPDFEditType.EditImage);
+                    pdfViewer.PDFView?.SetPDFEditCreateType(CPDFEditType.None);
+                    pdfViewer.PDFView?.SetMouseMode(MouseModes.PDFEdit);
+                    pdfViewer.PDFView?.ReloadDocument();
+
+                    pdfViewer.PDFView?.SetSplitMode(SplitMode.None);
+
+                    PDFGrid.Child = contentEditControl;
+                    contentEditControl.PdfViewControl.PDFView.SetMouseMode(MouseModes.PDFEdit);
+                    contentEditControl.PdfViewControl = pdfViewer;
+                    contentEditControl.InitWithPDFViewer(pdfViewer.PDFView);
+                    contentEditControl.OnCanSaveChanged -= ControlOnCanSaveChanged;
+                    contentEditControl.OnCanSaveChanged += ControlOnCanSaveChanged;
+                    contentEditControl.SetBOTAContainer(botaBarControl);
+                    contentEditControl.SetDisplaySettingsControl(displaySettingsControl);
+                }
+            }
+        }
+
+        private void PageInfoBtn_Click(object sender, RoutedEventArgs e)
+        {
+            PasswordUI.Visibility = Visibility.Collapsed;
+            FileInfoUI.Visibility = Visibility.Visible;
+            FileInfoControl.InitWithPDFViewer(pdfViewer.PDFView);
+            PopupBorder.Visibility = Visibility.Visible;
+        }
+
+        private void ViewSettingBtn_Click(object sender, RoutedEventArgs e)
+        {
+            ShowViewSettings();
+        }
+
+        private void ShowViewSettings()
+        {
+            if (ViewSettingBtn != null)
+            {
+                if (ViewSettingBtn.IsChecked == true)
+                {
+                    contentEditControl.SetViewSettings(Visibility.Visible, displaySettingsControl); 
+                    if ((bool)RightPanelButton.IsChecked)
+                    {
+                        RightPanelButton.IsChecked = false;
+                    }
+                }
+                else
+                {
+                    contentEditControl.SetViewSettings(Visibility.Collapsed); 
+                }
+            }
+        }
+        private void RightPanelButton_Click(object sender, RoutedEventArgs e)
         {
-            if (RightPanelButton != null) 
+            ControlRightPanel();
+        }
+
+        private void ExpandSearchBtn_Click(object sender, RoutedEventArgs e)
+        {
+            contentEditControl.ExpandLeftPanel(true);
+            botaBarControl.SelectBotaTool(BOTATools.Search);
+        }
+        
+        private void ControlRightPanel()
+        { 
+            if (RightPanelButton != null)
             {
                 if (RightPanelButton.IsChecked == true)
                 {
@@ -232,45 +367,72 @@ namespace ContentEditorViewControl
             }
         }
 
-        private void RightPanelButton_Click(object sender, RoutedEventArgs e)
+        #region Save file
+        /// <summary>
+        /// Save the file to another PDF file.
+        /// </summary>
+        public void SaveAsFile()
         {
-            ControlRightPanel();
+            {
+                if (pdfViewer != null && pdfViewer.PDFView != null && pdfViewer.PDFView.Document != null)
+                {
+                    CPDFDocument pdfDoc = pdfViewer.PDFView.Document;
+                    SaveFileDialog saveDialog = new SaveFileDialog();
+                    saveDialog.Filter = "(*.pdf)|*.pdf";
+                    saveDialog.DefaultExt = ".pdf";
+                    saveDialog.OverwritePrompt = true;
+
+                    if (saveDialog.ShowDialog() == true)
+                    {
+                        pdfDoc.WriteToFilePath(saveDialog.FileName);
+                    }
+                }
+            }
         }
-         
-        private void ShowViewSettings()
+
+        /// <summary>
+        /// Save the file in the current path.
+        /// </summary>
+        private void SaveFile()
         {
-            if (ViewSettingBtn != null)
+            if (pdfViewer != null && pdfViewer.PDFView != null && pdfViewer.PDFView.Document != null)
             {
-                if (ViewSettingBtn.IsChecked == true)
+                try
                 {
-                    CPDFDisplaySettingsControl displayPanel = new CPDFDisplaySettingsControl();
-                    displayPanel.InitWithPDFViewer(contentEditControl.PdfViewControl.PDFView);
-                    contentEditControl.SetViewSettings(Visibility.Visible, displayPanel);
-                    if ((bool)RightPanelButton.IsChecked)
+                    CPDFDocument pdfDoc = pdfViewer.PDFView.Document;
+                    if (pdfDoc.WriteToLoadedPath())
                     {
-                        RightPanelButton.IsChecked = false;
+                        return;
+                    }
+
+                    SaveFileDialog saveDialog = new SaveFileDialog();
+                    saveDialog.Filter = "(*.pdf)|*.pdf";
+                    saveDialog.DefaultExt = ".pdf";
+                    saveDialog.OverwritePrompt = true;
+
+                    if (saveDialog.ShowDialog() == true)
+                    {
+                        pdfDoc.WriteToFilePath(saveDialog.FileName);
                     }
                 }
-                else
+                catch (Exception ex)
                 {
-                    contentEditControl.SetViewSettings(Visibility.Collapsed);
+
                 }
             }
         }
+        #endregion
 
-        private void ViewSettingBtn_Click(object sender, RoutedEventArgs e)
+        private void FileInfoCloseBtn_Click(object sender, RoutedEventArgs e)
         {
-            ShowViewSettings();
+            PopupBorder.Visibility = Visibility.Collapsed;
         }
 
-        private void LeftToolPanelButton_Click(object sender, RoutedEventArgs e)
+        public event PropertyChangedEventHandler PropertyChanged;
+
+        protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
         {
-            ToggleButton expandBtn = sender as ToggleButton;
-            if (expandBtn != null)
-            {
-                bool isExpand = expandBtn.IsChecked == true;
-                contentEditControl.ExpandLeftPanel(isExpand);
-            }
+            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
         }
     }
 }

+ 11 - 11
Demo/Examples/PDFViewer/MainPage.xaml.cs

@@ -161,7 +161,7 @@ namespace PDFViewer
             botaBarControl.LoadAnnotationList();
         }
 
-        private void FormControlOnCanSaveChanged(object sender, bool e)
+        private void ControlOnCanSaveChanged(object sender, bool e)
         {
             this.CanSave = e;
         }
@@ -210,8 +210,8 @@ namespace PDFViewer
         private void LoadCustomControl()
         {
             regularViewerControl.PdfViewControl = pdfViewer;
-            regularViewerControl.OnCanSaveChanged -= FormControlOnCanSaveChanged;
-            regularViewerControl.OnCanSaveChanged += FormControlOnCanSaveChanged;
+            regularViewerControl.OnCanSaveChanged -= ControlOnCanSaveChanged;
+            regularViewerControl.OnCanSaveChanged += ControlOnCanSaveChanged;
             regularViewerControl.InitWithPDFViewer(pdfViewer.PDFView);
             regularViewerControl.PdfViewControl.PDFView.SetMouseMode(MouseModes.Viewer);
             regularViewerControl.SetBOTAContainer(null);
@@ -351,8 +351,8 @@ namespace PDFViewer
                     regularViewerControl.PdfViewControl.PDFView.SetMouseMode(MouseModes.Viewer);
                     regularViewerControl.PdfViewControl = pdfViewer;
                     regularViewerControl.InitWithPDFViewer(pdfViewer.PDFView);
-                    regularViewerControl.OnCanSaveChanged -= FormControlOnCanSaveChanged;
-                    regularViewerControl.OnCanSaveChanged += FormControlOnCanSaveChanged;
+                    regularViewerControl.OnCanSaveChanged -= ControlOnCanSaveChanged;
+                    regularViewerControl.OnCanSaveChanged += ControlOnCanSaveChanged;
                     regularViewerControl.SetBOTAContainer(botaBarControl);
                     regularViewerControl.SetDisplaySettingsControl(displaySettingsControl);
                 }
@@ -368,8 +368,8 @@ namespace PDFViewer
                     annotationControl.PdfViewControl.PDFView.SetToolParam(new AnnotHandlerEventArgs());
                     annotationControl.PdfViewControl = pdfViewer;
                     annotationControl.InitWithPDFViewer(pdfViewer.PDFView);
-                    annotationControl.OnCanSaveChanged -= FormControlOnCanSaveChanged;
-                    annotationControl.OnCanSaveChanged += FormControlOnCanSaveChanged;
+                    annotationControl.OnCanSaveChanged -= ControlOnCanSaveChanged;
+                    annotationControl.OnCanSaveChanged += ControlOnCanSaveChanged;
                     annotationControl.OnAnnotEditHandler -= PdfFormControlRefreshAnnotList;
                     annotationControl.OnAnnotEditHandler += PdfFormControlRefreshAnnotList;
                     annotationControl.InitialPDFViewControl(annotationControl.PdfViewControl);
@@ -387,8 +387,8 @@ namespace PDFViewer
                     formControl.PdfViewControl.PDFView.SetMouseMode(MouseModes.FormEditTool);
                     formControl.PdfViewControl = pdfViewer;
                     formControl.InitWithPDFViewer(pdfViewer.PDFView);
-                    formControl.OnCanSaveChanged -= FormControlOnCanSaveChanged;
-                    formControl.OnCanSaveChanged += FormControlOnCanSaveChanged;
+                    formControl.OnCanSaveChanged -= ControlOnCanSaveChanged;
+                    formControl.OnCanSaveChanged += ControlOnCanSaveChanged;
                     formControl.OnAnnotEditHandler -= PdfFormControlRefreshAnnotList;
                     formControl.OnAnnotEditHandler += PdfFormControlRefreshAnnotList;
                     formControl.SetBOTAContainer(botaBarControl);
@@ -412,8 +412,8 @@ namespace PDFViewer
                     contentEditControl.PdfViewControl.PDFView.SetMouseMode(MouseModes.PDFEdit);
                     contentEditControl.PdfViewControl = pdfViewer;
                     contentEditControl.InitWithPDFViewer(pdfViewer.PDFView);
-                    contentEditControl.OnCanSaveChanged -= FormControlOnCanSaveChanged;
-                    contentEditControl.OnCanSaveChanged += FormControlOnCanSaveChanged;
+                    contentEditControl.OnCanSaveChanged -= ControlOnCanSaveChanged;
+                    contentEditControl.OnCanSaveChanged += ControlOnCanSaveChanged;
                     contentEditControl.SetBOTAContainer(botaBarControl);
                     contentEditControl.SetDisplaySettingsControl(displaySettingsControl);
                 }