Ver código fonte

注释-导出

OYXH\oyxh 1 ano atrás
pai
commit
f9646341c9

+ 27 - 4
PDF Office/ViewModels/PropertyPanel/AnnotPanel/SnapshotEditMenuViewModel.cs

@@ -33,6 +33,7 @@ using System.Windows.Input;
 using Microsoft.Office.Interop.Excel;
 using static PDF_Master.Model.Dialog.ToolsDialogs.SaftyDialogs.DeleteSafetySettintgsModel;
 using Prism.Services.Dialogs;
+using ComPDFKit.PDFDocument;
 
 namespace PDF_Master.ViewModels.PropertyPanel.AnnotPanel
 {
@@ -196,11 +197,33 @@ namespace PDF_Master.ViewModels.PropertyPanel.AnnotPanel
                         else if (dlg.SafeFileName.ToLower().EndsWith(".pdf"))
                         {
                             //Stream saveStream = dlg.OpenFile();
-
-                            string imagePath = SaveImage(saveBitmap);
-                            if (CreateFile(imagePath))
+                            //方法一
+                            //string imagePath = SaveImage(saveBitmap);
+                            //if (CreateFile(imagePath))
+                            //{
+                            //    bool result = saveToPDFViewer.Document.WriteToFilePath(dlg.FileName);
+                            //}
+                            try
+                            {
+                                saveToPDFViewer = new CPDFViewer();
+                                saveToPDFViewer.CreateDocument();
+                                if (saveToPDFViewer.Document == null)
+                                {
+                                    AlertsMessage alertsMessage = new AlertsMessage();
+                                    alertsMessage.ShowDialog("", App.MainPageLoader.GetString("Create PDF failed"), App.ServiceLoader.GetString("Text_ok"));
+                                    return;
+                                }
+                                byte[] buffer = new byte[saveBitmap.PixelWidth * saveBitmap.PixelHeight * 4];
+                                saveBitmap.CopyPixels(buffer, saveBitmap.PixelWidth * 4, 0);
+
+                                saveToPDFViewer.Document.InsertPage(0, saveBitmap.PixelWidth, saveBitmap.PixelHeight, buffer, CPDFDocumentImageMode.CPDFDocumentImageModeScaleAspectFit);
+                                var result = saveToPDFViewer.Document.WriteToFilePath(dlg.FileName);
+                                if (result)
+                                {
+                                }
+                            }
+                            catch (Exception ex)
                             {
-                                bool result = saveToPDFViewer.Document.WriteToFilePath(dlg.FileName);
                             }
 
                             //saveStream.Dispose();

+ 33 - 16
PDF Office/ViewModels/Tools/AnnotToolContentViewModel.cs

@@ -1663,17 +1663,32 @@ namespace PDF_Master.ViewModels.Tools
                         var stampPicture = dlg.FileName;
                         if (menu.tag.ToString() == "PDF")
                         {
-                            var writeStamp = annot.GetStampDrawing();
-                            var tempDoc = new CPDFViewer();
-                            tempDoc.CreateDocument();
-                            if (tempDoc.Document == null)
-                            {
-                                AlertsMessage alertsMessage = new AlertsMessage();
-                                alertsMessage.ShowDialog("", App.MainPageLoader.GetString("Create PDF failed"), App.ServiceLoader.GetString("Text_ok"));
-                                return;
-                            }
-                            byte[] buffer;
+                            try
+                            {
+                                var writeStamp = annot.GetStampDrawing();
+                                var tempDoc = new CPDFViewer();
+                                tempDoc.CreateDocument();
+                                if (tempDoc.Document == null)
+                                {
+                                    AlertsMessage alertsMessage = new AlertsMessage();
+                                    alertsMessage.ShowDialog("", App.MainPageLoader.GetString("Create PDF failed"), App.ServiceLoader.GetString("Text_ok"));
+                                    return;
+                                }
+                                byte[] buffer = new byte[writeStamp.PixelWidth * writeStamp.PixelHeight * 4];
+                                writeStamp.CopyPixels(buffer, writeStamp.PixelWidth * 4, 0);
+
+                                tempDoc.Document.InsertPage(0, writeStamp.PixelWidth, writeStamp.PixelHeight, buffer, CPDFDocumentImageMode.CPDFDocumentImageModeScaleAspectFit);
+                                var result = tempDoc.Document.WriteToFilePath(dlg.FileName);
+                                if (result)
+                                {
+                                }
+                            }
+                            catch (Exception ex)
+                            {
+                            }
 
+                            #region
+                            //之前的方法1
                             //var encoder = new PngBitmapEncoder();
                             //encoder.Frames.Add(BitmapFrame.Create(writeStamp));
                             //using (var memoryStream = new MemoryStream())
@@ -1687,11 +1702,13 @@ namespace PDF_Master.ViewModels.Tools
                             //if (result)
                             //{
                             //}
-                            string imagePath = SaveImage(writeStamp);
-                            if (CreateFile(imagePath, tempDoc))
-                            {
-                                bool result = tempDoc.Document.WriteToFilePath(dlg.FileName);
-                            }
+                            //之前的方法2
+                            //string imagePath = SaveImage(writeStamp);
+                            //if (CreateFile(imagePath, tempDoc))
+                            //{
+                            //    bool result = tempDoc.Document.WriteToFilePath(dlg.FileName);
+                            //}
+                            #endregion 注释右键菜单事件
                         }
                         else
                         {
@@ -1703,7 +1720,7 @@ namespace PDF_Master.ViewModels.Tools
                                 encoder5.Save(stream5);
                             }
                         }
-                        System.Diagnostics.Process.Start("explorer", "/select,\"" + stampPicture + "\"");
+                        CommonHelper.ExplorerFile(dlg.FileName);
                     }
                 }
             }