Explorar el Código

水印-delete

liyijie hace 2 años
padre
commit
15b749ebae

+ 13 - 1
PDF Office/ViewModels/EditTools/Watermark/WatermarkContentViewModel.cs

@@ -1,4 +1,5 @@
 using ComPDFKitViewer.PdfViewer;
+using PDF_Office.CustomControl;
 using PDF_Office.EventAggregators;
 using PDF_Office.Model;
 using Prism.Commands;
@@ -81,6 +82,8 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
 
         public DelegateCommand CloseEditToolCommand { get; set; }
 
+        public DelegateCommand DeleteWatermarkCommand { get; set; }
+
         public DelegateCommand ConfirmEditToolCommand { get; set; }
 
         public DelegateCommand<string> EnterSelectedContentCommand { get; set; }
@@ -95,7 +98,7 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             CloseEditToolCommand = new DelegateCommand(CloseEditTool);
             ConfirmEditToolCommand = new DelegateCommand(ConfirmEditTool);
             EnterSelectedContentCommand = new DelegateCommand<string>(EnterSelectedContent);
-
+            DeleteWatermarkCommand = new DelegateCommand(DeleteWatermark);
             eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Subscribe(EnterTemplateListOrCreate);
             eventAggregator.GetEvent<SetCurrentCreateModEvent>().Subscribe(SetCurrentCreateMod);
             eventAggregator.GetEvent<SetCurrentTemplateListModEvent>().Subscribe(SetCurrentTemplateListMod);
@@ -173,6 +176,15 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             WatermarkDocumentVisible = Visibility.Visible;
         }
 
+        private void DeleteWatermark() {
+
+            AlertsMessage alertsMessage = new AlertsMessage();
+            alertsMessage.ShowDialog("", "请输入有效范围", "OK");
+            PDFViewer.Document.DeleteWatermarks();
+            PDFViewer.UndoManager.CanSave = true;
+            this.eventAggregator.GetEvent<CloseEditToolEvent>().Publish();
+        }
+
         public void OnNavigatedTo(NavigationContext navigationContext)
         {
             navigationContext.Parameters.TryGetValue<ViewContentViewModel>(ParameterNames.ViewContentViewModel, out viewContentViewModel);

+ 1 - 1
PDF Office/ViewModels/EditTools/Watermark/WatermarkCreateFileContentViewModel.cs

@@ -276,7 +276,7 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             InitList();
             InitWatermarkInfo();
             InitLocationButtonMatrix();
-            eventAggregator.GetEvent<ConfirmEditToolsWatermarkEvent>().Subscribe(ConfirmEditToolsWatermark);
+            //eventAggregator.GetEvent<ConfirmEditToolsWatermarkEvent>().Subscribe(ConfirmEditToolsWatermark);
             eventAggregator.GetEvent<SaveWatermarkTemplateEvent>().Subscribe(SaveWatermarkTemplate);
         }
 

+ 1 - 1
PDF Office/ViewModels/EditTools/Watermark/WatermarkCreateTextContentViewModel.cs

@@ -369,7 +369,7 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             InitList();
             InitWatermarkInfo();
             InitLocationButtonMatrix();
-            eventAggregator.GetEvent<ConfirmEditToolsWatermarkEvent>().Subscribe(ConfirmEditToolsWatermark);
+            //eventAggregator.GetEvent<ConfirmEditToolsWatermarkEvent>().Subscribe(ConfirmEditToolsWatermark);
 
             eventAggregator.GetEvent<SaveWatermarkTemplateEvent>().Subscribe(SaveWatermarkTemplate);
         }

+ 23 - 7
PDF Office/ViewModels/EditTools/Watermark/WatermarkDocumentContentViewModel.cs

@@ -37,7 +37,7 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
         public CPDFDocument Document;
         private CPDFWatermark watermark;
         private ViewContentViewModel viewContentViewModel;
-        private CPDFBackground background;
+        private CPDFViewer pdfViewer;
         private WatermarkInfo watermarkInfo;
 
 
@@ -51,14 +51,27 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             this.eventAggregator = eventAggregator;
             eventAggregator.GetEvent<SetWatermarkEvent>().Subscribe(SetWatermark);
             ViewerRegionName = RegionNames.WatermarkViwerRegionName;
+            eventAggregator.GetEvent<ConfirmEditToolsWatermarkEvent>().Subscribe(ConfirmEditToolsWatermark);
 
         }
 
+        public void ConfirmEditToolsWatermark()
+        {
+            if (watermarkInfo != null)
+            {
+                CreateWatermark(viewContentViewModel.PDFViewer.Document);
+                viewContentViewModel.PDFViewer.ReloadDocument();
+                viewContentViewModel.PDFViewer.UndoManager.CanSave = true;
+
+                //viewContentViewModel.PDFViewer.Document.WriteToFilePath("C:\\Users\\kdanmobile\\Desktop\\888\\_.pdf");
+                this.eventAggregator.GetEvent<CloseEditToolEvent>().Publish();
+            }
+        }
+
         public void SetWatermark(WatermarkInfo watermarkInfo)
         {
             this.watermarkInfo = watermarkInfo;
-            CreateWatermark(viewContentViewModel.PDFViewer.Document);
-            viewContentViewModel.PDFViewer.ReloadDocument();
+            //CreateWatermark(viewContentViewModel.PDFViewer.Document);
             // PDFViewer.Document.PdfToImage("0-1", "C:\\Users\\kdanmobile\\Desktop\\888\\");
             viewContentViewModel.PDFViewer.Document.WriteToFilePath("C:\\Users\\kdanmobile\\Desktop\\888\\sb22222_.pdf");
             PDFViewer.InvalidChildVisual(false);
@@ -68,7 +81,8 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
         {
             if (watermarkInfo != null)
             {
-                document.DeleteWatermarks();
+                if (IsNewDoc) { document.DeleteWatermarks(); }
+
                 if (watermarkInfo.WatermarkType == C_Watermark_Type.WATERMARK_TYPE_TEXT)
                 {
                     watermark = document.InitWatermark(C_Watermark_Type.WATERMARK_TYPE_TEXT);
@@ -76,6 +90,7 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
                     watermark.SetFontName(watermarkInfo.FontName);
                     watermark.SetFontSize(watermarkInfo.TextSize);
                     watermark.SetTextRGBColor(watermarkInfo.TextColor);
+                    watermark.SetScale(1f);
                 }
                 else
                 {
@@ -99,8 +114,9 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
                 watermark.SetVerticalSpacing(watermarkInfo.VerticalSpacing);
                 if (IsNewDoc) { watermark.SetPages("0"); }
                 else { watermark.SetPages(watermarkInfo.PageRange); }
-                watermark.CreateWatermark();
-                watermark.UpdateWatermark();
+
+                Trace.WriteLine("IsCreateWatermark: "+ watermark.CreateWatermark());
+                Trace.WriteLine("IsUpdateWatermark: " + watermark.UpdateWatermark());
             }
         }
 
@@ -170,7 +186,7 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
 
         public void OnNavigatedTo(NavigationContext navigationContext)
         {
-            CPDFViewer pdfViewer;
+            
             navigationContext.Parameters.TryGetValue<CPDFViewer>(ParameterNames.PDFViewer, out pdfViewer);
 
             navigationContext.Parameters.TryGetValue<ViewContentViewModel>(ParameterNames.ViewContentViewModel, out viewContentViewModel);

+ 1 - 1
PDF Office/Views/EditTools/Watermark/WatermarkContent.xaml

@@ -32,7 +32,7 @@
                             <TextBlock Text="添加水印" VerticalAlignment="Center"></TextBlock>
                         </StackPanel>
                     </Button>
-                    <Button Style="{StaticResource InsideBarBtnStyle }" >
+                    <Button Style="{StaticResource InsideBarBtnStyle }" Command="{Binding DeleteWatermarkCommand}">
 
                         <StackPanel Orientation="Horizontal" Margin="12 0 12 0">
                             <StackPanel Margin="0,0,8,0">