liyijie 2 rokov pred
rodič
commit
446b94b6a6

+ 146 - 146
PDF Office/ViewModels/Tools/ConverterBarContentViewModel.cs

@@ -27,32 +27,32 @@ namespace PDF_Office.ViewModels.Tools
 
         private string _pageIndex = "0";
 
-        /// <value>
-        /// 当前页
-        /// </value>
-        public string PageIndex
-        {
-            get { return _pageIndex; }
-            set
-            {
-                SetProperty(ref _pageIndex, value);
-                App.mainWindowViewModel.Value = int.Parse(PageIndex);
-            }
-        }
+        ///// <value>
+        ///// 当前页
+        ///// </value>
+        //public string PageIndex
+        //{
+        //    get { return _pageIndex; }
+        //    set
+        //    {
+        //        SetProperty(ref _pageIndex, value);
+        //        App.mainWindowViewModel.Value = int.Parse(PageIndex);
+        //    }
+        //}
 
-        private string _pageNumber = "0";
-        /// <value>
-        /// 总页数
-        /// </value>
-        public string PageNumber
-        {
-            get { return _pageNumber; }
-            set
-            {
-                SetProperty(ref _pageNumber, value);
-                App.mainWindowViewModel.MaxValue = int.Parse(PageNumber);
-            }
-        }
+        //private string _pageNumber = "0";
+        ///// <value>
+        ///// 总页数
+        ///// </value>
+        //public string PageNumber
+        //{
+        //    get { return _pageNumber; }
+        //    set
+        //    {
+        //        SetProperty(ref _pageNumber, value);
+        //        App.mainWindowViewModel.MaxValue = int.Parse(PageNumber);
+        //    }
+        //}
 
         public DelegateCommand<object> ToConverterCommand { get; set; }
 
@@ -127,131 +127,131 @@ namespace PDF_Office.ViewModels.Tools
                 }
             }
         }
-        private void ConverterClear() {
-            ConverterHelper.Clear();
-            App.mainWindowViewModel.IsProcessVisible = System.Windows.Visibility.Collapsed;
-        }
-        private void SetProgress(int pageIndex)
-        {
-            PageIndex = pageIndex.ToString();
-            App.mainWindowViewModel.IsProcessVisible=System.Windows.Visibility.Visible;
-            if (PageIndex == PageNumber) { App.mainWindowViewModel.IsProcessVisible = System.Windows.Visibility.Collapsed; }
-        }
+        //private void ConverterClear() {
+        //    ConverterHelper.Clear();
+        //    App.mainWindowViewModel.IsProcessVisible = System.Windows.Visibility.Collapsed;
+        //}
+        //private void SetProgress(int pageIndex)
+        //{
+        //    PageIndex = pageIndex.ToString();
+        //    App.mainWindowViewModel.IsProcessVisible=System.Windows.Visibility.Visible;
+        //    if (PageIndex == PageNumber) { App.mainWindowViewModel.IsProcessVisible = System.Windows.Visibility.Collapsed; }
+        //}
         
-        public async void OnOpened(Prism.Services.Dialogs.DialogResult e)
-        {
-            if (e.Result == Prism.Services.Dialogs.ButtonResult.Cancel) { return; }
-            bool result = false;
-            string convertType = "";
-            OnProgress GetProgress = null;
-            GetProgress += SetProgress;
-            App.mainWindowViewModel.ProcessCloseAction= ConverterClear;
-            convertType = e.Parameters.GetValue<string>(ParameterNames.ConverterType).ToString();
-            switch (convertType)
-            {
-                case "CSV":
-                    ConverterCSVDialogModel ConverterCSVModel=e.Parameters.GetValue<ConverterCSVDialogModel>(ParameterNames.ConverterTypeModel);
+        //public async void OnOpened(Prism.Services.Dialogs.DialogResult e)
+        //{
+        //    if (e.Result == Prism.Services.Dialogs.ButtonResult.Cancel) { return; }
+        //    bool result = false;
+        //    string convertType = "";
+        //    OnProgress GetProgress = null;
+        //    GetProgress += SetProgress;
+        //    App.mainWindowViewModel.ProcessCloseAction= ConverterClear;
+        //    convertType = e.Parameters.GetValue<string>(ParameterNames.ConverterType).ToString();
+        //    switch (convertType)
+        //    {
+        //        case "CSV":
+        //            ConverterCSVDialogModel ConverterCSVModel=e.Parameters.GetValue<ConverterCSVDialogModel>(ParameterNames.ConverterTypeModel);
                    
-                    if (ConverterCSVModel != null)
-                    {
-                        PageNumber = ConverterCSVModel.PageIndexLists.Count().ToString();
+        //            if (ConverterCSVModel != null)
+        //            {
+        //                PageNumber = ConverterCSVModel.PageIndexLists.Count().ToString();
                         
-                        for (int i = 0; ConverterCSVModel.PageIndexLists.Count > i; i++)
-                        {
-                            ConverterCSVModel.PageIndexLists[i] = ConverterCSVModel.PageIndexLists[i] + 1;
-                        }
-                        result = await ConverterHelper.CSVConvert(ConverterCSVModel.InputPath, ConverterCSVModel.OutputPath, GetProgress, ConverterCSVModel.PageIndexLists, ConverterCSVModel.Pawssword, ConverterCSVModel.csvOptions);
+        //                for (int i = 0; ConverterCSVModel.PageIndexLists.Count > i; i++)
+        //                {
+        //                    ConverterCSVModel.PageIndexLists[i] = ConverterCSVModel.PageIndexLists[i] + 1;
+        //                }
+        //                result = await ConverterHelper.CSVConvert(ConverterCSVModel.InputPath, ConverterCSVModel.OutputPath, GetProgress, ConverterCSVModel.PageIndexLists, ConverterCSVModel.Pawssword, ConverterCSVModel.csvOptions);
 
-                    }
-                    break;
-                case "Excel":
-                    ConverterExcelDialogModel ConverterExcelModel = e.Parameters.GetValue<ConverterExcelDialogModel>(ParameterNames.ConverterTypeModel);
-                    if (ConverterExcelModel != null)
-                    {
-                        PageNumber = ConverterExcelModel.PageIndexLists.Count().ToString();
-                        for (int i = 0; ConverterExcelModel.PageIndexLists.Count > i; i++)
-                        {
-                            ConverterExcelModel.PageIndexLists[i] = ConverterExcelModel.PageIndexLists[i] + 1;
-                        }
-                        result = await ConverterHelper.ExcelConvert(ConverterExcelModel.InputPath, ConverterExcelModel.OutputPath, GetProgress, ConverterExcelModel.PageIndexLists, ConverterExcelModel.Pawssword, ConverterExcelModel.excelOptions);
-                    }
-                    break;
-                case "HTML":
-                    ConverterHTMLDialogModel ConverterHTMLModel = e.Parameters.GetValue<ConverterHTMLDialogModel>(ParameterNames.ConverterTypeModel);
-                    if (ConverterHTMLModel != null)
-                    {
-                        PageNumber = ConverterHTMLModel.PageIndexLists.Count().ToString();
-                        for (int i = 0; ConverterHTMLModel.PageIndexLists.Count > i; i++)
-                        {
-                            ConverterHTMLModel.PageIndexLists[i] = ConverterHTMLModel.PageIndexLists[i] + 1;
-                        }
-                        result = await ConverterHelper.HTMLConvert(ConverterHTMLModel.InputPath, ConverterHTMLModel.OutputPath, GetProgress, ConverterHTMLModel.PageIndexLists, ConverterHTMLModel.Pawssword, ConverterHTMLModel.htmlOptions);
-                    }
-                    break;
-                case "Img":
-                    ConverterImgDialogModel ConverterImgModel = e.Parameters.GetValue<ConverterImgDialogModel>(ParameterNames.ConverterTypeModel);
-                    if (ConverterImgModel != null)
-                    {
-                        PageNumber = ConverterImgModel.PageIndexLists.Count().ToString();
-                        for (int i = 0; ConverterImgModel.PageIndexLists.Count > i; i++)
-                        {
-                            ConverterImgModel.PageIndexLists[i] = ConverterImgModel.PageIndexLists[i] + 1;
-                        }
-                        result = await ConverterHelper.ImgConvert(ConverterImgModel.InputPath, ConverterImgModel.OutputPath, GetProgress, ConverterImgModel.PageIndexLists, ConverterImgModel.Pawssword, ConverterImgModel.imageType, ConverterImgModel.imgOptions);
-                    }
-                    break;
-                case "PPT":
-                    ConverterPPTDialogModel ConverterPPTModel = e.Parameters.GetValue<ConverterPPTDialogModel>(ParameterNames.ConverterTypeModel);
-                    if (ConverterPPTModel != null)
-                    {
-                        PageNumber = ConverterPPTModel.PageIndexLists.Count().ToString();
-                        for (int i = 0; ConverterPPTModel.PageIndexLists.Count > i; i++)
-                        {
-                            ConverterPPTModel.PageIndexLists[i] = ConverterPPTModel.PageIndexLists[i] + 1;
-                        }
-                        result = await ConverterHelper.PPTConvert(ConverterPPTModel.InputPath, ConverterPPTModel.OutputPath, GetProgress, ConverterPPTModel.PageIndexLists, ConverterPPTModel.Pawssword, ConverterPPTModel.pPTOptions);
-                    }
-                    break;
-                case "RTF":
-                    ConverterRTFDialogModel ConverterRTFModel = e.Parameters.GetValue<ConverterRTFDialogModel>(ParameterNames.ConverterTypeModel);
-                    if (ConverterRTFModel != null)
-                    {
-                        PageNumber = ConverterRTFModel.PageIndexLists.Count().ToString();
-                        for (int i = 0; ConverterRTFModel.PageIndexLists.Count > i; i++)
-                        {
-                            ConverterRTFModel.PageIndexLists[i] = ConverterRTFModel.PageIndexLists[i] + 1;
-                        }
-                        result = await ConverterHelper.RTFConvert(ConverterRTFModel.InputPath, ConverterRTFModel.OutputPath, GetProgress, ConverterRTFModel.PageIndexLists, ConverterRTFModel.Pawssword, ConverterRTFModel.rTFOptions);
-                    }
-                    break;
-                case "Text":
-                    ConverterTextDialogModel ConverterTextModel = e.Parameters.GetValue<ConverterTextDialogModel>(ParameterNames.ConverterTypeModel);
-                    if (ConverterTextModel != null)
-                    {
-                        PageNumber = ConverterTextModel.PageIndexLists.Count().ToString();
-                        for (int i = 0; ConverterTextModel.PageIndexLists.Count > i; i++)
-                        {
-                            ConverterTextModel.PageIndexLists[i] = ConverterTextModel.PageIndexLists[i] + 1;
-                        }
-                        result = await ConverterHelper.TxtConvert(ConverterTextModel.InputPath, ConverterTextModel.OutputPath, GetProgress, ConverterTextModel.PageIndexLists, ConverterTextModel.Pawssword, ConverterTextModel.txtOptions);
-                    }
-                    break;
-                case "Word":
-                    ConverterWordDialogModel ConverterWordModel = e.Parameters.GetValue<ConverterWordDialogModel>(ParameterNames.ConverterTypeModel);
-                    if (ConverterWordModel != null)
-                    {
-                        PageNumber = ConverterWordModel.PageIndexLists.Count().ToString();
-                        for (int i = 0; ConverterWordModel.PageIndexLists.Count > i; i++)
-                        {
-                            ConverterWordModel.PageIndexLists[i] = ConverterWordModel.PageIndexLists[i] + 1;
-                        }
-                        result = await ConverterHelper.WordConvert(ConverterWordModel.InputPath, ConverterWordModel.OutputPath, GetProgress, ConverterWordModel.PageIndexLists, ConverterWordModel.Pawssword, ConverterWordModel.wordOptions);
-                    }
-                    break;
-                default:
-                    break;
-            }
-        }
+        //            }
+        //            break;
+        //        case "Excel":
+        //            ConverterExcelDialogModel ConverterExcelModel = e.Parameters.GetValue<ConverterExcelDialogModel>(ParameterNames.ConverterTypeModel);
+        //            if (ConverterExcelModel != null)
+        //            {
+        //                PageNumber = ConverterExcelModel.PageIndexLists.Count().ToString();
+        //                for (int i = 0; ConverterExcelModel.PageIndexLists.Count > i; i++)
+        //                {
+        //                    ConverterExcelModel.PageIndexLists[i] = ConverterExcelModel.PageIndexLists[i] + 1;
+        //                }
+        //                result = await ConverterHelper.ExcelConvert(ConverterExcelModel.InputPath, ConverterExcelModel.OutputPath, GetProgress, ConverterExcelModel.PageIndexLists, ConverterExcelModel.Pawssword, ConverterExcelModel.excelOptions);
+        //            }
+        //            break;
+        //        case "HTML":
+        //            ConverterHTMLDialogModel ConverterHTMLModel = e.Parameters.GetValue<ConverterHTMLDialogModel>(ParameterNames.ConverterTypeModel);
+        //            if (ConverterHTMLModel != null)
+        //            {
+        //                PageNumber = ConverterHTMLModel.PageIndexLists.Count().ToString();
+        //                for (int i = 0; ConverterHTMLModel.PageIndexLists.Count > i; i++)
+        //                {
+        //                    ConverterHTMLModel.PageIndexLists[i] = ConverterHTMLModel.PageIndexLists[i] + 1;
+        //                }
+        //                result = await ConverterHelper.HTMLConvert(ConverterHTMLModel.InputPath, ConverterHTMLModel.OutputPath, GetProgress, ConverterHTMLModel.PageIndexLists, ConverterHTMLModel.Pawssword, ConverterHTMLModel.htmlOptions);
+        //            }
+        //            break;
+        //        case "Img":
+        //            ConverterImgDialogModel ConverterImgModel = e.Parameters.GetValue<ConverterImgDialogModel>(ParameterNames.ConverterTypeModel);
+        //            if (ConverterImgModel != null)
+        //            {
+        //                PageNumber = ConverterImgModel.PageIndexLists.Count().ToString();
+        //                for (int i = 0; ConverterImgModel.PageIndexLists.Count > i; i++)
+        //                {
+        //                    ConverterImgModel.PageIndexLists[i] = ConverterImgModel.PageIndexLists[i] + 1;
+        //                }
+        //                result = await ConverterHelper.ImgConvert(ConverterImgModel.InputPath, ConverterImgModel.OutputPath, GetProgress, ConverterImgModel.PageIndexLists, ConverterImgModel.Pawssword, ConverterImgModel.imageType, ConverterImgModel.imgOptions);
+        //            }
+        //            break;
+        //        case "PPT":
+        //            ConverterPPTDialogModel ConverterPPTModel = e.Parameters.GetValue<ConverterPPTDialogModel>(ParameterNames.ConverterTypeModel);
+        //            if (ConverterPPTModel != null)
+        //            {
+        //                PageNumber = ConverterPPTModel.PageIndexLists.Count().ToString();
+        //                for (int i = 0; ConverterPPTModel.PageIndexLists.Count > i; i++)
+        //                {
+        //                    ConverterPPTModel.PageIndexLists[i] = ConverterPPTModel.PageIndexLists[i] + 1;
+        //                }
+        //                result = await ConverterHelper.PPTConvert(ConverterPPTModel.InputPath, ConverterPPTModel.OutputPath, GetProgress, ConverterPPTModel.PageIndexLists, ConverterPPTModel.Pawssword, ConverterPPTModel.pPTOptions);
+        //            }
+        //            break;
+        //        case "RTF":
+        //            ConverterRTFDialogModel ConverterRTFModel = e.Parameters.GetValue<ConverterRTFDialogModel>(ParameterNames.ConverterTypeModel);
+        //            if (ConverterRTFModel != null)
+        //            {
+        //                PageNumber = ConverterRTFModel.PageIndexLists.Count().ToString();
+        //                for (int i = 0; ConverterRTFModel.PageIndexLists.Count > i; i++)
+        //                {
+        //                    ConverterRTFModel.PageIndexLists[i] = ConverterRTFModel.PageIndexLists[i] + 1;
+        //                }
+        //                result = await ConverterHelper.RTFConvert(ConverterRTFModel.InputPath, ConverterRTFModel.OutputPath, GetProgress, ConverterRTFModel.PageIndexLists, ConverterRTFModel.Pawssword, ConverterRTFModel.rTFOptions);
+        //            }
+        //            break;
+        //        case "Text":
+        //            ConverterTextDialogModel ConverterTextModel = e.Parameters.GetValue<ConverterTextDialogModel>(ParameterNames.ConverterTypeModel);
+        //            if (ConverterTextModel != null)
+        //            {
+        //                PageNumber = ConverterTextModel.PageIndexLists.Count().ToString();
+        //                for (int i = 0; ConverterTextModel.PageIndexLists.Count > i; i++)
+        //                {
+        //                    ConverterTextModel.PageIndexLists[i] = ConverterTextModel.PageIndexLists[i] + 1;
+        //                }
+        //                result = await ConverterHelper.TxtConvert(ConverterTextModel.InputPath, ConverterTextModel.OutputPath, GetProgress, ConverterTextModel.PageIndexLists, ConverterTextModel.Pawssword, ConverterTextModel.txtOptions);
+        //            }
+        //            break;
+        //        case "Word":
+        //            ConverterWordDialogModel ConverterWordModel = e.Parameters.GetValue<ConverterWordDialogModel>(ParameterNames.ConverterTypeModel);
+        //            if (ConverterWordModel != null)
+        //            {
+        //                PageNumber = ConverterWordModel.PageIndexLists.Count().ToString();
+        //                for (int i = 0; ConverterWordModel.PageIndexLists.Count > i; i++)
+        //                {
+        //                    ConverterWordModel.PageIndexLists[i] = ConverterWordModel.PageIndexLists[i] + 1;
+        //                }
+        //                result = await ConverterHelper.WordConvert(ConverterWordModel.InputPath, ConverterWordModel.OutputPath, GetProgress, ConverterWordModel.PageIndexLists, ConverterWordModel.Pawssword, ConverterWordModel.wordOptions);
+        //            }
+        //            break;
+        //        default:
+        //            break;
+        //    }
+        //}
 
         public bool IsNavigationTarget(NavigationContext navigationContext)
         {

+ 68 - 67
PDF Office/ViewModels/Tools/ToolsBarContentViewModel.cs

@@ -34,10 +34,10 @@ namespace PDF_Office.ViewModels.Tools
 
         public IEventAggregator eventAggregator;
 
-        private IntPtr compressingIntpr = IntPtr.Zero;
+       
 
         private CPDFDocument.GetPageIndexDelegate indexDelegate = null;
-        private CPDFDocument tempDocument;
+    
 
         public string unicode = null;
 
@@ -48,32 +48,33 @@ namespace PDF_Office.ViewModels.Tools
 
         private string _pageIndex = "0";
 
-        /// <value>
-        /// 当前页
-        /// </value>
-        public string PageIndex
-        {
-            get { return _pageIndex; }
-            set
-            {
-                SetProperty(ref _pageIndex, value);
-                App.mainWindowViewModel.Value = int.Parse(PageIndex);
-            }
-        }
-
-        private string _pageNumber = "";
-        /// <value>
-        /// 总页数
-        /// </value>
-        public string PageNumber
-        {
-            get { return _pageNumber; }
-            set
-            {
-                SetProperty(ref _pageNumber, value);
-                App.mainWindowViewModel.MaxValue = int.Parse(PageNumber);
-            }
-        }
+        ///// <value>
+        ///// 当前页
+        ///// </value>
+        //public string PageIndex
+        //{
+        //    get { return _pageIndex; }
+        //    set
+        //    {
+        //        SetProperty(ref _pageIndex, value);
+        //        App.mainWindowViewModel.Value = int.Parse(PageIndex);
+        //    }
+        //}
+    //private CPDFDocument tempDocument;
+    //private IntPtr compressingIntpr = IntPtr.Zero;
+        //private string _pageNumber = "";
+        ///// <value>
+        ///// 总页数
+        ///// </value>
+        //public string PageNumber
+        //{
+        //    get { return _pageNumber; }
+        //    set
+        //    {
+        //        SetProperty(ref _pageNumber, value);
+        //        App.mainWindowViewModel.MaxValue = int.Parse(PageNumber);
+        //    }
+        //}
         public DelegateCommand CompressCommand { get; set; }
         public DelegateCommand MergeCommand { get; set; }
         public DelegateCommand SetPasswordCommand { get; set; }
@@ -115,45 +116,45 @@ namespace PDF_Office.ViewModels.Tools
             });
         }
 
-        private int GetIndex(int pageindex)
-        {
-            PageIndex = (pageindex + 1).ToString();
-            App.mainWindowViewModel.IsProcessVisible = System.Windows.Visibility.Visible;
-            if (PageIndex == PageNumber) { App.mainWindowViewModel.IsProcessVisible = System.Windows.Visibility.Collapsed; }
-            return 0;
-        }
-        private void CompressClear()
-        {
-            tempDocument.CompressFile_Cancel(compressingIntpr);
-            App.mainWindowViewModel.IsProcessVisible = System.Windows.Visibility.Collapsed;
-        }
-        public async void OnOpened(Prism.Services.Dialogs.DialogResult e)
-        {
-            if (e.Result == Prism.Services.Dialogs.ButtonResult.Cancel) { return; }
-            CPDFDocument doc = null;
-            string filepath = "";
-            string password = "";
-            int compressquality = 45;
-            doc = e.Parameters.GetValue<CPDFDocument>(ParameterNames.PDFDocument);
-            filepath = e.Parameters.GetValue<string>(ParameterNames.FilePath);
-            password = e.Parameters.GetValue<string>(ParameterNames.PassWord);
-            compressquality = e.Parameters.GetValue<int>("compressDialogModel.CompressQuality");
-            if (doc != null)
-            {
-                PageNumber = doc.PageCount.ToString();
-                CPDFDocument document = CPDFDocument.InitWithFilePath(doc.FilePath);
-                document.UnlockWithPassword(password);
-                indexDelegate += GetIndex;
-                compressingIntpr = document.CompressFile_Init(compressquality, indexDelegate);
-                //GC.KeepAlive(indexDelegate);
-                tempDocument = document;
-                Trace.WriteLine("compressDialogModel.CompressQuality" + compressquality);
-                App.mainWindowViewModel.ProcessCloseAction = CompressClear;
-                await Task.Run<bool>(() => { return document.CompressFile_Start(compressingIntpr, filepath); });
-                CommonHelper.ShowFileBrowser(filepath);
-                document.Release();
-            }
-        }
+        //private int GetIndex(int pageindex)
+        //{
+        //    PageIndex = (pageindex + 1).ToString();
+        //    App.mainWindowViewModel.IsProcessVisible = System.Windows.Visibility.Visible;
+        //    if (PageIndex == PageNumber) { App.mainWindowViewModel.IsProcessVisible = System.Windows.Visibility.Collapsed; }
+        //    return 0;
+        //}
+        //private void CompressClear()
+        //{
+        //    tempDocument.CompressFile_Cancel(compressingIntpr);
+        //    App.mainWindowViewModel.IsProcessVisible = System.Windows.Visibility.Collapsed;
+        //}
+        //public async void OnOpened(Prism.Services.Dialogs.DialogResult e)
+        //{
+        //    if (e.Result == Prism.Services.Dialogs.ButtonResult.Cancel) { return; }
+        //    CPDFDocument doc = null;
+        //    string filepath = "";
+        //    string password = "";
+        //    int compressquality = 45;
+        //    doc = e.Parameters.GetValue<CPDFDocument>(ParameterNames.PDFDocument);
+        //    filepath = e.Parameters.GetValue<string>(ParameterNames.FilePath);
+        //    password = e.Parameters.GetValue<string>(ParameterNames.PassWord);
+        //    compressquality = e.Parameters.GetValue<int>("compressDialogModel.CompressQuality");
+        //    if (doc != null)
+        //    {
+        //        PageNumber = doc.PageCount.ToString();
+        //        CPDFDocument document = CPDFDocument.InitWithFilePath(doc.FilePath);
+        //        document.UnlockWithPassword(password);
+        //        indexDelegate += GetIndex;
+        //        compressingIntpr = document.CompressFile_Init(compressquality, indexDelegate);
+        //        //GC.KeepAlive(indexDelegate);
+        //        tempDocument = document;
+        //        Trace.WriteLine("compressDialogModel.CompressQuality" + compressquality);
+        //        App.mainWindowViewModel.ProcessCloseAction = CompressClear;
+        //        await Task.Run<bool>(() => { return document.CompressFile_Start(compressingIntpr, filepath); });
+        //        CommonHelper.ShowFileBrowser(filepath);
+        //        document.Release();
+        //    }
+        //}
         private void MergeDialog()
         {
             DialogParameters value = new DialogParameters();

+ 125 - 11
PDF Office/ViewModels/ViewContentViewModel.cs

@@ -21,7 +21,11 @@ using ComPDFKit.PDFDocument;
 using PDFSettings.Settings;
 using PDF_Office.Model.Dialog.ToolsDialogs.SaftyDialogs;
 using static PDF_Office.Model.Dialog.ToolsDialogs.SaftyDialogs.SetPasswordDialogModel;
-
+using PDF_Office.Model.Dialog.ToolsDialogs;
+using DryIoc;
+using PDF_Office.Model.Dialog.ConverterDialogs;
+using static PDF_Office.Model.Dialog.ToolsDialogs.SaftyDialogs.DeleteSafetySettintgsModel;
+
 namespace PDF_Office.ViewModels
 {
     public class ViewContentViewModel : BindableBase, INavigationAware
@@ -593,11 +597,64 @@ namespace PDF_Office.ViewModels
         private void convert(string obj)
         {
            if(!string.IsNullOrEmpty(obj))
-            {
-                switch (obj)
-                {
-                    default:
-                        break;
+            {
+                DialogParameters value = new DialogParameters();
+                value.Add(ParameterNames.PDFViewer, PDFViewer);
+                switch (obj)
+                {
+                    case "Word":
+                        dialogs.ShowDialog(DialogNames.ConverterWordDialog, value, e =>
+                        {
+                            ConverterDialogsModel converterDialogsModel = new ConverterDialogsModel();
+                            converterDialogsModel.OnOpened((DialogResult)e);
+                        });
+                        break;
+                    case "Excel":
+                        dialogs.ShowDialog(DialogNames.ConverterExcelDialog, value, e => {
+                            ConverterDialogsModel converterDialogsModel = new ConverterDialogsModel();
+                            converterDialogsModel.OnOpened((DialogResult)e);
+                        });
+                        break;
+                    case "PPT":
+                        dialogs.ShowDialog(DialogNames.ConverterPPTDialog, value, e => {
+                            ConverterDialogsModel converterDialogsModel = new ConverterDialogsModel();
+                            converterDialogsModel.OnOpened((DialogResult)e);
+                        });
+                        break;
+                    case "RTF":
+                        dialogs.ShowDialog(DialogNames.ConverterRTFDialog, value, e => {
+                            ConverterDialogsModel converterDialogsModel = new ConverterDialogsModel();
+                            converterDialogsModel.OnOpened((DialogResult)e);
+                        });
+                        break;
+                    case "CSV":
+                        dialogs.ShowDialog(DialogNames.ConverterCSVDialog, value, e => {
+                            ConverterDialogsModel converterDialogsModel = new ConverterDialogsModel();
+                            converterDialogsModel.OnOpened((DialogResult)e);
+                        });
+                        break;
+                    case "HTML":
+                        dialogs.ShowDialog(DialogNames.ConverterHTMLDialog, value, e => {
+                            ConverterDialogsModel converterDialogsModel = new ConverterDialogsModel();
+                            converterDialogsModel.OnOpened((DialogResult)e);
+                        });
+                        break;
+                    case "Text":
+                        dialogs.ShowDialog(DialogNames.ConverterTextDialog, value, e => {
+                            ConverterDialogsModel converterDialogsModel = new ConverterDialogsModel();
+                            converterDialogsModel.OnOpened((DialogResult)e);
+                        });
+                        break;
+                    case "Image":
+                        dialogs.ShowDialog(DialogNames.ConverterImgDialog, value, e => {
+                            ConverterDialogsModel converterDialogsModel = new ConverterDialogsModel();
+                            converterDialogsModel.OnOpened((DialogResult)e);
+                        });
+                        break;
+                    default:
+                        break;
+
+
                 }
             }
         }
@@ -607,7 +664,27 @@ namespace PDF_Office.ViewModels
         /// </summary>
         private void decrypt()
         {
-            
+            if (!PDFViewer.Document.IsEncrypted)
+            {
+                MessageBoxEx.Show("No security settings available ");
+            }
+            else
+            {
+                VerifyPasswordResult result = SecurityHelper.VerifyPasswordByPasswordKind(PDFViewer.Document, EnumPasswordKind.StatusPermissionsPassword, dialogs);
+                if (result.IsDiscryptied)
+                {
+                    if (result.Password != null)
+                    {
+                        string filePath = PDFViewer.Document.FilePath;
+                        PDFViewer.Document.Release();
+                        PDFViewer.InitDocument(filePath);
+                        PDFViewer.Document.UnlockWithPassword(result.Password);
+                    }
+                    DialogParameters value = new DialogParameters();
+                    value.Add(ParameterNames.PDFDocument, PDFViewer.Document);
+                    dialogs.ShowDialog(DialogNames.DeleteSafetySettingsDialog, value, e => { });
+                }
+            }
         }
 
         /// <summary>
@@ -615,7 +692,36 @@ namespace PDF_Office.ViewModels
         /// </summary>
         private void encrypt()
         {
-            
+            if (!this.SecurityInfo.IsPasswordChanged)
+            {
+                VerifyPasswordResult result = SecurityHelper.VerifyPasswordByPasswordKind(PDFViewer.Document, EnumPasswordKind.StatusPermissionsPassword, dialogs);
+                if (result.IsDiscryptied)
+                {
+                    if (result.Password != null)
+                    {
+                        string filePath = PDFViewer.Document.FilePath;
+                        PDFViewer.Document.Release();
+                        PDFViewer.InitDocument(filePath);
+                        PDFViewer.Document.UnlockWithPassword(result.Password);
+                    }
+                }
+            }
+
+            DialogParameters value = new DialogParameters();
+            value.Add(ParameterNames.PDFViewer, this.PDFViewer);
+            value.Add(ParameterNames.ViewContentViewModel, this);
+            dialogs.ShowDialog(DialogNames.SetPasswordDialog, value, e =>
+            {
+                if (e.Result == ButtonResult.OK)
+                {
+                    SecurityHelper.IsPasswordChanged = true;
+                    if (this.SecurityInfo.IsPasswordChanged)
+                    {
+                        this.PDFViewer.UndoManager.CanSave = true;
+                    }
+                    this.events.GetEvent<ShowTipEvent>().Publish(new ShowTipEventArgs() { enumTipKind = EnumTipKind.StatusSetPasswordSuccessfully, Unicode = unicode });
+                }
+            });
         }
 
         /// <summary>
@@ -623,15 +729,23 @@ namespace PDF_Office.ViewModels
         /// </summary>
         private void mergeFile()
         {
-            
+            DialogParameters value = new DialogParameters();
+            value.Add(ParameterNames.PDFViewer, PDFViewer);
+            dialogs.ShowDialog(DialogNames.MergeDialog, value, e => { });
         }
 
         /// <summary>
         /// 压缩
         /// </summary>
         private void compress()
-        {
-          
+        {
+            DialogParameters value = new DialogParameters();
+            value.Add(ParameterNames.PDFViewer, PDFViewer);
+            dialogs.ShowDialog(DialogNames.CompressDialog, value, e =>
+            {
+                CompressDialogModel compressDialogModel = new CompressDialogModel();
+                compressDialogModel.OnOpened((Prism.Services.Dialogs.DialogResult)e);
+            });
         }
 
         /// <summary>