|
@@ -1,27 +1,16 @@
|
|
using System;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.ComponentModel;
|
|
-using System.Linq;
|
|
|
|
using System.Runtime.CompilerServices;
|
|
using System.Runtime.CompilerServices;
|
|
-using System.Text;
|
|
|
|
-using System.Threading.Tasks;
|
|
|
|
using System.Windows;
|
|
using System.Windows;
|
|
using System.Windows.Controls;
|
|
using System.Windows.Controls;
|
|
using System.Windows.Controls.Primitives;
|
|
using System.Windows.Controls.Primitives;
|
|
-using System.Windows.Data;
|
|
|
|
-using System.Windows.Documents;
|
|
|
|
-using System.Windows.Input;
|
|
|
|
-using System.Windows.Media;
|
|
|
|
-using System.Windows.Media.Imaging;
|
|
|
|
-using System.Windows.Navigation;
|
|
|
|
-using System.Windows.Shapes;
|
|
|
|
using Compdfkit_Tools.Helper;
|
|
using Compdfkit_Tools.Helper;
|
|
using Compdfkit_Tools.PDFControl;
|
|
using Compdfkit_Tools.PDFControl;
|
|
using Compdfkit_Tools.PDFView;
|
|
using Compdfkit_Tools.PDFView;
|
|
using ComPDFKit.PDFDocument;
|
|
using ComPDFKit.PDFDocument;
|
|
using ComPDFKit.PDFPage;
|
|
using ComPDFKit.PDFPage;
|
|
using ComPDFKitViewer;
|
|
using ComPDFKitViewer;
|
|
-using ComPDFKitViewer.AnnotEvent;
|
|
|
|
using ComPDFKitViewer.PdfViewer;
|
|
using ComPDFKitViewer.PdfViewer;
|
|
using Microsoft.Win32;
|
|
using Microsoft.Win32;
|
|
|
|
|
|
@@ -36,9 +25,13 @@ namespace PDFViewer_new
|
|
private AnnotationControl annotationControl = new AnnotationControl();
|
|
private AnnotationControl annotationControl = new AnnotationControl();
|
|
private FormControl formControl = new FormControl();
|
|
private FormControl formControl = new FormControl();
|
|
private ContentEditControl contentEditControl = new ContentEditControl();
|
|
private ContentEditControl contentEditControl = new ContentEditControl();
|
|
|
|
+ private PageEditControl pageEditControl = new PageEditControl();
|
|
private CPDFBOTABarControl botaBarControl = new CPDFBOTABarControl();
|
|
private CPDFBOTABarControl botaBarControl = new CPDFBOTABarControl();
|
|
private CPDFDisplaySettingsControl displaySettingsControl = new CPDFDisplaySettingsControl();
|
|
private CPDFDisplaySettingsControl displaySettingsControl = new CPDFDisplaySettingsControl();
|
|
|
|
|
|
|
|
+ public event Func<string[], bool> CheckExistBeforeOpenFileEvent;
|
|
|
|
+ public event EventHandler FileChangeEvent;
|
|
|
|
+
|
|
private PanelState panelState = PanelState.GetInstance();
|
|
private PanelState panelState = PanelState.GetInstance();
|
|
|
|
|
|
private bool _canSave = false;
|
|
private bool _canSave = false;
|
|
@@ -47,7 +40,7 @@ namespace PDFViewer_new
|
|
get => _canSave;
|
|
get => _canSave;
|
|
set
|
|
set
|
|
{
|
|
{
|
|
- _canSave = value;
|
|
|
|
|
|
+ _canSave = value;
|
|
OnPropertyChanged();
|
|
OnPropertyChanged();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -96,16 +89,19 @@ namespace PDFViewer_new
|
|
}
|
|
}
|
|
|
|
|
|
#region Load document
|
|
#region Load document
|
|
- private void LoadDefaultDocument()
|
|
|
|
|
|
+
|
|
|
|
+ public void InitWithFilePath(string filePath)
|
|
{
|
|
{
|
|
- string defaultFilePath = "PDF32000_2008.pdf";
|
|
|
|
- pdfViewer.PDFView.InitDocument(defaultFilePath);
|
|
|
|
- LoadDocument();
|
|
|
|
- PDFGrid.Child = regularViewerControl;
|
|
|
|
|
|
+ pdfViewer = new PDFViewControl();
|
|
|
|
+ pdfViewer.PDFView.InitDocument(filePath);
|
|
}
|
|
}
|
|
|
|
|
|
private void LoadDocument()
|
|
private void LoadDocument()
|
|
{
|
|
{
|
|
|
|
+ if (pdfViewer.PDFView.Document == null)
|
|
|
|
+ {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
pdfViewer.PDFView.Load();
|
|
pdfViewer.PDFView.Load();
|
|
pdfViewer.PDFView.SetShowLink(true);
|
|
pdfViewer.PDFView.SetShowLink(true);
|
|
|
|
|
|
@@ -122,6 +118,9 @@ namespace PDFViewer_new
|
|
|
|
|
|
pdfViewer.PDFView.ChangeFitMode(FitMode.FitWidth);
|
|
pdfViewer.PDFView.ChangeFitMode(FitMode.FitWidth);
|
|
CPDFSaclingControl.InitWithPDFViewer(pdfViewer.PDFView);
|
|
CPDFSaclingControl.InitWithPDFViewer(pdfViewer.PDFView);
|
|
|
|
+ ModeComboBox.SelectedIndex = 0;
|
|
|
|
+ regularViewerControl.IsActive = true;
|
|
|
|
+
|
|
CPDFSaclingControl.SetZoomTextBoxText(string.Format("{0}", (int)(pdfViewer.PDFView.ZoomFactor * 100)));
|
|
CPDFSaclingControl.SetZoomTextBoxText(string.Format("{0}", (int)(pdfViewer.PDFView.ZoomFactor * 100)));
|
|
|
|
|
|
ViewSettingBtn.IsChecked = false;
|
|
ViewSettingBtn.IsChecked = false;
|
|
@@ -132,7 +131,6 @@ namespace PDFViewer_new
|
|
LoadCustomControl();
|
|
LoadCustomControl();
|
|
panelState.PropertyChanged -= PanelState_PropertyChanged;
|
|
panelState.PropertyChanged -= PanelState_PropertyChanged;
|
|
panelState.PropertyChanged += PanelState_PropertyChanged;
|
|
panelState.PropertyChanged += PanelState_PropertyChanged;
|
|
- ModeComboBox.SelectedIndex = 0;
|
|
|
|
}
|
|
}
|
|
|
|
|
|
private void PanelState_PropertyChanged(object sender, PropertyChangedEventArgs e)
|
|
private void PanelState_PropertyChanged(object sender, PropertyChangedEventArgs e)
|
|
@@ -171,6 +169,7 @@ namespace PDFViewer_new
|
|
PopupBorder.Visibility = Visibility.Collapsed;
|
|
PopupBorder.Visibility = Visibility.Collapsed;
|
|
pdfViewer = passwordViewer;
|
|
pdfViewer = passwordViewer;
|
|
LoadDocument();
|
|
LoadDocument();
|
|
|
|
+ FileChangeEvent?.Invoke(null, EventArgs.Empty);
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
@@ -201,15 +200,15 @@ namespace PDFViewer_new
|
|
regularViewerControl.OnCanSaveChanged += FormControlOnCanSaveChanged;
|
|
regularViewerControl.OnCanSaveChanged += FormControlOnCanSaveChanged;
|
|
regularViewerControl.InitWithPDFViewer(pdfViewer.PDFView);
|
|
regularViewerControl.InitWithPDFViewer(pdfViewer.PDFView);
|
|
regularViewerControl.PdfViewControl.PDFView.SetMouseMode(MouseModes.AnnotCreate);
|
|
regularViewerControl.PdfViewControl.PDFView.SetMouseMode(MouseModes.AnnotCreate);
|
|
|
|
+ regularViewerControl.SetBOTAContainer(null);
|
|
regularViewerControl.SetBOTAContainer(botaBarControl);
|
|
regularViewerControl.SetBOTAContainer(botaBarControl);
|
|
regularViewerControl.SetDisplaySettingsControl(displaySettingsControl);
|
|
regularViewerControl.SetDisplaySettingsControl(displaySettingsControl);
|
|
PDFGrid.Child = regularViewerControl;
|
|
PDFGrid.Child = regularViewerControl;
|
|
}
|
|
}
|
|
|
|
|
|
- private void MainWindow_Loaded(object sender, RoutedEventArgs e)
|
|
|
|
|
|
+ private void MainPage_Loaded(object sender, RoutedEventArgs e)
|
|
{
|
|
{
|
|
- pdfViewer = new PDFViewControl();
|
|
|
|
- LoadDefaultDocument();
|
|
|
|
|
|
+ LoadDocument();
|
|
}
|
|
}
|
|
#endregion
|
|
#endregion
|
|
|
|
|
|
@@ -236,17 +235,23 @@ namespace PDFViewer_new
|
|
private void OpenFile()
|
|
private void OpenFile()
|
|
{
|
|
{
|
|
string filePath = CommonHelper.GetFilePathOrEmpty();
|
|
string filePath = CommonHelper.GetFilePathOrEmpty();
|
|
|
|
+ string oldFilePath = pdfViewer.PDFView.Document.FilePath;
|
|
|
|
+
|
|
if (!string.IsNullOrEmpty(filePath) && regularViewerControl.PdfViewControl != null)
|
|
if (!string.IsNullOrEmpty(filePath) && regularViewerControl.PdfViewControl != null)
|
|
{
|
|
{
|
|
if (pdfViewer.PDFView != null && pdfViewer.PDFView.Document != null)
|
|
if (pdfViewer.PDFView != null && pdfViewer.PDFView.Document != null)
|
|
{
|
|
{
|
|
- string oldFilePath = pdfViewer.PDFView.Document.FilePath;
|
|
|
|
if (oldFilePath.ToLower() == filePath.ToLower())
|
|
if (oldFilePath.ToLower() == filePath.ToLower())
|
|
{
|
|
{
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if ((bool)CheckExistBeforeOpenFileEvent?.Invoke(new string[] { filePath, oldFilePath }))
|
|
|
|
+ {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
passwordViewer = new PDFViewControl();
|
|
passwordViewer = new PDFViewControl();
|
|
passwordViewer.PDFView.InitDocument(filePath);
|
|
passwordViewer.PDFView.InitDocument(filePath);
|
|
if (passwordViewer.PDFView.Document == null)
|
|
if (passwordViewer.PDFView.Document == null)
|
|
@@ -265,7 +270,7 @@ namespace PDFViewer_new
|
|
else
|
|
else
|
|
{
|
|
{
|
|
pdfViewer = passwordViewer;
|
|
pdfViewer = passwordViewer;
|
|
- LoadDocument();
|
|
|
|
|
|
+ FileChangeEvent?.Invoke(null, EventArgs.Empty);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -301,7 +306,7 @@ namespace PDFViewer_new
|
|
}
|
|
}
|
|
else if (currentMode == "Form")
|
|
else if (currentMode == "Form")
|
|
{
|
|
{
|
|
- formControl.ClearViewerControl();
|
|
|
|
|
|
+ formControl.ClearViewerControl();
|
|
formControl.UnloadEvent();
|
|
formControl.UnloadEvent();
|
|
formControl.ClearViewerControl();
|
|
formControl.ClearViewerControl();
|
|
formControl.IsActive = false;
|
|
formControl.IsActive = false;
|
|
@@ -311,8 +316,12 @@ namespace PDFViewer_new
|
|
contentEditControl.ClearViewerControl();
|
|
contentEditControl.ClearViewerControl();
|
|
contentEditControl.IsActive = false;
|
|
contentEditControl.IsActive = false;
|
|
}
|
|
}
|
|
|
|
+ else if (currentMode == "Docs Editor")
|
|
|
|
+ {
|
|
|
|
+ pageEditControl.ExitPageEdit -= PageEditControl_ExitPageEdit;
|
|
|
|
+ }
|
|
|
|
|
|
- if ((string)item.Content == "Viewer")
|
|
|
|
|
|
+ if (item.Content as string == "Viewer")
|
|
{
|
|
{
|
|
regularViewerControl.IsActive = true;
|
|
regularViewerControl.IsActive = true;
|
|
if (regularViewerControl.PdfViewControl != null && regularViewerControl.PdfViewControl.PDFView != null)
|
|
if (regularViewerControl.PdfViewControl != null && regularViewerControl.PdfViewControl.PDFView != null)
|
|
@@ -327,7 +336,7 @@ namespace PDFViewer_new
|
|
regularViewerControl.SetDisplaySettingsControl(displaySettingsControl);
|
|
regularViewerControl.SetDisplaySettingsControl(displaySettingsControl);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- else if ((string)item.Content == "Annotation")
|
|
|
|
|
|
+ else if (item.Content as string == "Annotation")
|
|
{
|
|
{
|
|
annotationControl.IsActive = true;
|
|
annotationControl.IsActive = true;
|
|
annotationControl.SetToolBarContainerVisibility(Visibility.Visible);
|
|
annotationControl.SetToolBarContainerVisibility(Visibility.Visible);
|
|
@@ -346,7 +355,7 @@ namespace PDFViewer_new
|
|
annotationControl.SetDisplaySettingsControl(displaySettingsControl);
|
|
annotationControl.SetDisplaySettingsControl(displaySettingsControl);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- else if ((string)item.Content == "Form")
|
|
|
|
|
|
+ else if (item.Content as string == "Form")
|
|
{
|
|
{
|
|
formControl.IsActive = true;
|
|
formControl.IsActive = true;
|
|
formControl.SetToolBarContainerVisibility(Visibility.Visible);
|
|
formControl.SetToolBarContainerVisibility(Visibility.Visible);
|
|
@@ -365,7 +374,7 @@ namespace PDFViewer_new
|
|
formControl.SetDisplaySettingsControl(displaySettingsControl);
|
|
formControl.SetDisplaySettingsControl(displaySettingsControl);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- else if ((string)item.Content == "Content Editor")
|
|
|
|
|
|
+ else if (item.Content as string == "Content Editor")
|
|
{
|
|
{
|
|
contentEditControl.IsActive = true;
|
|
contentEditControl.IsActive = true;
|
|
if (contentEditControl.pdfContentEditControl != null && contentEditControl.PdfViewControl.PDFView != null)
|
|
if (contentEditControl.pdfContentEditControl != null && contentEditControl.PdfViewControl.PDFView != null)
|
|
@@ -375,9 +384,8 @@ namespace PDFViewer_new
|
|
pdfViewer.PDFView?.SetMouseMode(MouseModes.PDFEdit);
|
|
pdfViewer.PDFView?.SetMouseMode(MouseModes.PDFEdit);
|
|
pdfViewer.PDFView?.ReloadDocument();
|
|
pdfViewer.PDFView?.ReloadDocument();
|
|
|
|
|
|
- //pdfViewer.PDFView.PDFEditActiveHandler += PDFView_PDFEditActiveHandler;
|
|
|
|
pdfViewer.PDFView?.SetSplitMode(SplitMode.None);
|
|
pdfViewer.PDFView?.SetSplitMode(SplitMode.None);
|
|
-
|
|
|
|
|
|
+
|
|
PDFGrid.Child = contentEditControl;
|
|
PDFGrid.Child = contentEditControl;
|
|
contentEditControl.PdfViewControl.PDFView.SetMouseMode(MouseModes.PDFEdit);
|
|
contentEditControl.PdfViewControl.PDFView.SetMouseMode(MouseModes.PDFEdit);
|
|
contentEditControl.PdfViewControl = pdfViewer;
|
|
contentEditControl.PdfViewControl = pdfViewer;
|
|
@@ -385,13 +393,23 @@ namespace PDFViewer_new
|
|
contentEditControl.OnCanSaveChanged -= FormControlOnCanSaveChanged;
|
|
contentEditControl.OnCanSaveChanged -= FormControlOnCanSaveChanged;
|
|
contentEditControl.OnCanSaveChanged += FormControlOnCanSaveChanged;
|
|
contentEditControl.OnCanSaveChanged += FormControlOnCanSaveChanged;
|
|
contentEditControl.SetBOTAContainer(botaBarControl);
|
|
contentEditControl.SetBOTAContainer(botaBarControl);
|
|
-
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- currentMode = (string)item.Content;
|
|
|
|
|
|
+ else if (item.Content as string == "Docs Editor")
|
|
|
|
+ {
|
|
|
|
+ pageEditControl.PDFViewControl = pdfViewer;
|
|
|
|
+ pageEditControl.ExitPageEdit += PageEditControl_ExitPageEdit;
|
|
|
|
+ PDFGrid.Child = pageEditControl;
|
|
|
|
+ }
|
|
|
|
+ currentMode = item.Content as string;
|
|
RightToolPanelButtonIsChecked = false;
|
|
RightToolPanelButtonIsChecked = false;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private void PageEditControl_ExitPageEdit(object sender, EventArgs e)
|
|
|
|
+ {
|
|
|
|
+ ModeComboBox.SelectedIndex = 0;
|
|
|
|
+ }
|
|
|
|
+
|
|
private void PageInfoBtn_Click(object sender, RoutedEventArgs e)
|
|
private void PageInfoBtn_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
{
|
|
PasswordUI.Visibility = Visibility.Collapsed;
|
|
PasswordUI.Visibility = Visibility.Collapsed;
|
|
@@ -401,8 +419,7 @@ namespace PDFViewer_new
|
|
}
|
|
}
|
|
|
|
|
|
private void ViewSettingBtn_Click(object sender, RoutedEventArgs e)
|
|
private void ViewSettingBtn_Click(object sender, RoutedEventArgs e)
|
|
- {
|
|
|
|
- //ShowViewSettings();
|
|
|
|
|
|
+ {
|
|
panelState.RightPanel =
|
|
panelState.RightPanel =
|
|
((sender as ToggleButton).IsChecked == true) ?
|
|
((sender as ToggleButton).IsChecked == true) ?
|
|
PanelState.RightPanelState.ViewSettings : PanelState.RightPanelState.None;
|
|
PanelState.RightPanelState.ViewSettings : PanelState.RightPanelState.None;
|
|
@@ -469,7 +486,7 @@ namespace PDFViewer_new
|
|
/// <summary>
|
|
/// <summary>
|
|
/// Save the file in the current path.
|
|
/// Save the file in the current path.
|
|
/// </summary>
|
|
/// </summary>
|
|
- private void SaveFile()
|
|
|
|
|
|
+ public void SaveFile()
|
|
{
|
|
{
|
|
if (pdfViewer != null && pdfViewer.PDFView != null && pdfViewer.PDFView.Document != null)
|
|
if (pdfViewer != null && pdfViewer.PDFView != null && pdfViewer.PDFView.Document != null)
|
|
{
|
|
{
|
|
@@ -509,6 +526,14 @@ namespace PDFViewer_new
|
|
{
|
|
{
|
|
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
|
|
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ internal void SetPDFViewer(PDFViewControl newPdfViewer)
|
|
|
|
+ {
|
|
|
|
+ if (newPdfViewer != null)
|
|
|
|
+ {
|
|
|
|
+ pdfViewer = newPdfViewer;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|