Browse Source

ChatGTPAI-文件翻译打开

liyijie 1 year ago
parent
commit
694290dbba

+ 4 - 13
PDF Office/Helper/ChatGTPAIHelper.cs

@@ -13,6 +13,7 @@ using System.Net.Http;
 using System.Text;
 using System.Text.RegularExpressions;
 using System.Threading.Tasks;
+using System.Web;
 using static Dropbox.Api.Files.SearchMatchType;
 using static Dropbox.Api.TeamLog.EventCategory;
 
@@ -234,23 +235,13 @@ namespace PDF_Master.Helper
                     //return jobject["code"].ToObject<string>().ToLower();
                     using (var client = new WebClient())
                     {
-                        string folderPath = Path.Combine(App.CurrentPath, "DownloadFile");
-                        //有可能因为其他原因存在同名文件,导致创建文件夹失败,需要先删除同名文件
-                        if (File.Exists(folderPath))
-                        {
-                            File.Delete(folderPath);
-                        }
-                        DirectoryInfo tempfolder = new DirectoryInfo(folderPath);
-                        if (!tempfolder.Exists)
-                        {
-                            tempfolder.Create();
-                        }
+                        string folderPath = file.FullName.Remove(file.FullName.LastIndexOf("."), file.FullName.Length- file.FullName.LastIndexOf(".")) + "_aiTranslation.pdf"; ;
                         client.DownloadProgressChanged += (sender, e) =>
                         {
 
                         };
-                        client.DownloadFile(translate, folderPath + "\\" + file.Name.Replace(file.Extension,".pdf"));
-                        return folderPath + "\\" + file.Name.Replace(file.Extension, ".pdf");
+                        client.DownloadFile(translate, folderPath);
+                        return folderPath;
                     }
                     //return "200";
                 }

+ 7 - 1
PDF Office/ViewModels/Dialog/ChatGPTAIDialogs/DocumentaryTranslationDialogViewModel.cs

@@ -21,6 +21,8 @@ namespace PDF_Master.ViewModels.Dialog.ChatGPTAIDialogs
 
         public CPDFViewer PDFViewer;
 
+        public ViewContentViewModel viewContentViewModel;
+
         private CPDFViewer pdfViewer = null;
 
         private string fromlanguage = "";
@@ -93,7 +95,9 @@ namespace PDF_Master.ViewModels.Dialog.ChatGPTAIDialogs
             {
                 if (File.Exists(newfile))
                 {
-                    
+                    if (viewContentViewModel != null) {
+                        viewContentViewModel.OpenFile(new string[] { newfile });
+                    }
                 }
             }
         }
@@ -115,6 +119,8 @@ namespace PDF_Master.ViewModels.Dialog.ChatGPTAIDialogs
         {
 
             parameters.TryGetValue<CPDFViewer>(ParameterNames.PDFViewer, out pdfViewer);
+            parameters.TryGetValue<ViewContentViewModel>(ParameterNames.ViewContentViewModel, out viewContentViewModel);
+            
             if (pdfViewer != null)
             {
                 if (!regionManager.Regions[ViewerRegionName].Views.Contains(pdfViewer))

+ 19 - 1
PDF Office/ViewModels/ViewContentViewModel.cs

@@ -1361,6 +1361,24 @@ namespace PDF_Master.ViewModels
             }
         }
 
+
+        /// <summary>
+        /// 打开文件Translation
+        /// </summary>
+        public void OpenFile(string[] newfile)
+        {
+            if (App.OpenedFileList.Contains(newfile[1]))
+            {
+                App.mainWindowViewModel.SelectItem(newfile[1]);
+            }
+            else
+            {
+                App.mainWindowViewModel.AddTabItem(newfile[1]);
+            }
+            ToolMethod.SetFileThumbImg(newfile[1]);
+
+        }
+
         /// <summary>
         /// 关闭当前窗体
         /// </summary>
@@ -1894,7 +1912,7 @@ namespace PDF_Master.ViewModels
             DialogParameters printValue = new DialogParameters();
             printValue.Add(ParameterNames.PDFViewer, PDFViewer);
             printValue.Add(ParameterNames.FilePath, PDFViewer.Document.FileName);
-            printValue.Add(ParameterNames.PrintCurrentPage, PDFViewer.CurrentIndex);
+            printValue.Add(ParameterNames.ViewContentViewModel, this);
             printValue.Add(ParameterNames.Unicode, unicode);
             dialogs.ShowDialog(DialogNames.DocumentaryTranslation, printValue, e => { });
         }