Browse Source

【2025】【OCR】取消按钮无效问题修复

lizhe 2 months ago
parent
commit
1f58da4e78

+ 5 - 0
PDF Office/PDF Master/KMClass/KMPDFViewController/KMMainViewController.swift

@@ -3491,6 +3491,11 @@ extension KMMainViewController {
             }
             self?.hiddenProgressWindow()
         }
+        
+        self.progressC?.closeBlock = {
+            print("手动取消中")
+            KMOCRManager.manager.cancelRecognition()
+        }
     }
     
     func convertOCRSaveAsTXT(text: String) {

+ 24 - 23
PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/OCR/Tool/Manager/KMOCRManager.swift

@@ -68,9 +68,9 @@ class KMOCRManager: NSObject {
 //        }
 //        return isContainsImagePage
 //    }
-    func cancel() {
-        self.converter?.cancel()
-    }
+//    func cancel() {
+//        self.converter?.cancel()
+//    }
 }
 
 //MARK: Tool OCR
@@ -130,29 +130,28 @@ extension KMOCRManager: KMGOCRManagerDelegate {
         self.document = document
         self.pageIndexs = indexs
         
-        //获取缩图
-        var selctPageImages: [NSImage] = []
-        for i in 0..<indexs.count {
-            autoreleasepool {
-                let index = indexs[i]
-                let page = document.page(at: UInt(index))
-                var image = page?.thumbnail(of: CGSize(width: (page?.size.width ?? 0) * maxImageScale, height: (page?.size.height ?? 0) * maxImageScale))
-                if (image != nil) {
-                    image = self.dealImage(image: image!, isCorrection: model.imageCorrection, isEnhancement: model.imageEnhancement)
-                    if image != nil {
-                        selctPageImages.append(image!)
+        DispatchQueue.main.async { [unowned self] in
+            //获取缩图
+            var selctPageImages: [NSImage] = []
+            for i in 0..<indexs.count {
+                autoreleasepool {
+                    let index = indexs[i]
+                    let page = document.page(at: UInt(index))
+                    var image = page?.thumbnail(of: CGSize(width: (page?.size.width ?? 0) * maxImageScale, height: (page?.size.height ?? 0) * maxImageScale))
+                    if (image != nil) {
+                        image = self.dealImage(image: image!, isCorrection: self.model.imageCorrection, isEnhancement: self.model.imageEnhancement)
+                        if image != nil {
+                            selctPageImages.append(image!)
+                        }
                     }
                 }
             }
-        }
-        
-//        self.pageImages = selctPageImages
-        
-        if (selctPageImages.count == 0) {
-            fail()
-        } else {
-//            self.cancelRecognition()
-            DispatchQueue.main.async {
+            
+            //        self.pageImages = selctPageImages
+            
+            if (selctPageImages.count == 0) {
+                fail()
+            } else {
                 self.OCRManger = KMGOCRManager()
                 if type == .google {
                     self.OCRManger?.ocrType = .google
@@ -195,6 +194,8 @@ extension KMOCRManager: KMGOCRManagerDelegate {
         
         KMGOCRManager.default().delegate = nil
         OCRManger?.cancelRecognition()
+        
+        self.converter?.cancel()
     }
     
     

+ 1 - 1
PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/OCR/Tool/View/Page/KMOCRPageView.swift

@@ -177,7 +177,7 @@ class KMOCRPageView: BaseXibView {
         self.OCRPlan2Button.reloadData()
         
         
-        self.saveAsPDFButton.properties.state = model.saveAsPDF ? .pressed : .normal
+        self.saveAsPDFButton.properties.checkboxType = model.saveAsPDF ? .selected : .normal
         self.enhancementSwitch.properties.open = model.imageEnhancement
         self.correctionSwitch.properties.open = model.imageCorrection