Переглянути джерело

compdfkit(win) - 裁剪模式

weixiangjie 1 рік тому
батько
коміт
9072529225

+ 3 - 3
Demo/Examples/Compdfkit_Tools/Edit/ContentEditCOntrol/ContentEditControl.xaml.cs

@@ -835,7 +835,7 @@ namespace Compdfkit_Tools.PDFControl
             {
                 if (imageArea != null)
                 {
-                    
+                    PdfViewControl.PDFViewTool.SetCropMode(!PdfViewControl.PDFViewTool.GetIsCropMode());
                 }
             };
             menu.Items.Add(cropMenu);
@@ -1137,7 +1137,7 @@ namespace Compdfkit_Tools.PDFControl
                         pdfContentEditControl.SetPDFTextEditData((TextEditParam)pDFEditParam, true);
                         PropertyContainer.Child = pdfContentEditControl;
                     }
-                    panelState.RightPanel = PanelState.RightPanelState.PropertyPanel;
+                    //panelState.RightPanel = PanelState.RightPanelState.PropertyPanel;
                 }
             }
         }
@@ -1195,7 +1195,7 @@ namespace Compdfkit_Tools.PDFControl
                     pdfContentEditControl.SetPDFImageEditData((ImageEditParam)pDFEditParam);
                     PropertyContainer.Child = pdfContentEditControl;
                 }
-                panelState.RightPanel = PanelState.RightPanelState.PropertyPanel;
+                //panelState.RightPanel = PanelState.RightPanelState.PropertyPanel;
             }
         }
 

+ 30 - 0
Demo/Examples/Compdfkit_Tools/Edit/PDFImageEdit/PDFImageEditControl/PDFImageEditControl.xaml.cs

@@ -19,6 +19,8 @@ using System.Windows.Controls.Primitives;
 using System.Windows.Input;
 using System.Windows.Media;
 using System.Windows.Media.Imaging;
+using ComPDFKit.Tool.DrawTool;
+using ComPDFKitViewer.Helper;
 
 namespace Compdfkit_Tools.Edit
 {
@@ -41,6 +43,33 @@ namespace Compdfkit_Tools.Edit
             FlipUI.FlipChanged -= FlipUI_FlipChanged;
             RotateUI.RotationChanged += RotateUI_RotationChanged;
             FlipUI.FlipChanged += FlipUI_FlipChanged;
+            ToolView.SelectedDataChanged -= ToolView_SelectedDataChanged;
+            ToolView.SelectedDataChanged += ToolView_SelectedDataChanged;
+        }
+
+        private void ToolView_SelectedDataChanged(object sender, SelectedAnnotData e)
+        {
+            if (ToolView.GetIsCropMode())
+            {
+                GetImageArea(out CPDFEditImageArea imageArea, out CPDFPage pdfPage, out CPDFEditPage editPage);
+                SelectedRect selectedRect = ToolView.GetSelectedRectForEditAreaObject(imageArea);
+                if (selectedRect != null)
+                {
+                    Rect oldRect = DataConversionForWPF.CRectConversionForRect(imageArea.GetFrame());
+                    double currentZoom = ToolView.GetCPDFViewer().CurrentRenderFrame.ZoomFactor;
+                    Rect rect = selectedRect.GetRect();
+                    Rect maxRect = selectedRect.GetMaxRect();
+
+                    Rect pdfRect = new Rect((rect.X - maxRect.X) / currentZoom, (rect.Y - maxRect.Y) / currentZoom, rect.Width / currentZoom, rect.Height / currentZoom);
+                    pdfRect = DpiHelper.StandardRectToPDFRect(pdfRect);
+                    CRect newCRect = new CRect((float)pdfRect.Left, (float)pdfRect.Bottom, (float)pdfRect.Right, (float)pdfRect.Top);
+                    imageArea.CutWithRect(newCRect);
+                    
+                    SetImageThumb();
+                    ToolView.UpdateRender(oldRect, imageArea);
+                    editPage.EndEdit();
+                }
+            }
         }
 
         private void PDFImageEditControl_Unloaded(object sender, RoutedEventArgs e)
@@ -395,6 +424,7 @@ namespace Compdfkit_Tools.Edit
             //    EditEvent.ClipImage = true;
             //    EditEvent.UpdatePDFEditByEventArgs();
             //}
+            ToolView.SetCropMode(!ToolView.GetIsCropMode());
         }
 
         private void OpacityComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)