Browse Source

【2025】【转档】测试 - 批量对接

lizhe 1 month ago
parent
commit
c9598958f8

+ 4 - 0
PDF Office/PDF Master/KMClass/Convert/Base/KMConvertBaseWindowController.swift

@@ -24,6 +24,8 @@ class KMConvertBaseWindowController: KMNBaseWindowController {
     private var convertButton_: ComponentButton?
     private var batchButton_: ComponentButton?
     
+    var batchAction:(() -> Void)?
+    
     var documentModel: KMDocumentModel?
     
     var currentPageIndex: Int = 1
@@ -209,6 +211,8 @@ class KMConvertBaseWindowController: KMNBaseWindowController {
     @objc func batchButtonAction() {
         self._clearData()
         own_closeEndSheet()
+        
+        self.batchAction?()
     }
     
     @objc func cancelButtonAction() {

+ 21 - 21
PDF Office/PDF Master/KMClass/KMPDFViewController/KMMainViewController.swift

@@ -3182,48 +3182,49 @@ struct KMNMWCFlags {
     
     //MARK: - 转档
     func showConvertWindow(_ convertType: KMPDFConvertType) {
-  
+        
+        var winC: KMConvertBaseWindowController = KMConvertBaseWindowController()
         if convertType == .word {
-            let winC = KMConvertWordWindowController()
+            winC = KMConvertWordWindowController()
             let model = KMDocumentModel(url: listView.document.documentURL)
             winC.documentModel = model
             winC.own_beginSheetModal(for: self.view.window, completionHandler: nil)
         } else if convertType == .ppt {
-            let winC = KMConvertPPTsWindowController()
+            winC = KMConvertPPTsWindowController()
             winC.subType = 1
             let model = KMDocumentModel(url: listView.document.documentURL)
             winC.documentModel = model
             winC.own_beginSheetModal(for: self.view.window, completionHandler: nil)
         } else if convertType == .rtf {
-            let winC = KMConvertPPTsWindowController()
+            winC = KMConvertPPTsWindowController()
             winC.subType = 2
             let model = KMDocumentModel(url: listView.document.documentURL)
             winC.documentModel = model
             winC.own_beginSheetModal(for: self.view.window, completionHandler: nil)
         } else if convertType == .text {
-            let winC = KMConvertPPTsWindowController()
+            winC = KMConvertPPTsWindowController()
             winC.subType = 4
             let model = KMDocumentModel(url: listView.document.documentURL)
             winC.documentModel = model
             winC.own_beginSheetModal(for: self.view.window, completionHandler: nil)
         } else if convertType == .csv {
-            let winC = KMConvertPPTsWindowController()
+            winC = KMConvertPPTsWindowController()
             winC.subType = 5
             let model = KMDocumentModel(url: listView.document.documentURL)
             winC.documentModel = model
             winC.own_beginSheetModal(for: self.view.window, completionHandler: nil)
         } else if convertType == .excel {
-            let winC = KMConvertExcelWindowController()
+            winC = KMConvertExcelWindowController()
             let model = KMDocumentModel(url: listView.document.documentURL)
             winC.documentModel = model
             winC.own_beginSheetModal(for: self.view.window, completionHandler: nil)
         } else if convertType == .html {
-            let winC = KMConvertHtmlWindowController()
+            winC = KMConvertHtmlWindowController()
             let model = KMDocumentModel(url: listView.document.documentURL)
             winC.documentModel = model
             winC.own_beginSheetModal(for: self.view.window, completionHandler: nil)
         } else if convertType == .json {
-            let winC = KMConvertJsonWindowController()
+            winC = KMConvertJsonWindowController()
             let model = KMDocumentModel(url: listView.document.documentURL)
             winC.documentModel = model
             winC.own_beginSheetModal(for: view.window, completionHandler: nil)
@@ -3235,7 +3236,7 @@ struct KMNMWCFlags {
                     convertType == .tga ||
                     convertType == .bmp ||
                     convertType == .jp2{
-            let winC = KMConvertImageWindowController()
+            winC = KMConvertImageWindowController()
             let model = KMDocumentModel(url: listView.document.documentURL)
             winC.documentModel = model
             winC.own_beginSheetModal(for: view.window, completionHandler: nil)
@@ -3243,6 +3244,10 @@ struct KMNMWCFlags {
                 settingView.selectConvertType(convertType: convertType)
             }
         }
+        
+        winC.batchAction = { [unowned self] in
+            self.showBatchWindow(type: .convertPDF, subType: convertType.rawValue, files: [listView.document.documentURL])
+        }
     }
     
     //MARK: - 选择Form注释
@@ -3618,9 +3623,13 @@ extension KMMainViewController {
     }
 }
 
-//Batch
+//MARK: Batch
 extension KMMainViewController {
     func showBatchWindow(type: KMBatchCollectionViewType, files: [URL]?) {
+        self.showBatchWindow(type: type, subType: 0, files: files)
+    }
+    
+    func showBatchWindow(type: KMBatchCollectionViewType, subType: Int = 0, files: [URL]?) {
         let batchWindowController = KMBatchWindowController.init(windowNibName: "KMBatchWindowController")
         batchWindowController.window?.makeKeyAndOrderFront("")
         
@@ -3631,16 +3640,7 @@ extension KMMainViewController {
 //        }
         batchWindowController.inputData = files ?? []
         batchWindowController.type = type
-        
-//        let batchWindowController = KMBatchOperateWindowController.sharedWindowController
-//        
-//        var array: [KMBatchOperateFile] = []
-//        for fpath in filepaths ?? [] {
-//            let batchOperateFile = KMBatchOperateFile(filePath: fpath, type: type)
-//            array.append(batchOperateFile)
-//        }
-//        batchWindowController.switchToOperateType(type, files: array)
-//        batchWindowController.window?.makeKeyAndOrderFront("")
+        batchWindowController.inputSubType = subType
     }
 }
 

+ 28 - 10
PDF Office/PDF Master/KMClass/NewBatch/View/Setting/ConvertPDF/KMBatchConvertPDFView.swift

@@ -30,18 +30,36 @@ class KMBatchConvertPDFView: KMBatchSettingItemView {
             switch value {
             case 0:
                 convertType = .word
-            case 2:
+            case 1:
                 convertType = .excel
-            case 3:
+            case 2:
                 convertType = .ppt
-            case 4:
+            case 3:
                 convertType = .rtf
-            case 5:
+            case 4:
                 convertType = .csv
-            case 6:
+            case 5:
                 convertType = .html
-            case 7:
+            case 6:
                 convertType = .text
+            case 7:
+                convertType = .jpeg
+            case 8:
+                convertType = .jpg
+            case 9:
+                convertType = .png
+            case 10:
+                convertType = .gif
+            case 11:
+                convertType = .tiff
+            case 12:
+                convertType = .tga
+            case 13:
+                convertType = .bmp
+            case 14:
+                convertType = .jpeg2000
+            case 15:
+                convertType = .json
             default:
                 convertType = .word
             }
@@ -131,8 +149,8 @@ class KMBatchConvertPDFView: KMBatchSettingItemView {
         }
         self.convertButton.reloadData()
         
-        //选择选项
-        self.formatSelectButton.selectItemAtIndex(KMBatchConvertPDFType.allValues().firstIndex(of: self.data.convertPDFType.rawValue) ?? 0)
+        //选择选项 如果没找到 则是图片
+        self.formatSelectButton.selectItemAtIndex(KMBatchConvertPDFType.allValues().firstIndex(of: self.data.convertPDFType.rawValue) ?? 7)
         
         self.currentView.data = self.data
         self.currentView.reloadData()
@@ -163,7 +181,7 @@ class KMBatchConvertPDFView: KMBatchSettingItemView {
             case .ppt:
                 view = KMBatchConverPDFPPTView.init(frame: self.itemContentView.bounds)
                 break
-            case .image:
+            case .jpg, .jpeg, .jpeg2000, .png, .gif, .tiff, .bmp, .tga:
                 view = KMBatchConverPDFImageView.init(frame: self.itemContentView.bounds)
                 break
             case .csv:
@@ -185,13 +203,13 @@ class KMBatchConvertPDFView: KMBatchSettingItemView {
                 KMPrint("找不到")
                 break
             }
-            view.type = type
             view.presenter = self.presenter
             view.data = self.data
             self.itemViewArray.append(view)
         }
         view.isDisable = self.isDisable
         view.settingView?.isBatch = true
+        view.type = type
         return view
     }
     

+ 42 - 15
PDF Office/PDF Master/KMClass/NewBatch/View/Setting/ConvertPDF/Model/KMBatchConvertPDFViewModel.swift

@@ -6,24 +6,35 @@
 //
 
 import Cocoa
-
 //转换类型
 enum KMBatchConvertPDFType: String, CaseIterable {
-    case word = "Word"
-    case excel = "Excel"
-    case csv = "CSV"
+    case word = "Word (.docx)"
+    case excel = "Excel (.xlsx)"
+    case csv = "CSV (.csv)"
+    case ppt = "PowerPoint (.pptx)"
+    case rtf = "RTF (.rtf)"
+    case html = "Html (.html)"
+    case text = "Text (.txt)"
     case image = "Image"
-    case ppt = "PPT"
-    case rtf = "RTF"
-    case html = "HTML"
-    case text = "Text"
-    case json = "json"
+    case jpeg = "JPEG (.jpeg)"
+    case jpg = "JPG (.jpg)"
+    case png = "PNG (.png)"
+    case gif = "GIF (.gif)"
+    case tiff = "TIFF (.tiff)"
+    case tga = "TGA (.tga)"
+    case bmp = "BMP (.bmp)"
+    case jpeg2000 = "JPEG-2000 (.jp2)"
+    case json = "Json(.json)"
     
     static func allValues() -> [String] {
-        var array: [String] = []
-        for key in KMBatchConvertPDFType.allCases {
-            array.append(key.rawValue)
-        }
+        let array: [String] = [KMBatchConvertPDFType.word.rawValue,
+                               KMBatchConvertPDFType.excel.rawValue,
+                               KMBatchConvertPDFType.csv.rawValue,
+                               KMBatchConvertPDFType.ppt.rawValue,
+                               KMBatchConvertPDFType.rtf.rawValue,
+                               KMBatchConvertPDFType.html.rawValue,
+                               KMBatchConvertPDFType.text.rawValue,
+                               KMBatchConvertPDFType.image.rawValue,]
         return array
     }
     
@@ -36,8 +47,6 @@ enum KMBatchConvertPDFType: String, CaseIterable {
             type = .excel
         case KMBatchConvertPDFType.csv.rawValue:
             type = .csv
-        case KMBatchConvertPDFType.image.rawValue:
-            type = .image
         case KMBatchConvertPDFType.ppt.rawValue:
             type = .ppt
         case KMBatchConvertPDFType.rtf.rawValue:
@@ -48,6 +57,24 @@ enum KMBatchConvertPDFType: String, CaseIterable {
             type = .json
         case KMBatchConvertPDFType.text.rawValue:
             type = .text
+        case KMBatchConvertPDFType.jpeg.rawValue:
+            type = .jpeg
+        case KMBatchConvertPDFType.jpg.rawValue:
+            type = .jpg
+        case KMBatchConvertPDFType.jpeg2000.rawValue:
+            type = .jpeg2000
+        case KMBatchConvertPDFType.png.rawValue:
+            type = .png
+        case KMBatchConvertPDFType.gif.rawValue:
+            type = .gif
+        case KMBatchConvertPDFType.tiff.rawValue:
+            type = .tiff
+        case KMBatchConvertPDFType.tga.rawValue:
+            type = .tga
+        case KMBatchConvertPDFType.bmp.rawValue:
+            type = .bmp
+        case KMBatchConvertPDFType.image.rawValue:
+            type = .image
         default:
             type = .word
         }

+ 1 - 1
PDF Office/PDF Master/KMClass/NewBatch/View/Setting/ConvertPDF/Presenter/KMBatchConvertPDFViewPresenter.swift

@@ -24,7 +24,7 @@ extension KMBatchConvertPDFViewPresenter: KMBatchConvertPDFViewPresenterProtocol
     }
     
     func convertPDFTypeAction(string: String) {
-        self.modelData.convertPDFType = KMBatchConvertPDFType.typeOfRawValue(string)
+        self.modelData.convertPDFType = KMBatchConvertPDFType.typeOfRawValue((string))
         self.delegate?.showData(presenter: self, data: self.modelData)
     }
     

+ 5 - 1
PDF Office/PDF Master/KMClass/NewBatch/View/Setting/ConvertPDF/Views/Base/KMBatchConvertPDFItemView.swift

@@ -10,7 +10,11 @@ import Cocoa
 class KMBatchConvertPDFItemView: BaseXibView {
 
     
-    var type: KMBatchConvertPDFType = .word
+    var type: KMBatchConvertPDFType = .word {
+        didSet {
+            self.reloadData()
+        }
+    }
     var presenter: KMBatchConvertPDFViewPresenter = KMBatchConvertPDFViewPresenter()
     var data: KMBatchConvertPDFViewModel = KMBatchConvertPDFViewModel()
     

+ 24 - 1
PDF Office/PDF Master/KMClass/NewBatch/View/Setting/ConvertPDF/Views/Image/KMBatchConverPDFImageView.swift

@@ -20,7 +20,30 @@ class KMBatchConverPDFImageView: KMBatchConvertPDFItemView {
     }
     
     override func reloadData() {
-
+        var type: KMPDFConvertType = .jpeg
+        
+        switch self.type {
+        case .jpg:
+            type = .jpg
+        case .jpeg:
+            type = .jpeg
+        case .png:
+            type = .png
+        case .gif:
+            type = .gif
+        case .tga:
+            type = .tga
+        case .bmp:
+            type = .bmp
+        case .jpeg2000:
+            type = .jpg
+        case .tiff:
+            type = .tiff
+        default:
+            type = .jpeg
+        }
+                
+        (settingView as? KMConvertImageSettingView)?.selectConvertType(convertType: type)
     }
     
 }

+ 1 - 1
PDF Office/PDF Master/KMClass/NewBatch/View/Setting/KMBatchSettingView.swift

@@ -161,7 +161,6 @@ class KMBatchSettingView: BaseXibView {
                 break
             }
             resultView.type = type
-            resultView.subType = subType
             resultView.filesData = self.filesData ?? []
             resultView.isDisable = self.isDisable
             resultView.reloadData()
@@ -171,6 +170,7 @@ class KMBatchSettingView: BaseXibView {
                 resultView.filesData = self.filesData ?? []
             }
         }
+        resultView.subType = subType
         
         return resultView
     }