|
@@ -225,8 +225,8 @@ namespace ComPDFKit.Tool
|
|
|
commandData.CurrentParam = PasteParam;
|
|
|
CommandExecutedHandler?.Invoke(this, commandData);
|
|
|
}
|
|
|
- catch (Exception ex)
|
|
|
- {
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
|
|
|
}
|
|
|
}
|
|
@@ -252,6 +252,12 @@ namespace ComPDFKit.Tool
|
|
|
{
|
|
|
e.CanExecute = true;
|
|
|
}
|
|
|
+ //Add multi status
|
|
|
+ MultiSelectedRect multiSelectedRect = CommonHelper.FindVisualChild<MultiSelectedRect>(PDFViewer.GetViewForTag(multiSelectedRectViewTag));
|
|
|
+ if (multiSelectedRect != null && multiSelectedRect.Children.Count > 0)
|
|
|
+ {
|
|
|
+ e.CanExecute = true;
|
|
|
+ }
|
|
|
break;
|
|
|
}
|
|
|
case "Paste":
|
|
@@ -465,6 +471,71 @@ namespace ComPDFKit.Tool
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ else
|
|
|
+ {
|
|
|
+ //Add multi status
|
|
|
+ MultiSelectedRect multiSelectedRect = CommonHelper.FindVisualChild<MultiSelectedRect>(PDFViewer.GetViewForTag(multiSelectedRectViewTag));
|
|
|
+ if (multiSelectedRect != null && multiSelectedRect.Children.Count > 0)
|
|
|
+ {
|
|
|
+ foreach (SelectedRect selectedRect in multiSelectedRect.Children)
|
|
|
+ {
|
|
|
+
|
|
|
+ EditAreaObject editAreaObject = GetEditAreaObjectListForRect(selectedRect);
|
|
|
+ if (editAreaObject != null)
|
|
|
+ {
|
|
|
+ PDFEditCommandData commandData = new PDFEditCommandData();
|
|
|
+ if (editAreaObject.cPDFEditArea.Type == CPDFEditType.EditText)
|
|
|
+ {
|
|
|
+ editType = CPDFEditType.EditText;
|
|
|
+ CPDFEditTextArea editTextArea = editAreaObject.cPDFEditArea as CPDFEditTextArea;
|
|
|
+ commandData.TextContent = editTextArea.SelectText;
|
|
|
+ if (!string.IsNullOrEmpty(commandData.TextContent))
|
|
|
+ {
|
|
|
+ CPDFEditPage editPage = editAreaObject.cPDFEditPage;
|
|
|
+ commandData.EditType = CPDFEditType.EditText;
|
|
|
+ commandData.EditAreaCopied = editPage.CopyEditArea(editAreaObject.cPDFEditArea);
|
|
|
+ if (commandData.EditAreaCopied)
|
|
|
+ {
|
|
|
+ List<CPDFCopyEditArea> copyList = editPage.GetCopyEditAreaList();
|
|
|
+ CPDFCopyEditArea CopyArea = copyList[copyList.Count - 1];
|
|
|
+ commandData.TextContent = CopyArea.GetCopyTextAreaContent();
|
|
|
+ commandData.CopyArea = CopyArea;
|
|
|
+ commandData.EditPage = editPage;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ try
|
|
|
+ {
|
|
|
+ Clipboard.Clear();
|
|
|
+ Clipboard.SetText(commandData.TextContent);
|
|
|
+ Clipboard.Flush();
|
|
|
+ }
|
|
|
+ catch (Exception)
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+ commandData.PDFRect = DataConversionForWPF.CRectConversionForRect(editAreaObject.cPDFEditArea.GetFrame());
|
|
|
+ lastPDFEditArgsList.Add(commandData);
|
|
|
+ }
|
|
|
+ if (editAreaObject.cPDFEditArea.Type == CPDFEditType.EditImage)
|
|
|
+ {
|
|
|
+ editType = CPDFEditType.EditImage;
|
|
|
+ CPDFEditPage editPage = editAreaObject.cPDFEditPage;
|
|
|
+ commandData.PDFRect = DataConversionForWPF.CRectConversionForRect(editAreaObject.cPDFEditArea.GetFrame());
|
|
|
+ commandData.EditAreaCopied = editPage.CopyEditArea(editAreaObject.cPDFEditArea);
|
|
|
+ commandData.EditType = CPDFEditType.EditImage;
|
|
|
+ if (commandData.EditAreaCopied)
|
|
|
+ {
|
|
|
+ List<CPDFCopyEditArea> copyList = editPage.GetCopyEditAreaList();
|
|
|
+ commandData.CopyArea = copyList[copyList.Count - 1];
|
|
|
+ commandData.EditPage = editPage;
|
|
|
+ lastPDFEditArgsList.Add(commandData);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
catch
|
|
|
{
|
|
@@ -518,6 +589,52 @@ namespace ComPDFKit.Tool
|
|
|
PDFViewer.UndoManager.AddHistory(groupHistory);
|
|
|
}
|
|
|
}
|
|
|
+ else
|
|
|
+ {
|
|
|
+ //Add multi status
|
|
|
+ MultiSelectedRect multiSelectedRect = CommonHelper.FindVisualChild<MultiSelectedRect>(PDFViewer.GetViewForTag(multiSelectedRectViewTag));
|
|
|
+ if (multiSelectedRect != null && multiSelectedRect.Children.Count > 0)
|
|
|
+ {
|
|
|
+ foreach (SelectedRect selectedRect in multiSelectedRect.Children)
|
|
|
+ {
|
|
|
+
|
|
|
+ EditAreaObject editAreaObject = GetEditAreaObjectListForRect(selectedRect);
|
|
|
+ if (editAreaObject != null)
|
|
|
+ {
|
|
|
+ GroupHistory groupHistory = new GroupHistory();
|
|
|
+ PDFEditHistory editHistory = new PDFEditHistory();
|
|
|
+ editHistory.EditPage = editAreaObject.cPDFEditPage;
|
|
|
+ editHistory.PageIndex = editAreaObject.PageIndex;
|
|
|
+ groupHistory.Histories.Add(editHistory);
|
|
|
+ if (editAreaObject.cPDFEditArea.Type == CPDFEditType.EditText)
|
|
|
+ {
|
|
|
+ editType = CPDFEditType.EditText;
|
|
|
+ CPDFEditTextArea editTextArea = editAreaObject.cPDFEditArea as CPDFEditTextArea;
|
|
|
+ string selectContent = editTextArea.SelectText;
|
|
|
+ RemoveTextBlock(editAreaObject);
|
|
|
+ PDFEditHistory deleteHistory = new PDFEditHistory();
|
|
|
+ deleteHistory.EditPage = editAreaObject.cPDFEditPage;
|
|
|
+ deleteHistory.PageIndex = editAreaObject.PageIndex;
|
|
|
+ groupHistory.Histories.Add(deleteHistory);
|
|
|
+ }
|
|
|
+ if (editAreaObject.cPDFEditArea.Type == CPDFEditType.EditImage)
|
|
|
+ {
|
|
|
+ editType = CPDFEditType.EditImage;
|
|
|
+ RemoveImageBlock(editAreaObject);
|
|
|
+ }
|
|
|
+
|
|
|
+ //After removing the data, you need to get the data again.
|
|
|
+ PDFViewer.UpdateRenderFrame();
|
|
|
+ if (PDFViewer != null && PDFViewer.UndoManager != null)
|
|
|
+ {
|
|
|
+ PDFViewer.UndoManager.AddHistory(groupHistory);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ CleanSelectedMultiRect();
|
|
|
+ OpenSelectedMulti(false);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
private void PastePDFEditData(out CPDFEditType editType, bool pasteMatchStyle = true)
|