|
@@ -57,6 +57,18 @@ namespace edit_ctrl_demo
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ public bool CanSave
|
|
|
+ {
|
|
|
+ get
|
|
|
+ {
|
|
|
+ if (pdfViewControl != null && pdfViewControl.PDFView != null)
|
|
|
+ {
|
|
|
+ return pdfViewControl.PDFView.UndoManager.CanSave;
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 上一次的PDF编辑对象
|
|
|
/// </summary>
|
|
@@ -153,32 +165,139 @@ namespace edit_ctrl_demo
|
|
|
|
|
|
private void PDFView_AnnotCommandHandler(object sender, AnnotCommandArgs e)
|
|
|
{
|
|
|
- if (e.PressOnSelectedText)
|
|
|
- {
|
|
|
- e.Handle = true;
|
|
|
- e.PopupMenu = new ContextMenu();
|
|
|
- e.PopupMenu.Items.Add(new MenuItem() { Header = "Copy", Command = ApplicationCommands.Copy, CommandTarget = (UIElement)sender });
|
|
|
- }
|
|
|
- else if (e.CommandTarget == TargetType.ImageSelection)
|
|
|
+ if (e != null && e.CommandType == CommandType.Context)
|
|
|
{
|
|
|
- if (pdfViewControl != null && pdfViewControl.PDFView != null && pdfViewControl.PDFView.GetSelectImageCount() > 0)
|
|
|
+ if (e.PressOnSelectedText)
|
|
|
+ {
|
|
|
+ e.Handle = true;
|
|
|
+ e.PopupMenu = new ContextMenu();
|
|
|
+ e.PopupMenu.Items.Add(new MenuItem() { Header = "Copy", Command = ApplicationCommands.Copy, CommandTarget = (UIElement)sender });
|
|
|
+ }
|
|
|
+ else if (e.CommandTarget == TargetType.ImageSelection)
|
|
|
+ {
|
|
|
+ if (pdfViewControl != null && pdfViewControl.PDFView != null && pdfViewControl.PDFView.GetSelectImageCount() > 0)
|
|
|
+ {
|
|
|
+ e.Handle = true;
|
|
|
+ e.PopupMenu = new ContextMenu();
|
|
|
+
|
|
|
+ MenuItem imageCopyMenu = new MenuItem();
|
|
|
+ imageCopyMenu = new MenuItem();
|
|
|
+ imageCopyMenu.Header = "Copy Images";
|
|
|
+ WeakEventManager<MenuItem, RoutedEventArgs>.AddHandler(imageCopyMenu, "Click", CopyImage_Click);
|
|
|
+ imageCopyMenu.CommandParameter = e;
|
|
|
+ e.PopupMenu.Items.Add(imageCopyMenu);
|
|
|
+
|
|
|
+ MenuItem imageExtraMenu = new MenuItem();
|
|
|
+ imageExtraMenu = new MenuItem();
|
|
|
+ imageExtraMenu.Header = "Extract Images";
|
|
|
+ WeakEventManager<MenuItem, RoutedEventArgs>.AddHandler(imageExtraMenu, "Click", ExtraImage_Click);
|
|
|
+ imageExtraMenu.CommandParameter = e;
|
|
|
+ e.PopupMenu.Items.Add(imageExtraMenu);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
{
|
|
|
e.Handle = true;
|
|
|
e.PopupMenu = new ContextMenu();
|
|
|
|
|
|
- MenuItem imageCopyMenu = new MenuItem();
|
|
|
- imageCopyMenu = new MenuItem();
|
|
|
- imageCopyMenu.Header = "Copy Images";
|
|
|
- WeakEventManager<MenuItem, RoutedEventArgs>.AddHandler(imageCopyMenu, "Click", CopyImage_Click);
|
|
|
- imageCopyMenu.CommandParameter = e;
|
|
|
- e.PopupMenu.Items.Add(imageCopyMenu);
|
|
|
-
|
|
|
- MenuItem imageExtraMenu = new MenuItem();
|
|
|
- imageExtraMenu = new MenuItem();
|
|
|
- imageExtraMenu.Header = "Extract Images";
|
|
|
- WeakEventManager<MenuItem, RoutedEventArgs>.AddHandler(imageExtraMenu, "Click", ExtraImage_Click);
|
|
|
- imageExtraMenu.CommandParameter = e;
|
|
|
- e.PopupMenu.Items.Add(imageExtraMenu);
|
|
|
+ MenuItem fitWidthMenu = new MenuItem();
|
|
|
+ fitWidthMenu.Header = "Fit Width";
|
|
|
+ fitWidthMenu.Click += (o, p) =>
|
|
|
+ {
|
|
|
+ if (pdfViewControl != null)
|
|
|
+ {
|
|
|
+ pdfViewControl.PDFView?.ChangeFitMode(FitMode.FitWidth);
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ e.PopupMenu.Items.Add(fitWidthMenu);
|
|
|
+
|
|
|
+ MenuItem fitSizeMenu = new MenuItem();
|
|
|
+ fitSizeMenu.Header = "Actual Size";
|
|
|
+ fitSizeMenu.Click += (o, p) =>
|
|
|
+ {
|
|
|
+ if (pdfViewControl != null)
|
|
|
+ {
|
|
|
+ pdfViewControl.PDFView?.ChangeFitMode(FitMode.FitSize);
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ e.PopupMenu.Items.Add(fitSizeMenu);
|
|
|
+
|
|
|
+ MenuItem zoomInMenu = new MenuItem();
|
|
|
+ zoomInMenu.Header = "Zoom In";
|
|
|
+ zoomInMenu.Click += (o, p) =>
|
|
|
+ {
|
|
|
+ if (pdfViewControl != null)
|
|
|
+ {
|
|
|
+ double newZoom = CheckZoomLevel(pdfViewControl.PDFView.ZoomFactor - 0.01, false);
|
|
|
+ pdfViewControl.PDFView?.Zoom(newZoom);
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ e.PopupMenu.Items.Add(zoomInMenu);
|
|
|
+
|
|
|
+ MenuItem zoomOutMenu = new MenuItem();
|
|
|
+ zoomOutMenu.Header = "Zoom Out";
|
|
|
+ zoomOutMenu.Click += (o, p) =>
|
|
|
+ {
|
|
|
+ if (pdfViewControl != null)
|
|
|
+ {
|
|
|
+ double newZoom = CheckZoomLevel(pdfViewControl.PDFView.ZoomFactor + 0.01, true);
|
|
|
+ pdfViewControl.PDFView?.Zoom(newZoom);
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ e.PopupMenu.Items.Add(zoomOutMenu);
|
|
|
+ e.PopupMenu.Items.Add(new Separator());
|
|
|
+
|
|
|
+ MenuItem singleView = new MenuItem();
|
|
|
+ singleView.Header = "Single Page";
|
|
|
+ singleView.Click += (o, p) =>
|
|
|
+ {
|
|
|
+ if (pdfViewControl != null)
|
|
|
+ {
|
|
|
+ pdfViewControl.PDFView?.ChangeViewMode(ViewMode.Single);
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ e.PopupMenu.Items.Add(singleView);
|
|
|
+
|
|
|
+ MenuItem singleContinuousView = new MenuItem();
|
|
|
+ singleContinuousView.Header = "Single Continuous Page";
|
|
|
+ singleContinuousView.Click += (o, p) =>
|
|
|
+ {
|
|
|
+ if (pdfViewControl != null)
|
|
|
+ {
|
|
|
+ pdfViewControl.PDFView?.ChangeViewMode(ViewMode.SingleContinuous);
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ e.PopupMenu.Items.Add(singleContinuousView);
|
|
|
+
|
|
|
+ MenuItem doubleView = new MenuItem();
|
|
|
+ doubleView.Header = "Double Page";
|
|
|
+ doubleView.Click += (o, p) =>
|
|
|
+ {
|
|
|
+ if (pdfViewControl != null)
|
|
|
+ {
|
|
|
+ pdfViewControl.PDFView?.ChangeViewMode(ViewMode.Double);
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ e.PopupMenu.Items.Add(doubleView);
|
|
|
+
|
|
|
+ MenuItem doubleContinuousView = new MenuItem();
|
|
|
+ doubleContinuousView.Header = "Double Continuous Page";
|
|
|
+ doubleContinuousView.Click += (o, p) =>
|
|
|
+ {
|
|
|
+ if (pdfViewControl != null)
|
|
|
+ {
|
|
|
+ pdfViewControl.PDFView?.ChangeViewMode(ViewMode.DoubleContinuous);
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ e.PopupMenu.Items.Add(doubleContinuousView);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -299,6 +418,7 @@ namespace edit_ctrl_demo
|
|
|
{
|
|
|
PDFEditEvent tempEvent = lastPDFEditEvent;
|
|
|
lastPDFEditEvent = e;
|
|
|
+ ViewSettingBtn.IsChecked = false;
|
|
|
if (e == null)
|
|
|
{
|
|
|
PropertyContainer.Child = null;
|
|
@@ -706,13 +826,18 @@ namespace edit_ctrl_demo
|
|
|
{
|
|
|
ClearPDFEditState(senderBtn);
|
|
|
senderBtn.IsChecked = false;
|
|
|
- pdfViewControl.PDFView?.SetPDFEditType(CPDFEditType.EditImage | CPDFEditType.EditText);
|
|
|
- pdfViewControl.PDFView?.SetMouseMode(MouseModes.PDFEdit);
|
|
|
- pdfViewControl.PDFView?.ReloadDocument();
|
|
|
+
|
|
|
OpenFileDialog openFileDialog = new OpenFileDialog();
|
|
|
openFileDialog.Filter = "Image Files(*.jpg;*.jpeg;*.png;*.bmp)|*.jpg;*.jpeg;*.png;*.bmp;";
|
|
|
if (openFileDialog.ShowDialog() == true)
|
|
|
{
|
|
|
+ pdfViewControl.PDFView?.ClearSelectPDFEdit();
|
|
|
+ pdfViewControl.PDFView?.SetPDFEditType(CPDFEditType.EditImage | CPDFEditType.EditText);
|
|
|
+ pdfViewControl.PDFView?.SetMouseMode(MouseModes.PDFEdit);
|
|
|
+ pdfViewControl.PDFView?.ReloadDocument();
|
|
|
+
|
|
|
+ PropertyContainer.Child = null;
|
|
|
+ PropertyContainer.Visibility = Visibility.Collapsed;
|
|
|
pdfViewControl.PDFView?.SetPDFEditCreateType(CPDFEditType.EditImage);
|
|
|
pdfViewControl.PDFView?.AddPDFEditImage(openFileDialog.FileName);
|
|
|
}
|
|
@@ -1072,6 +1197,7 @@ namespace edit_ctrl_demo
|
|
|
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
|